优点:
用于socket通信最合适
代码如下:
package cn.com.day01;
import java.sql.*;
public class Jdbc {
private static final String DRIVER="com.mysql.jdbc.Driver";
private static final String URL="jdbc:mysql://localhost:3306/lf?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf8";
private static final String root="root";
private static final String pass="root";
private static Connection conn=null;
private static PreparedStatement ps=null;
private static ResultSet rs=null;
public static Connection link(){
try {
Class.forName(DRIVER);
conn=DriverManager.getConnection(URL,root,pass);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
//�ر�
public static void closeAll(){
if(rs!=null){
try{
rs.close();
}catch(SQLException e){
e.printStackTrace();
}
}
if(ps!=null){
try{
ps.close();
}catch(SQLException e){
e.printStackTrace();
}
}
if(conn!=null){
try{
conn.close();
}catch(SQLException e){
e.printStackTrace();
}
}
}
//2.��ɾ��
public static void update(String sql,String [] sz) {
try{
conn=link();
//conn.setAutoCommit(false);
ps=conn.prepareStatement(sql);
for(int i = 0; i < 1000 ;i++){
ps.setString(1,"stu"+i);//填充占位符
ps.addBatch();//添加到批处理方法中,调用无参的方法,有参的是Statement来调用的!
}
ps.executeBatch();
// conn.commit();
}catch(SQLException e1){
e1.printStackTrace();
}
}
public static void main(String[] args) {
String sql="insert into lx values(?)";
Jdbc.update(sql, null);
}
}
注意点:
一:mysql-connector-java-5.1.8-bin.jar版本高于5.1.3
低版本的数据库jar包没有批处理操作
二:
private static final String URL=“jdbc:mysql://localhost:3306/lf?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf8”;
含有rewriteBatchedStatements=true
这有这有才是真正意义上的批处理