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);
}