jdbc.properties
user =root
password =123456
url =jdbc:mysql://localhost:3306/demo?useUnicode=true&&characterEncodeing=UTF-8&&useSSL=false&&serverTimezone=GMT&&rwriteBatchedStatments=true
driverClass =com.mysql.cj.jdbc.Driver
JdbcUtils.java
public static Connection getConnection() throws IOException, ClassNotFoundException, SQLException {
InputStream inputStream = ClassLoader.getSystemClassLoader().getResourceAsStream("jdbc.properties");
Properties properties = new Properties();
properties.load(inputStream);
String user= properties.getProperty("user");
String password = properties.getProperty("password");
String url = properties.getProperty("url");
String driverClass = properties.getProperty("driverClass");
Class.forName(driverClass);
Connection connection = DriverManager.getConnection(url,user,password);
return connection;
}
public static void closeResource(Connection connection, PreparedStatement ps){
try {
if (ps!=null) {
ps.close();
}
} catch (Exception e) {
e.printStackTrace();
}
try {
if (connection!=null) {
connection.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
test.java
@Test
public void Inserts(){
Connection conn = null;
PreparedStatement ps = null;
try {
long start = System.currentTimeMillis();
//获取数据库连接
conn = JdbcUtils.getConnection();
//设置不允许自动提交数据
conn.setAutoCommit(false);
String sql = "insert into tab(id) value(?)";
ps = conn.prepareStatement(sql);
for (int i=0;i<1000;i++){
ps.setInt(1,i);
//积累sql
ps.addBatch();
if (i%500 ==0){
//执行batch
ps.executeBatch();
//清空batch
ps.clearBatch();
}
}
//提交数据
conn.commit();
long end = System.currentTimeMillis();
System.out.println("运行时间:"+(end-start));
} catch (Exception e) {
e.printStackTrace();
}finally {
//关闭资源
JdbcUtils.closeResource(conn,ps);
}
}