创建JDBCUtils工具类
JDBCUtils工具类
- 私有化构造函数,外界无法直接创建对象
- 提供公共的,静态的,getConnection 方法,用来给外界提供数据库连接
- 提供公共的,静态的,close方法,用来释放资源
package cn.tedu.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ResourceBundle;
/**
* 这个类用来提供jdcb的工具类
1.1 私有化构造函数,外界无法直接创建对象
1.2 提供公共的,静态的,getConnection 方法,用来给外界提供数据库连接
1.3 提供公共的,静态的,close方法,用来释放资源
1.4 测试类
*/
public class JDBCUtils {
//1,私有化构造函数,外界无法直接创建对象
private JDBCUtils(){}
//只加载一次属性文件
static ResourceBundle rb = null;
static{
//a,,,,读取属性文件
rb = ResourceBundle.getBundle("jdbc");
}
//2,提供公共的,静态的,getConnection 方法,
//用来给外界提供数据库连接
public static Connection getConnection(){
try {
//1,注册驱动
//b,,获取属性文件里的内容
Class.forName(rb.getString("driverClass"));
//2,获取数据库连接
String url=rb.getString("jdbcUrl");
String user=rb.getString("user");
String password=rb.getString("password");
Connection conn = DriverManager.getConnection(url, user, password);
return conn;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
//3,提供公共的,静态的,close方法,
//用来释放资源
public static void close(ResultSet rs, Statement st,Connection conn){
//释放结果集资源
//非空判断,防止空指针异常
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}finally{
rs=null;//手动置空
}
}
//释放传输器资源
//非空判断,防止空指针异常
if(st!=null){
try {
st.close();
} catch (SQLException e) {
e.printStackTrace();
}finally{
st=null;//手动置空
}
}
//释放数据库连接资源
//非空判断,防止空指针异常
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}finally{
conn=null;//手动置空
}
}
}
测试类
package cn.tedu.test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import org.junit.Test;
import com.mysql.jdbc.Driver;
import cn.tedu.util.JDBCUtils;
/**
* 这个类用来测试工具类
*/
public class TestUtils {
//单元测试方法:@Test + void
@Test
public void hello(){
Connection conn = null;//声明连接对象
Statement st = null;//声明传输器对象
ResultSet rs = null;//声明结果集对象
try {
//1,注册驱动 2,获取数据库连接
conn = JDBCUtils.getConnection();
//3,获取传输器java.sql.Statement
st = conn.createStatement();
// 4,执行SQL。java.sql.ResultSet
String sql ="select * from user";
rs = st.executeQuery(sql);
// 5,遍历结果集
while(rs.next()){
//根据列的索引获取第一列的数据
// String id = rs.getString(1);
//根据列的名字获取第一列的数据
String id = rs.getString("id");
// int id1 = rs.getInt(1);
//根据列的索引获取第二列的数据
String username = rs.getString(2);
//根据列的索引获取第三列的数据
String password = rs.getString(3);
System.out.println(id+username+password);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{//保证资源一定会被释放
// 6,释放资源
JDBCUtils.close(rs, st, conn);
}
}
}
准备数据

配置文件的开发形式
//2,提供公共的,静态的,getConnection 方法,
//用来给外界提供数据库连接
public static Connection getConnection(){
try {
//a,,,,读取属性文件
ResourceBundle rb =
ResourceBundle.getBundle("jdbc");
//1,注册驱动
//b,,获取属性文件里的内容
Class.forName(rb.getString("driverClass"));
//2,获取数据库连接
String url=rb.getString("jdbcUrl");
String user=rb.getString("user");
String password=rb.getString("password");
Connection conn =
DriverManager.getConnection(
url, user, password);
return conn;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
创建JDBCUtils工具类的更多相关文章
- JavaWeb基础之JdbcUtils工具类final
JdbcUtils工具类3.0最终版,添加了事务相关功能和释放链接.最终版本可以直接打成jar包,在后面的基本项目都会使用该工具类 1. JdbcUtils代码 /** * 最终版 * @author ...
- JavaWeb基础之JdbcUtils工具类1.0
2016年12月20日,第一次学习JDBC.看的是传智播客崔希凡老师的视频,东北口音很是风趣幽默,技术之牛让人膜拜.2017年9月21日,再次重温web知识,分享JdbcUtils工具类,用以接下来的 ...
- 记一次关于JDBCUtils工具类的编写
jdbc.properties数据库配置的属性文件内容如下 jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost/xxxx ...
- Druid 连接池 JDBCUtils 工具类的使用
Druid工具介绍 它不仅仅是一个数据库连接池,它还包含一个ProxyDriver,一系列内置的JDBC组件库,一个SQL Parser. 支持所有JDBC兼容的数据库,包括Oracle.MySQL. ...
- hibernate课程 初探一对多映射2-3 创建hibernateUtil工具类
本节主要内容:创建hibernateUtil工具类:demo demo: HibernateUtil.java package hibernate_001; import org.hibernate. ...
- 【JDBC】学习路径5-提取JDBCUtils工具类
回顾我们上面几节的内容,我们发现重复代码非常多,比如注册驱动.连接.关闭close()等代码,非常繁杂. 于是我们将这些重复的大段代码进行包装.提取成JDBCUtils工具类. 第一章:提取注册连接模 ...
- 01_JavaMail_05_创建邮件工具类MailUtils等方便发送邮件
[工程截图] [代码实现] [Mail.java] package com.Higgin.Utils; import java.util.ArrayList; import java.util.Lis ...
- JavaWeb基础之JdbcUtils工具类2.0
使用c3p0连接池来改版JdbcUtils工具 1. 使用c3p0连接池获取连接,使代码更加简单 /** * 使用c3p0连接池做小工具 * JdbcUtils v2.0 * @author hui. ...
- Java课程设计---创建数据库工具类
1.传统的数据库操作 package com.java.mysql; import java.sql.Connection; import java.sql.DriverManager; import ...
随机推荐
- Spring boot 入门四:spring boot 整合mybatis 实现CRUD操作
开发环境延续上一节的开发环境这里不再做介绍 添加mybatis依赖 <dependency> <groupId>org.mybatis.spring.boot</grou ...
- 小tip: 某简单的字符重叠与图形生成----张鑫旭
引言 字符重叠不是什么稀奇的东西. 如1像素错位模拟阴影效果: 或者powerFloat中展示的带边框三角: 以及其他很多. 但是技术这东西不是豆腐,老了可以吃,臭了也可以吃:那我这里还拿着个说事作甚 ...
- 使用vue+webpack打包时,去掉资源前缀
在build文件夹下找到webpack.prod.conf.js文件,搜索 filename: utils.assetsPath('css/[name].[contenthash].css'), 将[ ...
- Java volatile关键字解惑
volatile特性 内存可见性:通俗来说就是,线程A对一个volatile变量的修改,对于其它线程来说是可见的,即线程每次获取volatile变量的值都是最新的. volatile的使用场景 通过关 ...
- ciscn2018-pwn-wp
前言 2018全国大学生网络安全竞赛 ,做了2 道题 task_supermarket change_desc 里面调用 realloc 会触发 uaf 利用 uaf 修改 obj->desc_ ...
- Evernote Markdown Sublime使用介绍
版权声明: 欢迎转载,但请保留文章原始出处 作者:GavinCT 出处:http://www.cnblogs.com/ct2011/p/4002619.html 这一篇博客继续探讨:Evernote ...
- zookeeper应用 - 配置服务
一端不停的更新配置,另一端监听这个配置的变化. 需要注意的是:监听端不一定读取到所有的变化.在zk服务器发送通知到客户端,客户端读取数据注册监听之间可能发生了多次数据变化,这些数据变化是得不到 ...
- Claims-based认证解析
Claims-based认证相关的两个重要的类ClaimsIdentity以及ClaimsPrincipal解析 ClaimsIdentity以及ClaimsPrincipal是.NET下Claims ...
- 利用 NGINX 最大化 Python 性能,第二部分:负载均衡和监控
[编者按]本文主要介绍 NGINX 的主要功能以及如何通过 Nginx 优化 Python 应用性能.本文系国内 ITOM 管理平台 OneAPM 编译呈现. 本文上一篇系: 利用 NGINX 最大化 ...
- LeetCode题解之Intersection of Two Linked Lists
1.题目描述 2.问题分析 使用unordered_set 将链表A中的节点地址全部插入,然后使用链表B中的每个节点在A中查找. 3.代码 ListNode *getIntersectionNode( ...