如果数据库要同时处理大量数据,那么为了高效,就应当一次性处理,
setAutoCommit方法是指把此连接的自动提交设置为给定状态,如果参数为true,每条语句逐个执行,反之,将所有sql语句聚集到一个事务,直到Connection调用commit()或rollback()方法,其默认值为true。
注意:数据量大时,尽量使用Statement,而不是PreparedStatement,因为后者会占用更多预编译空间,或许会报问题。
Connection con=null;
Statement sm=null;
try {
//加载驱动类
Class.forName("com.mysql.jdbc.Driver");
//建立连接
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/qq", "root", "mima");
String name="";
String pas="";
String sql="insert into user (username,password) values('"+name+","+pas+"');";
con.setAutoCommit(false);
sm.addBatch(sql);//实际中可以写个for循环,给数据库加入很多语句。
sm.executeBatch();
con.commit();//提交事务
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{
if(con!=null)
{
try{
con.close();
}catch(Exception ex){
ex.printStackTrace();
}
}
if(sm!=null)
{
try {
sm.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}