您的位置:首页 > 数据库

JDBC数据库连接和事务的管理 一个JDBC基本操作封装类的编写

2015-08-14 22:39 591 查看
Java使用JDBC建立数据库连接时,主要使用到了两个类:

java.sql.Connection;
java.sql.DriverManager;

创建一个连接的基本过程为:

//注册驱动名
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/databaseName";
String username = "root";
String password = "root";
//获取数据库连接
Connection conn =DriverManager.getConnection(url,username,password);

同时也需要做一些事务的管理:

事务的管理主要通过Connection类的一些方法来实现:

//开启事务
conn.setAutoCommit(false);
//提交事务
conn.commit();
//事务回滚
conn.rollback();

在使用完连接之后一定记得关闭资源:

Connection:
conn.close();
Statement:
ps.close;
ResultSet:
rs.close();

以下是一个JDBC基本操作的封装类:

public class DbUtil {

/**
* 获取数据库连接
* @return
*/
public static Connection getConnection(){
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/StudentManage";
String username = "root";
String password = "m123";
conn =DriverManager.getConnection(url,username,password);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}

/**
* 关闭数据库连接
*/
public static void close(Connection conn){
if(conn != null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}

/**
* 关闭Statement
*/
public static void close(Statement ps){
if(ps != null){
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}

/**
* 关闭ResultSet
*/
public static void close(ResultSet rs){
if(rs != null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}

/**
* 开启事务
*/
public static void beginTransaction(Connection conn){
try{
if(conn != null){
if(conn.getAutoCommit()){
conn.setAutoCommit(false);
}
}
} catch(SQLException e){
e.printStackTrace();
}
}
/**
* 提交事务
*/
public static void commitTransaction(Connection conn){
try{
if(conn != null){
conn.commit();
}
} catch(SQLException e){
e.printStackTrace();
}
}
/**
* 事务回滚
*/
public static void rollbackTransaction(Connection conn){
try{
if(conn != null){
conn.rollback();
}
}catch(SQLException e){
e.printStackTrace();
}
}
/**
* 重置事务开启状态
*/
public static void resetConnection(Connection conn){
try{
if(conn != null){
if(conn.getAutoCommit()){
conn.setAutoCommit(false);
} else {
conn.setAutoCommit(true);
}
}
} catch(SQLException e){
e.printStackTrace();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息