JDBC 4—— 增删改操作

获取数据库的连接

    public static Connection getConnection() throws IOException, ClassNotFoundException, SQLException {
        // 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;
    }

关闭连接和Statement的操作

public static void closeResource(Connection conn, PreparedStatement ps) {
        try {
            if (ps != null)
                ps.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        try {
            if (conn != null) {
                conn.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

 修改customers表的一条数据

package com.JDBCStudy3.PreparedStatement.crud;

import java.sql.Connection;
import java.sql.PreparedStatement;

import JDBC_util.JDBCutils;

public class PreparedStatementUpdateTest {

    // 修改customers表的一条数据
    public void testUpdate() {
        Connection conn = null;
        PreparedStatement ps = null;
        try {
            // 1、获取数据库的连接
            conn = JDBCutils.getConnection();
            
            // 2、预编译sql语句,返回PreparedStatement的实例
            String sql = "update customers set name = ? where id = ?";
            conn.createStatement();
            ps = conn.prepareStatement(sql);

            // 3、填充占位符
            ps.setObject(1, "莫扎特");
            ps.setObject(2, 18);

            // 4、执行
            ps.execute();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            // 5、资源的关闭
            JDBCutils.closeResource(conn, ps);
        }
    }
}

通用的增删改操作

    // 通用的增删改操作
    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++) {
                ps.setObject(i + 1, args[i]);//小心参数声明错误
            }

            // 4、执行
            ps.execute();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            // 5、资源的关闭
            JDBCutils.closeResource(conn, ps);
        }
    }

 删改操作

    public void testCommonUpdate() {
        // 删除操作
        String sql = "delete from customers where id = ?";
        update(sql, 3);

        //修改操作
        sql = "update `order` set order_name = ? where order_id = ?";
        update(sql, "DD", "2");
    }
原文地址:https://www.cnblogs.com/stu-jyj3621/p/14309694.html