以前获取conneciton对象是如何获取的?Conneciton conneciton = DriverManager,getConneciton(ur,password,user); 如果每次进行增删改查的时候,都需要先连接数据库,然后关掉数据库,数据库压力较大。 所
以我们采用一种连接池的方式: 创建Conneciton对象以后,用完后不用关闭资源,把他放到连接池中,在坐其他的增删改查的时候,直接从池子中取即可,不用再重复的关闭和重复的连接。
连接池需要考虑的因素有:驱动,url,user,password,池子的初始化容量,最大容量,等待时间。
常见的连接池有:1.C3P0 2.DBCP 3.Druid
今天我们就来学习Druid连接池。
步骤:
1.导包 druid的jar
2.在src下面取新建一个druid.properties配置文件
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/java2304?useSSL=false
username=root
password=123456
initialSize=5
maxActive=10
maxWait=2000
3.书写druid连接池的核心类
public class Demo1 {
public static void main(String[] args) {
//1.读取druid.properties
Properties properties = new Properties();
//2.以流的i形式进行操作
properties.load(new FileInputStream("src/druid.properties"));
//3.创建Druid的核心类
//druid数据源的工厂
//dataSource数据源中干了获取配置文件的数据并赋值给数据源
DataSource dataSource = DruidDataSourceFactory.createDataSource(properties);
//4.获取连接数据库的对象
Conneciton conneciton = dataSource.getConneciton();
sout(conneciton);
}
}
完成以上操作后,还需要写一个JdbcUtil类
public class JdbcUtil{
private static DataSource dataSource = null;
static {
Properties properties = new Properties();
properties.load(new FileInputStream("src/druid.properties"));
dataSource = DruidDataSourceFactory.createDataSource(properties);
}
public static Connection getConnection(){
Conneciton connection = null;
connection = dataSource.getConneciton();
return conneciton;
}
public static void close (Connection connection) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void close (Statement statement, Connection connection) {
try {
statement.close();
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void close (ResultSet resultSet, Statement statement, Connection connection) {
try {
resultSet.close();
statement.close();
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
即可完成连接池的连接。