package util;
import java.sql.Connection;
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
import javax.sql.DataSource;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
// 管理数据库连接
// 1) 建立连接
// 2) 断开连接
// JDBC 中使用 DataSource 来管理连接.
// DBUtil 相当于是对 DataSource 再稍微包装一层.
// DataSource 每个应用程序只应该有一个实例~~ (单例)
// DBUtil 本质上就是实现了一个单例模式, 管理了唯一的一个 DataSource 实例
// 单例模式的实现, 有两种风格:
// 1. 饿汉模式
// 2. 懒汉模式.
// 此处咱们使用懒汉模式
public class DBUtils {
private static volatile DataSource dataSource = null;
private static final String URL = "jdbc:mysql://127.0.0.1:3306/数据库名?characterEncoding=utf-8&useSSL=true";
private static final String USERNAME = "root";
private static final String PASSWORD= "*******";
//得到datasource对象
public static DataSource getDataSource() {
if(dataSource == null) {
synchronized (DBUtils.class) {
if (dataSource == null) {
dataSource = new MysqlDataSource();
((MysqlDataSource)dataSource).setURL(URL);
((MysqlDataSource)dataSource).setUser(USERNAME);
((MysqlDataSource)dataSource).setPassword(PASSWORD);
}
}
}
return dataSource;
}
//得到connection连接
public static Connection getConnection() {
try {
return getDataSource().getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
//释放资源
public static void close(Connection connection, PreparedStatement statement,
ResultSet resultSet) {
try {
if (resultSet != null) {
resultSet.close();
}
if (statement != null) {
statement.close();
}
if (connection != null) {
connection.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
java DBUtil 数据库连接
最新推荐文章于 2023-06-02 17:51:16 发布