询问学生

学业: 1. 学员表(id,age,name) 2. 布置学生 3. 修改学生 4. 刨除学生 5.
查询学生

JavaBean

俗称简单的Java对象 javaBean满意以下三点 1.私有属性 2.无参的构造方法
3.提供属性的set和get方法

-以往做项目,基本上有怎么着表,在代码中就需求成立相呼应的对象,表中有哪些字段,对象中就有啥样性质

-创制set、get方法快捷键 先按 alt+shift+s 然后按r 然后alt+a
然后a松开换o然后回车 -创立toString方法火速键 alt+sfit+s 然后 s 然后回车

CRUD

Create Retrieve Update Delete 增 查 改 删

兑现删除 和 修改

批量操作batch

因为每便sql的实行都亟需和数据库服务器实行数据交互,假设实施的sql太多,每便都和数据库交互太浪费财富,
可以通过批量操作的法门,把两回sql操作合併成叁遍 statement:
常常DDL使用statement stat.addBatch(sql1); stat.addBatch(sql2);
stat.addBatch(sql3); int[] arr = stat.executeBatch();
prepareStatement: sql中带变量的 DML String sql = “insert into student
values” + “(null,?,?)”; PreparedStatement ps =
conn.prepareStatement(sql); ps.setInt(1, 5); ps.setString(2, “悟空”);
ps.addBatch(); ps.setInt(1, 6); ps.setString(2, “悟能”); ps.addBatch();
ps.setInt(1, 7); ps.setString(2, “悟净”); ps.addBatch(); int[]询问学生。 arr =
ps.executeBatch();

-怎么样幸免批量布署数据时内部存款和储蓄器溢出 for(int i=0;i<100000;i++{
ps.setInt(1,i*询问学生。2); ps.setString(2,”a”+i); ps.addBatch(); if(i%20==0){
ps.executBatch(); ps.clearBatch(); } } ps.executBatch();

分页查询

在控制台输入 页数 和 每页的数额 如 输入页数是2 每页数量是10的话
询问到的是第11-20条数据

public static void main(String[] args) { Scanner sc = new
Scanner(System.in); System.out.println(“请输入页数”); int page =
sc.nextInt(); System.out.println(“请输入数量”); int count =
sc.nextInt(); Connection conn = null; try { // 1 5 0 // 2 5 5 // 3 5 10
conn = DBUtils.getConn(); String sql = “select * from student” + ”
limit ?,?”; PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, (page-1)*询问学生。count); ps.setInt(2, count); ResultSet rs =
ps.executeQuery(); while(rs.next()){ String name = rs.getString(“name”);
System.out.println(name); } rs.close(); ps.close();

    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } finally {
        DBUtils.closeConn(conn);
    }



}

事务

  1. 关门自动提交 conn.setAutoCommit(false);
  2. 交付业务 conn.commit
  3. 回滚 conn.rollback;

贯彻转账流程:

1.创造 Person表 id money name 2.插入两条数据 1 500 超人 2 伍仟0 蝙蝠侠
超人跟蝙蝠侠借1000 不借就干死你

代码: 先让卓绝 +一千 money = money+一千; 让蝙蝠侠 -1000 money =
money-1000; 查询蝙蝠侠余额大于等0 若是余额小于0 则战败回滚 create table
person (id int primary key auto_increment,money int, name varchar(10));
insert into person values(null,500,’超人’),(null,50000,’蝙蝠侠’);

获取自增的主键值

conn = DBUtils.getConn();
        String sql = "insert into student values "
                + "(null,67,'蜡笔小新')";
        Statement stat = conn.createStatement();
        stat.execute(sql,Statement.RETURN_GENERATED_KEYS);
        //得到返回的主键值
        ResultSet rs = stat.getGeneratedKeys();
        int id = -1;
        while(rs.next()){
            id = rs.getInt(1);
        }
        System.out.println(id);

 

演练: -部门表插入贰个机构还要 职员和工人表插入一个职工 並且创设关联 参考代码

收获元数据

DataBaseMetadata:获取数据库的元数据 ResultSetMetadata:获取表的元数据

conn = DBUtils.getConn();

// DatabaseMetaData 保存的时和数据库相关的元数据 // DatabaseMetaData
dbmd = conn.getMetaData();

 String sql = "select * from t_emp";
        Statement stat = conn.createStatement();
        ResultSet rs = stat.executeQuery(sql);
        //得到表的元数据
        ResultSetMetaData md = rs.getMetaData();        
        //获取表的字段数量
        int columCount = md.getColumnCount();
        for (int i = 1; i <= columCount; i++) {
            String columName = md.getColumnName(i);
            System.out.println(columName);
        }

You may also like...

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图