MySql的JDBC技术的简单封装

本文介绍了JDBC技术,详细讲解了如何添加MySQL驱动和Druid连接池jar包,重点在于对JDBC的增删查改操作进行封装,使用了反射和metadata,以简化代码并为理解框架奠定基础。

什么是JDBC技术

Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。我们通常说的JDBC是面向关系型数据库的。这里要讲的是MySql数据库的连接技术.

步骤

添加jar包

添加MySql的驱动

在这里插入图片描述

添加连接池jar

这里用到的是阿里的连接池技术: druid
在这里插入图片描述

封装JDBC

这里主要是对增删查改的这些操作进行的封装

代码如下:

import java.lang.reflect.Field;
import java.sql.*;
import java.util.*;

/**
 * @Author mrchen 2020/12/10
 */
public class DBUtils {
   
   

    /**
     * 驱动类路径
     */
    private static final String DRIVER_CLASS = "com.mysql.jdbc.Driver";
    /**
     * url地址,账户,以及密码
     */
    private static final String URL = "jdbc:mysql://localhost:3306/test";
    private static final String USER = "root";
    private static final String PASSWORD = "chenda";

    static {
   
   
        try {
   
   
            Class.forName(DRIVER_CLASS);
        } catch (ClassNotFoundException e) {
   
   
            e.printStackTrace();
        }
    }

    private DBUtils() {
   
   

    }

    /**
     * 获取数据库连接对象
     *
     * @return 数据库连接对象
     */
    public static Connection getConnection() {
   
   
        try {
   
   
            return DriverManager.getConnection(URL, USER, PASSWORD);
        } catch (SQLException e) {
   
   
            e.printStackTrace();
        }

        return null;
    }

    /**
     * 释放资源
     *
     * @param rs   结果集
     * @param stmt 数据库操作对象
     * @param conn 数据库连接对象
     */
    public static void close(ResultSet rs, Statement stmt, Connection conn) {
   
   
        if (Objects.nonNull(rs)) {
   
   
            try {
   
   
                rs.close();
            } catch (SQLException e) {
   
   
                e.printStackTrace();
            }
        }

        if (Objects.nonNull(stmt)) {
   
   
            try {
   
   
                stmt.close();
            } catch (SQLException e) {
   
   
                e.printStackTrace();
            }
        }

        if (Objects.nonNull(conn)) {
   
   
            try {
   
经典java数据库封装类,package com.bjsxt.shopping.util; import java.sql.*; public class DB { public static Connection getConn() { Connection conn = null; try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection("jdbc:mysql://localhost/shopping?user=root&password=root"); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return conn; } public static PreparedStatement prepare(Connection conn, String sql) { PreparedStatement pstmt = null; try { if(conn != null) { pstmt = conn.prepareStatement(sql); } } catch (SQLException e) { e.printStackTrace(); } return pstmt; } public static PreparedStatement prepare(Connection conn, String sql, int autoGenereatedKeys) { PreparedStatement pstmt = null; try { if(conn != null) { pstmt = conn.prepareStatement(sql, autoGenereatedKeys); } } catch (SQLException e) { e.printStackTrace(); } return pstmt; } public static Statement getStatement(Connection conn) { Statement stmt = null; try { if(conn != null) { stmt = conn.createStatement(); } } catch (SQLException e) { e.printStackTrace(); } return stmt; } /* public static ResultSet getResultSet(Connection conn, String sql) { Statement stmt = getStatement(conn); ResultSet rs = getResultSet(stmt, sql); close(stmt); return rs; } */ public static ResultSet getResultSet(Statement stmt, String sql) { ResultSet rs = null; try { if(stmt != null) { rs = stmt.executeQuery(sql); } } catch (SQLException e) { e.printStackTrace(); } return rs; } public static void executeUpdate(Statement stmt, String sql) { try { if(stmt != null) { stmt.executeUpdate(sql); } } catch (SQLException e) { e.printStackTrace(); } } public static void close(Connection conn) { try { if(conn != null) { conn.close(); conn = null; } } catch (SQLException e) { e.printStackTrace(); } } public static void close(Statement stmt) { try { if(stmt != null) { stmt.close(); stmt = null; } } catch (SQLException e) { e.printStackTrace(); } } public static void close(ResultSet rs) { try { if(rs != null) { rs.close(); rs = null; } } catch (SQLException e) { e.printStackTrace(); } } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值