1、JDBC封装访问数据库的基类,目的是重用数据库访问代码
封装以下方法:
MySQL数据库的连接
数据库关闭
开启数据库事务
提交数据库事务
事务回滚
注意没有封装存储过程的调用
/**
*
Title: BaseDao.java
*
Description:
*
Copyright: Copyright (c) 2019
*
Company: www.nosprings.com
* @author liuhaibing
* @date 2019年12月18日
* @version 1.0
*/
package com.chinasofti.shop.dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
/**
* @author liuhaibing
* @date 2019年12月18日
* @version 1.0
*/
public class BaseDao {
private String url = "jdbc:mysql://localhost:3306/db_test_myshop2?useUnicode=true&characterEncoding=utf-8";
private String dbUserName = "root";
private String dbUserPwd = "123456";
protected Connection conn = null;
/**
* 返回数据库连接的方法
* @author liuhaibing
* @date 2019年12月18日
* @version 1.0
*/
public Connection getConnection() {
if (conn != null)
return conn;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(url, dbUserName, dbUserPwd);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
/**
* 封装底层数据库连接关闭方法
* @author liuhaibing
* @date 2019年12月18日
* @version 1.0
*/
public void closeConnection() {
try {
if(conn != null) {
conn.close();
}
}catch(SQLException e) {
e.printStackTrace();
}
}
/**
* 关闭数据库的自动事务提交功能,从自己控制事务的提交或者回滚
* @author liuhaibing
* @date 2019年12月18日
* @version 1.0
*/
public void openTransaction() {
if(conn != null) {
try {
// 关闭数据库操作的自动commit功能
conn.setAutoCommit(false);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
/**
* 手动提交事务
* @author liuhaibing
* @date 2019年12月18日
* @version 1.0
*/
public void commit() {
if(conn != null) {
try {
conn.commit();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public void rollback() {
if(conn != null) {
try {
conn.rollback();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}