JBDC批量处理
一.Statement的execute的方法一次只能执行一条sql语句,如果同时有多条sql语句要执行的话,可以使用addBatch方法将要执行sql语句加入进来,然后在执行executeBatch()方法,这样就可以在一次方法调用中执行多条sql语句。以提高执行效率。
try {
con=JdbcUtil.getConnection();
stat=con.createStatement();
stat.addBatch("insert into student(name) values('wanglu')");
stat.addBatch("insert into student(name) values('xxx')");
stat.executeBatch();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
JdbcUtil.release1(null,stat, con);
二.分页
查询丛user表中读取第41条开始的20条记录
Select * from user limit 40,20;
三,可更新的结果集是一个可变动的结果集
Mysql不支持敏感集;
Statement st=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet rs=st.executeQuery("select * from student");
if(rs.next()){
rs.getObject(1);
//...
rs.updateString(2,"TOM");
rs.updateRow();
四,数据元信息
Resultset用来表示查询到的数据,而resultsetmetadata表示的是所有查询到的数据背后的数据描述---如表名。列名称,列类型。利用restletsetmeatdata可以完成表的反向设计,即jdbc可以查询数据库表来获取它的结构,从而利用这些表结来完成对实体类得生成。
package cn.csdn.a20110916;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
public class TestDatabaseMetaData {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Connection con=null;
Statement st=null;
ResultSet res=null;
ResultSetMetaData resmd=null;
try {
con=JdbcUtil.getConnection();
st=con.createStatement();
res=st.executeQuery("SELECT * FROM STUDENT");
resmd=res.getMetaData();
System.out.println(resmd.getColumnCount());
for(int i=1;i<=resmd.getColumnCount();i++){
System.out.print(resmd.getColumnLabel(i)+"\t");
}
System.out.println();
for(int i=1;i<=resmd.getColumnCount();i++){
System.out.print(resmd.getColumnType(i)+"\t");
}
//获取数据库的元数据
DatabaseMetaData dmd=con.getMetaData();
System.out.println(dmd.getDatabaseProductName());
System.out.println(dmd.getDriverName());
System.out.println(dmd.getDefaultTransactionIsolation());
System.out.println(dmd.getDatabaseProductVersion());
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
JdbcUtil.release(res,st,con);
}
}