JDBC封装使用

package utils;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class Jdbc_03 {
    public static void main(String[] args) {
        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;

        try{
            // 2 连接跨数据库
            conn = util.connection();
            // 设置事务提交方式
            conn.setAutoCommit(false);
            // 3 获取数据库对象
            String sql = "select * from emp where ename like ?";
            ps = conn.prepareStatement(sql);
            ps.setString(1, "_A%");
            // 执行sql语句
            rs = ps.executeQuery();
            while (rs.next()){
                System.out.println(rs.getString("ename"));
            }
            conn.commit();

        }catch(Exception e){
            try {
                conn.rollback();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
            e.printStackTrace();
        }finally {
            util.close(conn, ps, rs);
        }
    }
}

工具类

import java.sql.*;

/**
 * 构造jdbc工具类简化编程
 */
public class util {

    // 将其构造方法私有化 工具类一般只能通过类名直接调用
    // 为防止直接new对象 将其构造方法私有化  注意如果不写构造方法 会默认添加一个无参构造
    private util(){}
    // 静态代码块 在进行类加载的时候执行
    static{
        // 注册驱动
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
    // 连接数据库
    //  注意这里异常必须抛出 因为如果代码出现错误则需要实现事务的回滚
    public static Connection connection() throws SQLException {
        return DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/zhangzhen", "root", "password");
    }
    // 释放资源
    public static void close(Connection conn, PreparedStatement ps, ResultSet rs){
        if (rs != null){
            try {
                rs.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
        if (ps != null){
            try {
                ps.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
        if(conn != null){
            try {
                conn.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
    }
}

上一篇:使用JDBC方式连接ClickHouse查询数据


下一篇:Java JDBC 编程指北