数据库连接池:Druid
2020-04-25 本文已影响0人
hemiao3000
本片内容收录在我的在线笔记 java-note-for-free 中。
笔记源文件在 gitee 中。
本片内容收录在我的在线笔记 java-note-for-free 中。
笔记源文件在 gitee 中。
Druid 阿里巴巴公司开源的一款数据库连接池。在功能、性能、扩展性方面,都超过它的先辈。
虽然晚于 Druid 的 HikariCP 数据库对外宣称是性能最快的数据库连接池,而且 Druid 方面也并未对此说法作出反驳。但一般看法是 HikariCP 数据库的性能对于 Druid 不具备压倒性优势。
简单使用
-
pom.xml
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.17</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.20</version> </dependency>
-
简单示例:
Properties properties = new Properties(); properties.setProperty("driver", "com.mysql.jdbc.Driver"); properties.setProperty("url", "jdbc:mysql://127.0.0.1:3306/scott?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=false"); properties.setProperty("username", "root"); properties.setProperty("password", "123456"); DataSource dataSource = DruidDataSourceFactory.createDataSource(properties); Connection connection = dataSource.getConnection(); System.out.println(connection == null ? "not connected" : "connected");
结合配置文件使用
配置文件:
-
jdbc.properties
driver=com.mysql.cj.jdbc.Driver url=jdbc:mysql://127.0.0.1:3306/scott?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=false username=root password=123456
从配置文件中加载配置信息,并创建数据库连接池:
-
代码:
InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("jdbc.properties"); Properties properties = new Properties(); properties.load(is); DataSource dataSource = DruidDataSourceFactory.createDataSource(properties); // Druid Connection connection = dataSource.getConnection(); System.out.println(connection == null ? "not connected" : "connected");
Druid 中的工具类:JdbcUtils
Druid 的 com.alibaba.druid.util
包下有若干工具类,其中 JdbcUtils
中提供了我们常见 JDBC 操作的封装。
其中,
-
增删改 SQL 操作,可以使用
.executeUpdate()
方法简化代码。 -
查询 SQL 操作,可以使用
.executeQuery()
方法简化代码。
另外,.close()
方法 .printResultSet()
也很有实用价值。