链接池
SqlFly内部有一个简易的连接池实现,只需在配置文件配置 ispool=true即可,当然你也可以轻松的集成第三方连接池
集成第三方连接池
- 以阿里的druid为例,点此下载 druid-1.1.19.jar
1、添加依赖
将 druid-1.1.19.jar 复制到根目录下的 lib 文件夹内
2、配置文件
在项目根目录下创建配置文件 druid.properties ,并复制以下信息
# 连接信息driverClassName=com.mysql.jdbc.Driverurl=jdbc:mysql://127.0.0.1:3306/sqlfly-demo?useUnicode=true&characterEncoding=utf-8username=rootpassword=root123456
3、创建 DruidDataSourceUtil 生成 DataSource
创建 DruidDataSourceUtil.java,并复制以下代码
/** 创建一个druid的数据源 */public class DruidDataSourceUtil {private static String propertiesPath = "druid.properties"; // 配置文件地址private static DataSource dataSource = null;/** 获取数据源 */public static synchronized DataSource getDataSource() {try {if(dataSource == null) {// 加载配置文件InputStream is = DruidDataSourceUtil.class.getClassLoader().getResourceAsStream(propertiesPath);Properties properties = new Properties();properties.load(is);// 创建连接池对象DruidDataSourceUtil.dataSource = DruidDataSourceFactory.createDataSource(properties);}return dataSource;} catch (Exception e) {throw new RuntimeException(e);}}}
4、将 DataSource 注入到SqlFly中
@Testpublic void test6_1() {DataSource dataSource = DruidDataSourceUtil.getDataSource(); // 获取 datasourceFlyObjects.setDataSource(dataSource); // 注入到SqlFly框架中System.out.println(FlyObjects.getDataSource());// ... 此时再获取 SqlFly,其Connection 就是由druid连接池创建的了}
至此,大功告成
集成第三方连接池 - springboot版
SpringBoot集成druid的步骤大体与[普通java版]相同,且得益于SpringBoot的依赖注入特性,步骤将更加简单
1、添加依赖
在pom.xml中
<!-- 阿里 druid 连接池 --><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.19</version></dependency>
2、配置文件
在 application.yml 里,复制以下代码
spring:# druid连接池相关配置datasource:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://127.0.0.1:3306/sqlfly-demo?useUnicode=true&characterEncoding=utf-8username: rootpassword: root123456
3、创建 DruidConfig.java 生成 DataSource
在包 com.pj 创建类 DruidConfig.java,并复制以下代码
// 配置 druid 相关信息@Configurationpublic class DruidConfig {// 返回druid的DataSource@Bean@ConfigurationProperties(prefix = "spring.datasource")public DataSource druid() {return new DruidDataSource();}}
4、测试
在 SqlFlyDemoApplication.java 里,测试
public static void main(String[] args) {SpringApplication.run(SqlFlyDemoApplication.class, args); // 启动 springbootSystem.out.println(SqlFlyFactory.getSqlFly().getDataSource());}
如果看到类似以下打印,则证明已经druid已经集成成功
{CreateTime:"xxxx-xx-xx xx:xx:xx",ActiveCount:0,PoolingCount:0,CreateCount:0,DestroyCount:0,CloseCount:0,ConnectCount:0,Connections:[]}
其它连接池
如果你能看懂上面两个例子的原理,就不难理解,所谓连接池,本质上不过就是为了构建一个
DataSource对象而已,明白了这一点,你就可以轻松集成任意连接池了
