第一步:导入两个jar包
第二步:创建一个properties文件
第三步:在properties文件中添加配置:连接驱动、数据库名字、数据库用户名和密码等
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql:///ManageSys
username=root
password=admin123
initialSize=5
maxActive=10
maxWait=3000
maxIdle=6
minIdle=3
第四步:创建连接池对象
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
public class JdbcUtil {
// 创建数据源对象
private static DataSource dataSource;
static {
// 新建一个配置文件对象
Properties properties = new Properties();
// 通过类加载器找到文件路径,读配置文件
InputStream inputStream = JdbcUtil.class.getResourceAsStream("/d.properties");
// 加载属性文件
try {
properties.load(inputStream);
// 创建连接池对象
dataSource = DruidDataSourceFactory.createDataSource(properties);
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
/*
* 从连接池中获取连接
* */
public static Connection getConnect(){
Connection con = null;
try {
con = dataSource.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
return con;
}
/*
* 关闭资源
* */
public static void close(Connection connection, Statement statement, ResultSet resultSet){
if(connection!=null){
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(statement!=null){
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(resultSet!=null){
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
最后测试一下效果:
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.SQLException;
public class Main {
public static void main(String[] args) {
Connection connection = JdbcUtil.getConnect();
try {
DatabaseMetaData databaseMetaData = connection.getMetaData();
System.out.println(databaseMetaData.getURL() + ","
+ databaseMetaData.getUserName() + ","
+ databaseMetaData.getDriverName());
} catch (SQLException e) {
e.printStackTrace();
}
}
}