/**
* 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();
}
}
}
}