JDBC获取数据库Connection的工具抽取
使用JDBC获取数据库的连接,大字分为三个步骤
1、获取驱动包名,定义URL,database_username,database_password
2、获取Connection对象
3、利用Connection对象获取Statement或者PreparedStatement对象
4、再调用PreparedStatement对象的executeQuery()、executeUpdate()方法去进行操作
5、释放对象和资源
这5步都比较繁琐,特别是第1步,其中耦合度比较低的是的是第1步,第2步。
通用的做法是将获取Connection对象的过程单独抽出来,做成工具,以后使用的时候直接调用就行。
但是又需要在系统启动的时候就将配置文件读进来,并且不反复读取,就只有使用静态代码块static{}了。
同理,获取驱动包的操作也是,执行一次就够了。
第5步释放对象和资源,其实也可以抽象出来,如果执行的是executeUpdate(),关闭两个对象,如果执行的是查询语句,多关闭一个result对象就可以了。
此处强烈推荐使用连接池,每次自己获取Connection对象,容易出错,也繁琐。推荐使用c3p0
jdbc.properties配置文件内容
driverClass=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/loginpractice
username=root
password=1234
JdbcUtils源码
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.ResourceBundle;
public class JdbcUtils {
//1、创建四个常量 DRIVERCLASS URL DATABASE PASSWORD
//2、构建静态代码块,读取配置文件,给常量赋值
//3、获取Connection对象
private static final String DRIVERCLASS;
private static final String URL;
private static final String USERNAME;
private static final String PASSWORD;
static {//读取配置文件
DRIVERCLASS = ResourceBundle.getBundle("jdbc").getString("driverClass");
URL = ResourceBundle.getBundle("jdbc").getString("url");
USERNAME = ResourceBundle.getBundle("jdbc").getString("username");
PASSWORD = ResourceBundle.getBundle("jdbc").getString("password");
}
static {
try {// 将加载驱动操作,放置在静态代码块中.这样就保证了只加载一次.
Class.forName(DRIVERCLASS);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static Connection getConnection() throws SQLException {
// 2.获取连接
Connection con = DriverManager.getConnection(URL, USERNAME, PASSWORD);
System.out.println("获取连接成功");
return con;
}
}
JDBC获取数据库Connection的工具抽取的更多相关文章
- 通过jdbc获取数据库中的表结构
通过jdbc获取数据库中的表结构 主键 各个表字段类型及应用生成实体类 1.JDBC中通过MetaData来获取具体的表的相关信息.可以查询数据库中的有哪些表,表有哪些字段,字段的属性等等.Met ...
- 通过jdbc获取数据库中的表结构 主键 各个表字段类型及应用生成实体类
http://www.cnblogs.com/lbangel/p/3487796.html 1.JDBC中通过MetaData来获取具体的表的相关信息.可以查询数据库中的有哪些表,表有哪些字段,字段的 ...
- 使用JDBC获取数据库中的一条记录并封装为Bean
比如我数据库中存入的是一条一条的用户信息,现在想取出一个人的个人信息,并封装为Bean对象,可以使用queryForObject来获取数据并通过new BeanPropertyRowMapper(Be ...
- Java -- JDBC 获取数据库自动 生成的主键值
public class Demo4 { /* create table test1 ( id int primary key auto_increment, name varchar(20) ); ...
- jmeter使用jdbc获取注册验证码进行注册
自动化工具测试注册功能时,往往会遇到验证码,这个烦人的验证码怎么能够解决掉呢? 通常有两种方法 让开发禁用注册码,或在测试环境写个固定的验证码 在jmeter中用 jdbc获取数据库中验证码 今天通过 ...
- Spring是如何保证同一事务获取同一个Connection的?使用Spring的事务同步机制解决:数据库刚插入的记录却查询不到的问题(转)
前言 关于Spring的事务,它是Spring Framework中极其重要的一块.前面用了大量的篇幅从应用层面.原理层面进行了比较全方位的一个讲解.但是因为它过于重要,所以本文继续做补充内容:Spr ...
- Java -- JDBC 学习--获取数据库链接
数据持久化 持久化(persistence): 把数据保存到可掉电式存储设备中以供之后使用.大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上加以”固化”,而持久化的实现过程大 ...
- JDBC核心技术(获取数据库链接、数据库事务、数据库链接池)
@ 目录 前言 数据的持久化 Java数据存储技术 JDBC介绍 JDBC体系结构 获取数据库链接 Driver接口 加载注册JDBC驱动 获取数据库链接 数据库链接方式(实例) 方式一:代码中显示出 ...
- jdbc 获取connection 对象的三种方式
获取数据库连接方法一:驱动实现类 //创建mysql的Driver对象 Driver driver=new com.mysql.jdbc.Driver(); //jdbc url 定位一个数据库: S ...
随机推荐
- Android - FEATURE_NO_TITLE
Android设置无标题的方法 在onCreate()中写入: requestWindowFeature(Window.FEATURE_NO_TITLE); 例如: protected void on ...
- JavaScript中的几种继承方式对比
转自:http://blog.csdn.net/kkkkkxiaofei/article/details/46474069 从’严格’意义上说,JavaScript并不是一门真正的面向对象语言.这种说 ...
- 学习笔记TF032:实现Google Inception Net
Google Inception Net,ILSVRC 2014比赛第一名.控制计算量.参数量,分类性能非常好.V1,top-5错误率6.67%,22层,15亿次浮点运算,500万参数(AlexNet ...
- 【D3】cluster layout
一. 和其他D3类一样,layout 可以链式传递,使用简明的申明添加多种自定义设置. 二.API # d3.layout.cluster() Creates a new cluster layout ...
- [学习笔记] CDQ分治 从感性理解到彻底晕菜
最近学了一种叫做CDQ分治的东西...用于离线处理一系列操作与查询似乎跑得很快233 CDQ的名称似乎源于金牌选手陈丹琦 概述: 对于一坨操作和询问,分成两半,单独处理左半边和处理左半边对于右半边的影 ...
- Android studio导出AAR包问题整理。
最近因为项目需求开始整理一个SDK 以AAR的方式提供出去.在整理的过程中遇到了很多坑. 以下是一些总结希望能帮助遇到同样问题的人. 1.怎么导出AAR,这种文章太多了,我贴一个大家可以做参考. ht ...
- 微信小程序-滚动消息通知
写在前面: 微信小程序学的不太多,做了一个简单的项目,回来很快时间内把在深圳两天的房租给赚回来了. 这次我主要想总结一下微信小程序实现上下滚动消息提醒,主要是利用swiper组件来实现,swiper组 ...
- C——Network Saboteur (POJ2531)
题目: A university network is composed of N computers. System administrators gathered information on t ...
- 如何快速高效地完成一个Android项目?
本文的内容有别于之前文章中纯技术的探讨,会从业务逻辑.技术.团队和方法论的角度探讨如何快速高效地完成一个Android项目.当然,快速高效是有前提的,第一,本文依然是从研发的角度来谈如何把控项目的,而 ...
- CSS2--字体样式
## CSS2 字体样式 ##### font-family 字体族 - 规定元素的字体系列 - 把多个字体作为一个"回退"系统保存.保证浏览器的支持 - ````Microsof ...