最近刚复习了一下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;}}}
}

自己写一个数据库连接工具类相关推荐

  1. JavaWeb开发基础:连接数据库的demo和数据库连接工具类DB.java

    JavaWeb开发基础:连接数据库的demo和数据库连接工具类DB.java import javax.servlet.*; import javax.servlet.http.*; import j ...

  2. php连接数据库封装函数,PHP基于MySQLI函数封装的数据库连接工具类【定义与用法】...

    本文实例讲述了PHP基于MySQLI函数封装的数据库连接工具类.分享给大家供大家参考,具体如下: mysql.class.php: class mysql { private $mysqli; pri ...

  3. (一)、写一个怪物的类,类中有属性姓名(name),攻击力(attack),有打人的方法(fight)。(方法的重写)...

    (一).写一个怪物的类,类中有属性姓名(name),攻击力(attack),有打人的方法(fight). 再写两个子类: 红猪的类:类中有属性姓名(name),攻击力(attack),颜色(color ...

  4. 用Spring+Mybatis写一个数据库增删改查

    用Spring+Mybatis写一个数据库增删改查 总体结构 ClassBiz.java package com.gxj.biz;import java.util.List;import com.gx ...

  5. 用Spring+jdbc 写一个数据库增删改查

    用Spring+Jdbc写一个数据库增删改查 先展示项目结构 ClassBiz.java package com.gxj.biz;import java.util.List;import com.gx ...

  6. 1. 写一个基本的类

    1. 写一个基本的类 上手C++以来,仅熟练使用if.for等基本语句的我有很多疑惑,本篇主要解答以下问题: 类是什么 public & private 的作用 创建一个类,.cpp和.h文件 ...

  7. 10分钟教你写一个数据库

    今天教大家借助一款框架快速实现一个数据库,这个框架就是Calcite,下面会带大家通过两个例子快速教会大家怎么实现,一个是可以通过 SQL 语句的方式可以直接查询文件内容,第二个是模拟 Mysql 查 ...

  8. python写一个数据库的界面_Python GUI教程(十四):在PyQt5中使用数据库

    在桌面图像化界面编程中,我们通常需要将一些数据或配置信息存储在本地.在本地进行数据的存储,我们可以直接使用文本文件,比如ini文件.csv文件.json文件等,或者是使用文件型的数据库(比如sqlit ...

  9. Java写一个excel工具类_Java中Excel写操作工具类--Java免费学习网

    核心提示:package com.common.excel;import com.common.excel.exception.WriteExcelException;import jxl.Workb ...

最新文章

  1. 安全挑战和SD-WAN解决方案
  2. ubuntu 交叉编译 armv7_32 ffmpeg x264(已完成)
  3. protoc: error while loading shared libraries: libprotoc.so.8: cannot open shared object file
  4. subline类似less的html插件,29个常用 Sublime Text 插件推荐
  5. junit 经典示例_JUnit4参数化和理论示例
  6. 条件运算符(?:)和 $替代string.Format()
  7. 小明的账单(信息学奥赛一本通-T1372)
  8. java中读取logback日志文件_java 中使用logback日志,并实现日志按天分类压缩保存。...
  9. 树莓派环境处理_一种基于树莓派的便携式的环境监测系统的制作方法
  10. Dart基础-变量与类型
  11. 立志做个有激情的coder
  12. 用PS设计等高线效果的背景图片
  13. 【转】让VB6.0集成环境支持鼠标滑轮
  14. 点云 数据 (偏向于研究大小)
  15. Gensim库的使用——Word2vec模型(一)模型的简单介绍与加载预训练的模型进行测试
  16. 61种u盘问题解决工具合集解决无法格式化,u盘写保护等问题。
  17. Win10系统上搭建GIT本地服务器
  18. 用python让excel飞起来 pdf_讯飞会议宝S8体验:以后开会请速记的钱,可以省了
  19. 算法问题:整数除法详解(Java方向)
  20. 校准plc模拟量输入模块有什么方法

热门文章

  1. 干饭篇-西红柿炒鸡蛋+银耳红枣粥
  2. Java Web篇:导出等比例图片到Excel
  3. JQuery-weui city-picker动态加载数据
  4. 用matlab画双坐标图,怎么灵活改变坐标轴颜色,刻度,字体等
  5. stata解决内生性问题--样本选择
  6. 如何使用思维导图软件iMindMap做读书笔记
  7. toad for mysql 彻底卸载_toad for mysql 下载
  8. 思仪 4024A/B/C/D/E/F/G/H/L频谱分析仪
  9. 播放器音乐源之天天动听API
  10. UTF-8-BOOM