1.新建文件db.properties
写驱动名,数据库路径,用户名 密码
注意:不写空格和引号
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/db0905?useSSL=true
username=root
password=123456
2写JDBCUtil
package operation;
import org.apache.commons.dbcp2.BasicDataSource;
import org.apache.commons.dbcp2.BasicDataSourceFactory;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.*;
import java.util.Properties;
public class JDBCUtil {
private static BasicDataSource ds = null;
static {
try {
//加载配置文件
Properties p = new Properties();
FileInputStream in = new FileInputStream("src/db.properties");
p.load(in);
ds = BasicDataSourceFactory.createDataSource(p);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
public static Connection getconn(){
try {
return ds.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
public static void close(Connection conn, PreparedStatement stmt, ResultSet rs){
if (rs!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stmt!=null){
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn !=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
3测试
import operation.JDBCUtil;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class Batch {
public static void main(String[] args) {
Connection conn = JDBCUtil.getconn();
PreparedStatement stmt=null;
String s = "insert into animal(name,age) values (?,?)";
try {
stmt = conn.prepareStatement(s);
for (int i=0;i<100;i++){
stmt.setString(1,"猫gou");
stmt.setInt(2,1);
//添加批处理
stmt.addBatch();
}
stmt.executeBatch();
} catch (SQLException e) {
e.printStackTrace();
}finally {
JDBCUtil.close(conn,stmt,null);
}
}
}
druid下载地址
package operation;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.*;
import java.util.Properties;
public class JDBCUtil {
private static DataSource ds = null;
static {
try {
//加载配置文件
Properties p = new Properties();
FileInputStream in = new FileInputStream("src/db.properties");
p.load(in);
ds = DruidDataSourceFactory.createDataSource(p);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
public static Connection getconn(){
try {
return ds.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
public static void close(Connection conn, PreparedStatement stmt, ResultSet rs){
if (rs!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stmt!=null){
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn !=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
DML方法重构
Object…params不定长参数
public int executeUpdate(String sql,Object...params){
Connection conn=null;
PreparedStatement stmt=null;
try {
conn = JDBCUtil.getconn();
stmt = conn.prepareStatement(sql);
//遍历参数
for (int i = 0; i < params.length; i++) {
stmt.setObject(i+1,params[i]);
}
return stmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
return 0;
}
@Test
public void test(){
String sql="insert into animal(name,age)value(?,?)";
executeUpdate(sql,"美短",2);
}