欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JDBC封装

程序员文章站 2024-03-22 23:43:40
...
JDBC封装
1.JDBC

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

2.JDBC封装建立一个数据连接文件

我这里的数据库是Oracle,这里的File 文件 建立在src文件夹下,里面内容一般是连接数据库的静态常量,在一般的企业开发是这样写的。

JDBC封装
里面参数是数据库的配置分别是 注册地址,连接,账户,密码

这里另外说一点,我这里的url 可能跟很多人不一样,因为我的数据库用的是XE选项登录的,很多人后面会是ORCL 根据自己实际情况来。

driverClass=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@localhost:1521:XE
username=GT_User
password=123456
3.创建DBUtil 工具类

在这个类中,我会创建四个方法分别是:

  • getConnection() //连接数据库

  • getPstmt(String sql) //获取数据库sql 执行对象

    //下面两个就是关闭ps,rs,conn 的close 方法

  • closeUpdateRes(PreparedStatement ps)

  • closeQueryRes(ResultSet rs)

代码如下:

public class DBUtil {

    /**
    * @Description: 数据库注册连接
    * @Param:
    * @Zhureturn:
    * @Author: Mr.Zhu
    * @Date:
    */
    public static Connection getConnection(){
        //io流文件引入
        InputStream in = DBUtil.class.getClassLoader().getResourceAsStream("db.properties");
        Properties prop = new Properties();
        Connection conn = null;

        try {
            prop.load(in);
            String driverClass = prop.getProperty("dirverClass");
            String url = prop.getProperty("url");
            String username = prop.getProperty("username");
            String password = prop.getProperty("parssword");
            //注册驱动
            Class.forName(driverClass);
            //连接数据库
            conn = DriverManager.getConnection(url,username,password);
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("数据库连接失败");
        }
        return conn;
    }

    /**
    * @Description: 获得数据库库sql执行对象
    * @Param: sql 数据库语句
    * @Zhureturn: pstmt 执行对象
    * @Author: Mr.Zhu
    * @Date: 2020-10-28 11:01
    */
    public static PreparedStatement getPstmt (String sql){
        Connection conn = getConnection();

        PreparedStatement pstmt = null;

        try {
            pstmt = conn.prepareStatement(sql);

        } catch (SQLException e) {
            e.printStackTrace();
        }

        return pstmt;
    }

/**
* @Description: 关闭close 所有链接,清除占用资源
* @Param: conn 数据库连接, ps 存放预处理数据库语句 rs sql语句执行结果集
* @Zhureturn: void
* @Author: Mr.Zhu
* @Date: 2020-10-06 10:37
*/
    public static void closeUpdateRes(PreparedStatement ps) {
        if(ps!=null){
            try {
                Connection conn = ps.getConnection();
                ps.close();
                if (conn!=null){
                    conn.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

    public static void closeQueryRes(ResultSet rs) {
       if (rs!=null){
           try {
               Statement pstmt= rs.getStatement();
               if (pstmt!=null){
                   Connection conn = pstmt.getConnection();
                   rs.close();
                   pstmt.close();
                   if (conn!=null){
                       conn.close();
                   }
               }
           } catch (SQLException e) {
               e.printStackTrace();
           }
       }
    }

}
               }
           } catch (SQLException e) {
               e.printStackTrace();
           }
       }
    }

}

建议看完之后可以自己去试着理解的打一遍,这样吸收效果可能会更好。开头的文件 配置 用的是io文件流引用,可以去查一下。