JAVA连接数据库步骤及工具类分享
原创 52cxy 07-17 11:39 阅读数:750

JDBC编程基本步骤

使用JDBC连接数据库的基本步骤通常如下:

  • 加载数据库驱动程序:使用Class.forName()方法加载特定数据库的驱动程序类。

  • 建立数据库连接使用DriverManager.getConnection()方法建立与数据库的连接,该方法返回一个Connection对象。

  • 创建和执行SQL语句使用Connection对象创建Statement、PreparedStatement或CallableStatement对象,然后使用它们执行SQL语句。

  • 处理查询结果如果SQL语句是查询语句,则通过ResultSet对象获取查询结果,并进行相应的处理。

  • 关闭连接和释放资源在完成数据库操作后,必须关闭ResultSet、Statement和Connection对象,以释放资源并防止内存泄漏。


JAVA连接数据库工具类:


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class JDBCUtil {

    // JDBC数据库连接地址及用户名密码
    private static final String URL = "jdbc:mysql://localhost:3306/db_name";
    private static final String USERNAME = "username";
    private static final String PASSWORD = "password";
    // 静态代码块,加载数据库驱动程序,以MYSQL为例
    static {
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
    
    // 获取数据库连接的方法
    public static Connection getConnection() throws SQLException {
        return DriverManager.getConnection(URL, USERNAME, PASSWORD);
    }
    
    // 关闭数据库资源的方法(ResultSet、Statement、Connection)
    public static void close(Connection conn, PreparedStatement pstmt, ResultSet rs) {
        try {
            if (rs != null) {
                rs.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        try {
            if (pstmt != null) {
                pstmt.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        try {
            if (conn != null) {
                conn.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    
    // 示例:执行查询并处理结果集的方法
    public static void query(String sql) {
        Connection conn = null;
        PreparedStatement pstmt = null;
        ResultSet rs = null;
        try {
            conn = getConnection();
            pstmt = conn.prepareStatement(sql);
            rs = pstmt.executeQuery();
            // 处理查询结果
            while (rs.next()) {
                // 示例:输出结果集中的数据
                System.out.println(rs.getString("column_name"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            close(conn, pstmt, rs);
        }
    }
    
    // 示例:执行更新操作的方法
    public static int update(String sql) {
        Connection conn = null;
        PreparedStatement pstmt = null;
        int result = 0;
        try {
            conn = getConnection();
            pstmt = conn.prepareStatement(sql);
            result = pstmt.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            close(conn, pstmt, null);
        }
        return result;
    }
    
    // 测试示例:主方法,用于测试
    public static void main(String[] args) {
        // 示例:查询操作
        String querySql = "SELECT * FROM table_name";
        query(querySql);
        // 示例:更新操作
        String updateSql = "UPDATE table_name SET column_name = value WHERE condition";
        int rowsUpdated = update(updateSql);
        System.out.println("Rows updated: " + rowsUpdated);
    }
}


共0条评论
我要评论