公用的update

包结构:
这里写图片描述

=====================================
jdbc.properties路径:/jdbc-1/src/jdbc.properties
内容:
#连接MySQL
jdbc.user=root
jdbc.password=root
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.jdbcUrl=jdbc:mysql://127.0.0.1:3306/jdbc1

#连接Oracle
#jdbc.user=scott
#jdbc.password=tiger
#jdbc.driverClass=oracle.jdbc.driver.OracleDriver
#jdbc.jdbcUrl=jdbc:oracle:thin:@127.0.0.1:1521:ORCL001

==========================================

工具类:获取连接、关闭资源

package com.atguigu.jdbc;

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

/**
 * JDBC 操作的工具类
 */
public class JdbcUtils {

    public static void close(ResultSet resultSet){
        try {
            if(resultSet != null){
                resultSet.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    //关闭数据库资源
    public static void close(Connection connection){
        try {
            if(connection != null){
                connection.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    public static void close(Statement statement){
        try {
            if(statement != null){
                statement.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    //根据配置文件获取数据库连接
    public static Connection getConnection() throws ClassNotFoundException, SQLException, IOException{
        Connection connection = null;

        //0. 读取 Properties 文件
        Properties properties = new Properties();
        InputStream in = JdbcUtils.class.getClassLoader().getResourceAsStream("jdbc.properties");
        properties.load(in);

        //1. 准备连接数据库的四个基本信息: 
        String driverClassName = properties.getProperty("jdbc.driverClass");
        String url = properties.getProperty("jdbc.jdbcUrl");
        String user = properties.getProperty("jdbc.user");
        String password = properties.getProperty("jdbc.password");

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

        //3. 调用 DriverManager.getConnection(url, user, password) 获取连接
        connection = DriverManager.getConnection(url, user, password);

        return connection;
    }

公用update代码实现:

//用于 insert、update、delete 的方法.
    public void update(String sql, Object ... args){
        Connection connection = null;
        PreparedStatement preparedStatement = null;

        try {
            //1. 获取连接
            connection = JdbcUtils.getConnection();

            //2. 调用 Connection#prepareStatement(sql) 创建 PreparedStatement 对象
            preparedStatement = connection.prepareStatement(sql);

            //3. 调用 PreparedStatement 的 setXxx 方法来填充占位符
            if(args != null && args.length > 0){
                for(int i = 0; i < args.length; i++){
                    preparedStatement.setObject(i + 1, args[i]);
                }
            }

            //4. 执行 SQL. 调用 execute() 方法. 而不能再调用 Statement 的 execute(sql) 方法
            preparedStatement.execute();

        } catch (Exception e) {
            e.printStackTrace();
        } finally{
            //5. 关闭数据库资源
            JdbcUtils.close(preparedStatement);
            JdbcUtils.close(connection); 
        }
    }
==========================================
//测试
@Test
    public void testUpdate2() throws ClassNotFoundException{
        String sql = null;

//      sql = "INSERT INTO users(username, password) VALUES(? ,?)";
//      update(sql, "abcd", "123456");

//      sql = "UPDATE users SET username = ?, password = ? WHERE id = ?";
//      update(sql, "bcde", "3457678", 6);

        sql = "DELETE FROM users WHERE id = ?";
        update(sql, 6);

        //String className = "";
        //把 className 对应的 class 文件加载到内存中. 得到 Class 对象
        //1. 导致 className 对应的 class 的静态变量完成初始化
        //2. 执行静态代码块的代码
        //Class.forName(className);
    }
原文地址:https://www.cnblogs.com/lisingshen/p/7499737.html