通用的增删改操作

PreparedStatementUpdateTest.java

public class PreparedStatementUpdateTest {

    @Test
    public void testCommonUpdate() {
//		String sql = "delete from customers where id = ?";
//		update(sql,3);

        String sql = "update `order` set order_name = ? where order_id = ?";
        update(sql, "DD", "2");

    }

    //通用的增删改操作
    public void update(String sql, Object... args) {//sql中占位符的个数与可变形参的长度相同!
        Connection conn = null;
        PreparedStatement ps = null;
        try {
            //1.获取数据库的连接
            conn = JDBCUtils.getConnection();
            //2.预编译sql语句,返回PreparedStatement的实例
            ps = conn.prepareStatement(sql);
            //3.填充占位符
            for (int i = 0; i < args.length; i++) {
                //小心参数声明错误!!参数索引是从0开始的。预编译sql的占位符的索引从1开始
                ps.setObject(i + 1, args[i]);
            }
            //4.执行
            ps.execute();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            //5.资源的关闭
            JDBCUtils.closeResource(conn, ps);
        }
    }
}

JDBCUtils.java

public class JDBCUtils {
	public static Connection getConnection() throws Exception {
		// 1.读取配置文件中的4个基本信息
		InputStream is = ClassLoader.getSystemClassLoader().getResourceAsStream("jdbc.properties");

		Properties pros = new Properties();
		pros.load(is);

		String user = pros.getProperty("user");
		String password = pros.getProperty("password");
		String url = pros.getProperty("url");
		String driverClass = pros.getProperty("driverClass");

		// 2.加载驱动
		Class.forName(driverClass);

		// 3.获取连接
		Connection conn = DriverManager.getConnection(url, user, password);
		return conn;
	}

	public static void closeResource(Connection conn,Statement ps){
		closeResource(conn,ps,null);
	}

	//关闭资源操作
	public static void closeResource(Connection conn,Statement ps,ResultSet rs){
		try {
			if(ps != null)
				ps.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		try {
			if(conn != null)
				conn.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		try {
			if(rs != null)
				rs.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
}

jdbc.properties

user=root
password=123456
url=jdbc:mysql://192.168.220.11:3306/test?rewriteBatchedStatements=true
driverClass=com.mysql.cj.jdbc.Driver
12-04 07:08