JDBC预编译
直接代码记录
package com.guisha.JDBC.Privatre;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class JDBCBatch {
public static void main(String[] args) throws Exception {
Connection conn = null;
PreparedStatement ps = null;
//需要执行的sql语句
String sql = "insert into student (id,name,drte) values (?,?,?)";
//注册驱动
Class.forName("com.mysql.jdbc.Driver");
//获取数据库链接
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/user", "root", "guisha");
//创建一个PreparedStatement对象,用于向数据库发送参数化的SQL语句。
//带或不带IN参数的SQL语句都可以预编译并存储在PreparedStatement对象中。然后可以使用此对象高效地多次执行此语句。
//注意:这个方法是为了处理从预编译中受益的参数SQL语句而优化的。如果驱动程序支持预编译,prepareStatement方法将把语句发送到数据库进行预编译。有些驱动程序可能不支持预编译。
ps = conn.prepareStatement(sql);
//循环插入数据
for (int i = 0; i < 100; i++) {
//通过向预编译SQL命令填充数据生成全新的SQL命令
ps.setInt(1, i);
ps.setString(2, "roo_" + i);
ps.setString(3, "河南省");
//向这个PreparedStatement对象的命令批处理添加一组参数。
ps.addBatch();
}
ps.executeBatch();
//向数据库提交一批命令以便执行,如果所有命令都成功执行,则返回更新计数数组。返回的数组的int元素按照与批处理中的命令对应的顺序排列,这些命令是根据它们添加到批处理中的顺序排列的。
// executeBatch方法返回的数组中的元素:
//int[] ints = ps.executeBatch();
//System.out.println(ints.toString());
//关闭资源
ps.close();
conn.close();
}
}