JDBCTools 工具类(c3p0连接池获取连接,关闭连接,基本事务)
2017-04-06 00:00
447 查看
/**
* Driver 是一个接口:数据库厂商必须提供实现的接口,能从其中获取数据库连接
* DriverManager 是驱动的管理类
* 1)、可以通过重载的 getConnection() 方法获取数据库连接(方便)
* 2)、可以同时管理多个驱动程序:若注册了多个数据库连接,则调用 getConnection()
* 方法时传入的参数不同,即返回不同的数据库连接。
*/
public class JDBCTools {
private JDBCTools() {
}
/**
* 关闭数据库连接
*/
public static void release(ResultSet resultset, Statement statement,Connection conn){
try {
if (resultset!=null)
resultset.close();
} catch (SQLException e) {
e.printStackTrace();
}
try {
if (statement!=null)
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
//数据库连接池的 Connection 对象进行 close 时
//并不是真的进行关闭, 而是把该数据库连接会归还到数据库连接池中
try {
if (conn!=null)
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
//在整个项目里面一般只需要一个连接池
private static DataSource dataSource = null;
//数据库连接池应只被初始化一次。
static{
dataSource = new ComboPooledDataSource("helloc3p0");
}
/**
* 创建数据库连接
*/
public static Connection getConnection() throws SQLException{
return dataSource.getConnection();
}
// public static Connection getConnection() throws IOException, ClassNotFoundException, SQLException{
// //1、创建四个用来连接数据库的字符串
// String driverClass=null;
// String jdbcURL=null;
// String user=null;
// String password=null;
//
// Properties pro=new Properties();
// InputStream in=
// JDBCTools.class.getClassLoader().getResourceAsStream("jdbc.Properties");
// pro.load(in);
// driverClass=pro.getProperty("driver");
// jdbcURL=pro.getProperty("jdbcUrl");
// user=pro.getProperty("user");
// password=pro.getProperty("password");
// //2、加载数据库驱动
// Class.forName(driverClass);
// //3、连接数据库
// Connection connection=DriverManager.getConnection(jdbcURL, user, password);
// return connection;
// }
/**
* 开始事务
*/
public static void beginTx(Connection conn){
if (conn != null) {
try {
conn.setAutoCommit(false);
} catch (SQLException e) {
e.printStackTrace();
}
}
}
/**
* 回滚事务
*/
public static void rollback(Connection conn){
if (conn != null) {
try {
conn.rollback();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
/**
* 提交事务
*/
public static void commit(Connection conn){
if(conn != null){
try {
conn.commit();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
* Driver 是一个接口:数据库厂商必须提供实现的接口,能从其中获取数据库连接
* DriverManager 是驱动的管理类
* 1)、可以通过重载的 getConnection() 方法获取数据库连接(方便)
* 2)、可以同时管理多个驱动程序:若注册了多个数据库连接,则调用 getConnection()
* 方法时传入的参数不同,即返回不同的数据库连接。
*/
public class JDBCTools {
private JDBCTools() {
}
/**
* 关闭数据库连接
*/
public static void release(ResultSet resultset, Statement statement,Connection conn){
try {
if (resultset!=null)
resultset.close();
} catch (SQLException e) {
e.printStackTrace();
}
try {
if (statement!=null)
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
//数据库连接池的 Connection 对象进行 close 时
//并不是真的进行关闭, 而是把该数据库连接会归还到数据库连接池中
try {
if (conn!=null)
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
//在整个项目里面一般只需要一个连接池
private static DataSource dataSource = null;
//数据库连接池应只被初始化一次。
static{
dataSource = new ComboPooledDataSource("helloc3p0");
}
/**
* 创建数据库连接
*/
public static Connection getConnection() throws SQLException{
return dataSource.getConnection();
}
// public static Connection getConnection() throws IOException, ClassNotFoundException, SQLException{
// //1、创建四个用来连接数据库的字符串
// String driverClass=null;
// String jdbcURL=null;
// String user=null;
// String password=null;
//
// Properties pro=new Properties();
// InputStream in=
// JDBCTools.class.getClassLoader().getResourceAsStream("jdbc.Properties");
// pro.load(in);
// driverClass=pro.getProperty("driver");
// jdbcURL=pro.getProperty("jdbcUrl");
// user=pro.getProperty("user");
// password=pro.getProperty("password");
// //2、加载数据库驱动
// Class.forName(driverClass);
// //3、连接数据库
// Connection connection=DriverManager.getConnection(jdbcURL, user, password);
// return connection;
// }
/**
* 开始事务
*/
public static void beginTx(Connection conn){
if (conn != null) {
try {
conn.setAutoCommit(false);
} catch (SQLException e) {
e.printStackTrace();
}
}
}
/**
* 回滚事务
*/
public static void rollback(Connection conn){
if (conn != null) {
try {
conn.rollback();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
/**
* 提交事务
*/
public static void commit(Connection conn){
if(conn != null){
try {
conn.commit();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
相关文章推荐
- JDBC获取连接、关闭连接的简单工具类2
- JDBC获取连接、关闭连接的简单工具类
- JDBC数据库连接和事务的管理 一个JDBC基本操作封装类的编写
- 几个问题(十二)------数据库连接池的实现原理,请求怎么样去获取连接,关闭连接时,连接池是销
- SFTP工具类——切换目录,遍历保存一个目录,关闭资源,获取连接
- JAVAWEB开发之事务详解(mysql与JDBC下使用方法、事务的特性、锁机制)和连接池的详细使用(dbcp以c3p0)
- JDBC实例--通过连接工具类DBUtil +配置文件来获取连接数据库,方便又快捷
- 小工具之使用c3p0获取Jdbc连接
- JDBC获取连接的三种工具类封装方式(v1.0)
- JDBC实例--工具类升级,使用Apache DBCP连接池重构DBUtility,让连接数据库更有效,更安全
- 封装一个JDBC的建立连接和关闭连接的工具类
- 使用spring配置C3P0连接池 并通过手动获取spring的ApplicationContext和bean对象使用库连接。
- 数据库连接池的实现原理,请求怎么样去获取连接,关闭连接时,连接池是销 .
- 【JDBC单例】和【C3P0连接池基本用法】的对比
- JDBC以及相关技术学习(二)----把JDBC获取连接封装成一个工具类
- jdbc中使用c3p0来获取连接
- 黑马程序员 JDBC_编写一个基本的连接池来实现连接的复用,优化工作(李勇老师)
- c3p0--Jdbc连接池的基本使用
- JDBC项目-MySQL 事务、JDBC事务示例、连接池dbcp和c3p0
- JavaWeb之JDBC(二)采用读取配置文件方式编写JDBC的工具类,获取数据库的连接