jdbc连接mysql工具类_jdbc之工具类DBUtil的使用

首先回顾一下jdbc的使用方法:

1. 注册驱动

2. 建立连接

3. 建立statement

4. 定义sql语句

5. 执行sql语句,如果执行的是查询需遍历结果集

6. 关闭连接

其中建立连接和关闭连接都是可以封装成工具类的,因此给出DBUtil代码如下:

package com.colin.util;

import java.sql.*;

public class DBUtil {

private static final String DRIVER = "com.mysql.jdbc.Driver";

private static final String URL = "jdbc:mysql://localhost:3306/testdb";

private static final String USERNAME = "root";

private static final String PASSWORD = "Danny2036";

/**

* 获取连接的公共方法

* @return

*/

public static Connection getConnection() {

try {

Class.forName(DRIVER);

return DriverManager.getConnection(URL, USERNAME, PASSWORD);

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (SQLException e) {

e.printStackTrace();

}

return null;

}

/**

* 关闭Connection

* @param connection

*/

public static void closeConnection(Connection connection) {

try {

if (connection != null) {

connection.close();

}

} catch (SQLException e) {

e.printStackTrace();

}

}

/**

* 关闭Statement

* @param statement

*/

public static void closeStatement(Statement statement) {

try {

if (statement != null) {

statement.close();

}

} catch (SQLException e) {

e.printStackTrace();

}

}

/**

* 关闭ResultSet

* @param resultSet

*/

public static void closeresultset(ResultSet resultSet) {

try {

if (resultSet != null) {

resultSet.close();

}

} catch (SQLException e) {

e.printStackTrace();

}

}

/**

* 关闭ResultSet, Statement, Connection

* @param closeables

*/

public static void closeAll(AutoCloseable... closeables) {

for(AutoCloseable autoCloseable : closeables) {

try {

if (autoCloseable != null) {

autoCloseable.close();

}

} catch (Exception e) {

e.printStackTrace();

}

}

}

}

这里解释下最后一个方法closeAll()。关闭连接需要关闭哪些内容呢?一般情况下,有Connection和Statement,如果执行查询返回了结果集,还有ResultSet。关闭的顺序应该和打开的顺序相反(如,打开的顺序是Connection,Statement,关闭的顺序就应该是Statement,Connection)。如果分别写三个close方法,很明显代码不够精炼。因此,我们只用一个方法来关闭所有的连接。

通过查看源码可以知道,Connection,Statement,ResultSet都继承了AutoCloseable这个接口,因此closeAll()方法采用AutoCloseable类型的可变参数,传入的三个值按顺序依次是ResultSet(如果有),Statement,Connection。给出如下一个例子。

DBUtil.closeAll(resultSet, preparedStatement, connection);

大功告成。

JDBC 实例--JDBC通过工具类DBUtil连接到数据库,让我们不再恐惧操作数据库

利用JDBC连接到数据库一般需要几个步骤: 1.装载驱动程序. 2.建立连接. 3.发送和执行SQL语句. 4.释放资源 首先建立一个数据库: 脚本如下: create database csdn; ...

【JDBC】工具类的抽取

jdbc.properties属性文件 driverClass=com.mysql.jdbc.Driver url=jdbc:mysql:///jdbctest username=root passw ...

一、工具类DBUtil——数据库连接

这个工具类完成的工作如下: 1.第一个static方法,完成数据库初始化的工作 2.第二个static方法,完成与数据库建立连接的工作. package util; import java.sql.C ...

20160406javaweb JDBC 实例工具类

一.建立静态的数据库配置文件: config.properties driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/datab ...

jdbc连接数据库工具类

import java.lang.reflect.Field; import java.sql.Connection; import java.sql.DriverManager; import ja ...

创建Jdbc封装工具类

jdbc.propertie url=jdbc:mysql:///empye user=root password=root driver=com.mysql.jdbc.Driver 读取资源文件  ...

JDBC实例--工具类升级,使用Apache DBCP连接池重构DBUtility,让连接数据库更有效,更安全

直接使用JDBC访问数据库时,需要避免以下隐患: 1. 每一次数据操作请求都需要建立数据库连接.打开连接.存取数据和关闭连接等步骤.而建立和打开数据库连接是一件既耗资源又费时的过程,如果频繁发生这种数 ...

JDBC——抽取工具类

目的:简化书写 分析: 1.注册驱动 2.获取连接对象 3.释放资源 1.注册驱动 2.获取连接对象 需求:不想传递参数,还能保证工具类的通用性解决方案:配置文件 jdbc.properties ur ...

连接数据库工具类DBUtil

代码如下: import java.io.FileNotFoundException; import java.io.IOException; import java.sql.Connection; ...

随机推荐

Android MonoGame坑记

1.Content 加载声音API错误: 2.TouchPanel.GetState()属于抢占式的,用一次后面不能继续使用,否则状态尚属第一次: 3.TouchPanel 坐标来自于硬件本身: 4. ...

Python零散收集:

Python零散收集 转义字符 描述 \(在行尾时) 续行符 \\ 反斜杠符号 \’ 单引号 \” 双引号 \a 响铃 \b 退格(Backspace) \e 转义 \000 空 \n 换行 \v 纵 ...

this详解:JAVASCRIPT中的this到底是谁?

语法 this 全局对象 在全局执行上下文(函数之外),this引用的是全局对象. console.log(this.document === document); // true // In web ...

HDU3549 Flow Problem(网络流增广路算法)

题目链接. 分析: 网络流增广路算法模板题.http://www.cnblogs.com/tanhehe/p/3234248.html AC代码: #include ...

uva 10163 - Storage Keepers(01背包)

题目链接:10163 - Storage Keepers 题目大意:给出m为仓库的数量, 给出n为有守夜人的数量, 然后给出n个数值,为对应守夜人应付的酬劳,每个守夜人的能力与他需要的酬劳是相等的,并 ...

使用.NetCore 控制台演示 熔断 降级(polly)

1.熔断降级的概念: 熔断:我这里有一根长度一米的钢铁,钢铁的熔点1000度(假设),现在我想用力把这根钢铁折弯,但是人的力有限达不到折弯的点,然后我使用火给钢铁加热,每隔一段时间我就会尝试一下是否能 ...

Java建造(Builder)模式

一.什么是建造模式: 建造模式可以将一个产品的内部表象与产品的生成过程分割开来,从而使一个建造过程生成具有不同内部表象的产品.客户端不需要知道产品内部的结构和生产过程. 二.建造模式的结构: Buil ...

常用git操作命令

查看远程仓库 ->$ git remote -v    如果你本地有一个项目,想把他放到远程git服务器上,那就用上面的命令把项目 add 到远程服务器 ->$ git remote a ...

ASP.NET Core 简单实现七牛图片上传(FormData 和 Base64)

ASP.NET Core 简单实现七牛图片上传(FormData 和 Base64) 七牛图片上传 SDK(.NET 版本):https://developer.qiniu.com/kodo/sdk/ ...

SpringMVC 文件上传配置,多文件上传,使用的MultipartFile

一.配置文件:SpringMVC 用的是 的MultipartFile来进行文件上传 所以我们首先要配置MultipartResolver:用于处理表单中的file

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值