自己写一个数据库连接工具类
最近刚复习了一下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;}}}
}
自己写一个数据库连接工具类相关推荐
- JavaWeb开发基础:连接数据库的demo和数据库连接工具类DB.java
JavaWeb开发基础:连接数据库的demo和数据库连接工具类DB.java import javax.servlet.*; import javax.servlet.http.*; import j ...
- php连接数据库封装函数,PHP基于MySQLI函数封装的数据库连接工具类【定义与用法】...
本文实例讲述了PHP基于MySQLI函数封装的数据库连接工具类.分享给大家供大家参考,具体如下: mysql.class.php: class mysql { private $mysqli; pri ...
- (一)、写一个怪物的类,类中有属性姓名(name),攻击力(attack),有打人的方法(fight)。(方法的重写)...
(一).写一个怪物的类,类中有属性姓名(name),攻击力(attack),有打人的方法(fight). 再写两个子类: 红猪的类:类中有属性姓名(name),攻击力(attack),颜色(color ...
- 用Spring+Mybatis写一个数据库增删改查
用Spring+Mybatis写一个数据库增删改查 总体结构 ClassBiz.java package com.gxj.biz;import java.util.List;import com.gx ...
- 用Spring+jdbc 写一个数据库增删改查
用Spring+Jdbc写一个数据库增删改查 先展示项目结构 ClassBiz.java package com.gxj.biz;import java.util.List;import com.gx ...
- 1. 写一个基本的类
1. 写一个基本的类 上手C++以来,仅熟练使用if.for等基本语句的我有很多疑惑,本篇主要解答以下问题: 类是什么 public & private 的作用 创建一个类,.cpp和.h文件 ...
- 10分钟教你写一个数据库
今天教大家借助一款框架快速实现一个数据库,这个框架就是Calcite,下面会带大家通过两个例子快速教会大家怎么实现,一个是可以通过 SQL 语句的方式可以直接查询文件内容,第二个是模拟 Mysql 查 ...
- python写一个数据库的界面_Python GUI教程(十四):在PyQt5中使用数据库
在桌面图像化界面编程中,我们通常需要将一些数据或配置信息存储在本地.在本地进行数据的存储,我们可以直接使用文本文件,比如ini文件.csv文件.json文件等,或者是使用文件型的数据库(比如sqlit ...
- Java写一个excel工具类_Java中Excel写操作工具类--Java免费学习网
核心提示:package com.common.excel;import com.common.excel.exception.WriteExcelException;import jxl.Workb ...
最新文章
- 安全挑战和SD-WAN解决方案
- ubuntu 交叉编译 armv7_32 ffmpeg x264(已完成)
- protoc: error while loading shared libraries: libprotoc.so.8: cannot open shared object file
- subline类似less的html插件,29个常用 Sublime Text 插件推荐
- junit 经典示例_JUnit4参数化和理论示例
- 条件运算符(?:)和 $替代string.Format()
- 小明的账单(信息学奥赛一本通-T1372)
- java中读取logback日志文件_java 中使用logback日志,并实现日志按天分类压缩保存。...
- 树莓派环境处理_一种基于树莓派的便携式的环境监测系统的制作方法
- Dart基础-变量与类型
- 立志做个有激情的coder
- 用PS设计等高线效果的背景图片
- 【转】让VB6.0集成环境支持鼠标滑轮
- 点云 数据 (偏向于研究大小)
- Gensim库的使用——Word2vec模型(一)模型的简单介绍与加载预训练的模型进行测试
- 61种u盘问题解决工具合集解决无法格式化,u盘写保护等问题。
- Win10系统上搭建GIT本地服务器
- 用python让excel飞起来 pdf_讯飞会议宝S8体验:以后开会请速记的钱,可以省了
- 算法问题:整数除法详解(Java方向)
- 校准plc模拟量输入模块有什么方法