首先回顾一下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

jdbc连接mysql工具类_jdbc之工具类DBUtil的使用相关推荐

  1. jdbc连接mysql的语法_JDBC连接MySQL

    JDBC连接MySQL 加载及注册JDBC驱动程序 Class.forName("com.mysql.jdbc.Driver"); Class.forName("com. ...

  2. jdbc连接mysql驱动包_jdbc连接数据库驱动包

    FineReport如何用JDBC连接阿里云ADS数据库 在使用FineReport连接阿里云的ADS(AnalyticDB)数据库,很多时候在测试连接时就失败了.此时,该如何连接ADS数据库呢? 我 ...

  3. jdbc连接mysql正规方法_JDBC基础篇(MYSQL)——通过JDBC连接数据库的三种方式

    package day01_jdbc; import java.sql.Connection; import java.sql.Driver; import java.sql.DriverManage ...

  4. jdbc连接mysql数据库过程_jdbc连接数据库的步骤

    基本理解:开发中要先加载驱动,然后获得连接,创建执行SQL语句的对象,并且执行SQL 第一步:把想要连接的数据库驱动加载入JVM,如加载mysql数据库驱动类可以通过Class.forName(&qu ...

  5. jdbc连接mysql驱动方式_JDBC连接数据库系列教程 – JDBC注册驱动的常见方式

    方法1 DriverManager.registerDriver(new com.microsoft.sqlserver.jdbc.SQLServerDriver(),2); 方法2 System.s ...

  6. jdbc连接mysql登录注册_jdbc+mysql+servlet+jsp实现用户注册与登录功能

    /* *mysql代码 */ DROP TABLE IF EXISTS `useres`; CREATE TABLE `useres` ( `id` int(20) NOT NULL AUTO_INC ...

  7. jdbc连接数据库mysql的问题_JDBC连接Mysql数据库出现的问题汇总

    最近安装了一个 mysql 8.0 版本的数据库,在程序中连接的时候可谓是状况不断.之前也会遇到一些问题,这里就对使用 JDBC 连接 mysql 会出现的问题做一个汇总. 在此之前说明一下环境: 开 ...

  8. JDBC连接MySQL数据库及演示样例

    JDBC是Sun公司制定的一个能够用Java语言连接数据库的技术. 一.JDBC基础知识         JDBC(Java Data Base Connectivity,java数据库连接)是一种用 ...

  9. JDBC连接MySQL数据库及示例

    JDBC是Sun公司制定的一个可以用Java语言连接数据库的技术. 一.JDBC基础知识         JDBC(Java Data Base Connectivity,java数据库连接)是一种用 ...

  10. java jdbc 连接mysql数据库 实现增删改查

    好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打 ...

最新文章

  1. 业界对物联网技术最常见的三大误区解读
  2. 西南交通大学计算机学院,西南交通大学2021年招生计划:四川招1830人、重庆招426人...
  3. Log4j和Slf4j的比较
  4. 芒果数据库备份与还原
  5. 同济大学计算机学硕无人录取,2019年双非上岸同济大学计算机考研初复试经验分享,超详细!...
  6. 用asp记录论坛用户密码(dvbbs,leadbbs等)
  7. 在vscode中打开PDF文件
  8. 三星手机使用应用沙盒动态修改sdk数据
  9. java 坐标反算_Java实现坐标反算方位角
  10. Windows 开机自动拨号上网
  11. IP签名档HTML版本源码 显示精准定位
  12. 12306抢票工具震撼来袭
  13. 那些年,我们一起做过的 Java 课后练习题(51 - 55)
  14. oracle中字体倒转,Oracle特殊查询 行列倒转 分页
  15. GET http://localhost:8082/ net::ERR_INCOMPLETE_CHUNKED_ENCODING 200 (OK)
  16. java se1.6配套Jdk,javase 1.6与jdk1.6
  17. python爬取网页表格数据匹配_爬取表格类网站数据并保存为excel文件
  18. 机器学习-生成对抗网络实战(二-2)
  19. 阿里云天池供应链大赛(一)
  20. 使用UmiJS封装请求umi-request

热门文章

  1. 狸猫的面试——JVM综述
  2. android开发圆形Imageview图标实现
  3. linux 字符串时间转换,Linux C/C++时间字符串与time_t之间的转换方法(转)
  4. Sourcetree安装教程及使用
  5. uview 瀑布流_RecyclerView瀑布流的那些坑
  6. oracle序列跳号,回跳
  7. Oracle序列创建和使用
  8. 三维计算机动画的特征是真实性,【影视制作论文】艺术语言论文:纪录片中语言的真实性解析(共4867字)...
  9. indent expected
  10. 设置默认以管理员的身份运行CMD