自己写一个数据库连接工具类

    xiaoxiao2021-12-14  19

    最近刚复习了一下JDBC相关的知识,这里来写一个mysql数据库连接工具类来练习一下。 在jdbc连接数据库时,Connection对象是非常稀有的资源,用完后必须马上释放,如果Connection不能及时、正确的关闭,极易导致系统宕机。Connection的使用原则是尽量晚创建,尽量早的释放。 所以在一个项目中,如何正确的去管理Connection对象就显得尤为重要。数据库连接工具类需要包括一下功能: (1)为了实现解耦合,我们提供配置文件的方式来进行数据库参数的配置 (2)实现一个类,用来提供数据库连接 (3)实现关闭数据库连接

    首先我们新建一个项目:/MysqlUtil,并导入mysql-connector-java-5.1.40-bin.jar这个jar包到项目中

    然后在类加载目录下新建一个配置文件:/MysqlUtil/src/test.properties

    //数据库驱动的名称,可以根据不同的数据库进行相应的修改 drivername=com.mysql.jdbc.Driver //数据库的url url=jdbc:mysql://localhost:3306/test //用户名 username=root //密码 password=root

    数据库的URL用于标识数据库的位置,程序员通过URL地址告诉JDBC程序连接哪个数据库,URL的写法为:

    jdbc:mysql:[]//localhost:3306/test ?参数名:参数值 协议 子协议 主机 端口 数据库

    常用数据库URL地址的写法:

    Oracle写法:jdbc:oracle:thin:@localhost:1521:sid SqlServer—jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=sid MySql—jdbc:mysql://localhost:3306/sid Mysql的url地址的简写形式: jdbc:mysql:///sid 常用属性:useUnicode=true&characterEncoding=UTF-8

    新建一个工具类/MysqlUtil/src/com/chen/util/mysqlConnUtil.java 我们这个类需要实现的功能主要包括: (1) 读取配置文件 (2) 加载数据库驱动 (3) 获取数据库连接 (4)关闭数据库连接 其中,读取配置文件应该在类加载时完成,我们可以考虑把代码放在静态代码块中,并建立两个静态函数分别来进行数据库连接和关闭的操作 ,代码如下:

    package com.chen.util; import java.io.FileInputStream; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Properties; public class mysqlConnUtil { private static Properties properties = new Properties(); static{ String path = mysqlConnUtil.class.getClassLoader().getResource("test.properties").getPath(); try { properties.load(new FileInputStream(path)); } catch (Exception e) { e.printStackTrace(); } } public static Connection getConn(){ Connection conn = null; try { Class.forName(properties.getProperty("drivername")); conn = DriverManager.getConnection(properties.getProperty("url"),properties.getProperty("username") , ""); } catch (Exception e) { e.printStackTrace(); } return conn; } public static void release(Connection conn,Statement stat,ResultSet rs){ if(rs != null){ try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } finally{ rs = null; } } if(stat != null){ try { stat.close(); } catch (SQLException e) { e.printStackTrace(); } finally{ stat = null; } } if(conn != null){ try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } finally{ conn = null; } } } }
    转载请注明原文地址: https://ju.6miu.com/read-971127.html

    最新回复(0)