批量处理

 

20110916

批量处理

Statement的Sexecute()等方法只能执行一条SQL语句,用addBatch()加入SQL然后executeBatch()执行多条语句。批一般放入事务中执行,要么全部执行成功,要么全部失败。

在批中只能添加(insert delete update)这样的语句。

Public class TestBatch{             t

       Public static void main Add{

              Connection con;

              Statement stat=null;

              可能出现异常,补获异常

              Con=JdbcUtil.getConnection();连接数据库

              Stat=con.createStatement();生成语句对象

              Stat.addBatch(“insert into student(name)values(‘wangwu’)”);sql语句添加到批中

              Stat.addBatch(“insert into student(name)values(‘zhaoliu’)”);

              Stat.exeuteBatch();批量 提交SQL语句

              JdbcUtil.release(null,stat,con);释放资源

}

}

另一种方法

Public class TestBatch{       

       Public statitc void main Add{

              prepareStatement pst=null;

              con=JdbcUtil.getConnection();

              pst=con.prepareStatement(“insert into student(name)values(?)”);       生成语句对象

              利用循环的方式将要执行的命令批量执行

              List<student>泛型list=new Array list();批对象插入

              For(int I,i<=5,i++){

                     Student s=new student();这里student为实例化

                     List add=(s);

}

For(student s.list){

       Pst.setString(1,getName());给站位符设置值

       Pst.addBatch();将操作添加到批处理中

}

Pst,executeBatch();提交事务

}

}

分页:一页显示几条记录eg:显示第三页每页五条记录(3-1)*5+1如果下标从0开始则取消+1此时显示的是第三页的第一条记录。

获取结果集:结果集分敏感结果集和非敏感结果集,敏感结果集就是当数据库中的表更新时结果集也随之更新,相反的非敏感结果集就是当数据库更新时而结果集并我变化。但在MYSQL中不存在敏感结果集。在这里游标可以随意移动。

指向前结果集:游标只可以向前移动。

Statement st.con,Statement(Result.type静态属性 scroll可滚动的 (Insertive,ruseultset)静态常量

St.executeQuery(“elect*from student”)提交查询语句   Result set rs=存放结果集对象

If(rs.next()){

       Rs.getObject(1);

       Rs.updateStrig(column Index”Tom”);修改String列的类型括号中:第几列修改成 的值   读取操作

       Rs.updatRow();提交修改

}

原数据的获取

Test DataBaseMetadata

              Connection con=null;

              Con=JdbcUtil.getConnection();

              DatabaseMetadata dmd=con.getMataData();获取数据库中的原数据

              System.out.println(dmd.getDatabase product(Name));ou输出原数层,调用get方法来输出

              System.out.println(dmd.getDriverName());驱动

              ………………………..getDefaultTransactionOsolation;默认隔离级别

              ………………………..Database ProductVersion());驱动器版本号

Jdbc.Util(release(null,null,con));关闭  隔离级别不可重复读

结果集原数据的获取

Connection con=null;

Statement st=null;

Result rs=null;结果集对象   ResultMetaData res=null;

Con=JdbcUtil.getConnection();

St=con.Createstatement();

St=con.createstatement();

Res=st.executeQuery(“select*from student”);查询返回值

调用结果集中的方法的获取resmd=res.getMetaData();

System.out.println(resmd.getColumnCount(),i++);得到共有多少列

获取每列列名用for循环 for(int i=1;i<=resmd.getColumnCount()总列数;i++);”{

       第一列列名System.out.print(resmd.getColumnlable(i)+”/t”);

                            System.out.print.(resmd.getColumnType);每列是什么类型的

       JdbcUtil.release(res,st,con);

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值