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