EAS中怎么实现数据库连接池?
EAS二次开发时,有些时候需要直连非业务系统的数据库,这个时候使用JDBC+连接池技术是可选之一(webservice不讨论)。
一、EAS、开源
1、开源组件中有个比较有名的DBCP,
2、国内比较有名的阿里的Druid
本文主要讲解DBCP。主要原因是EAS的连接池实现就在在dbcp基础上构建的,二次开发直接使用dbcp可省去很多事。
二、实现原理
DBCP 主要通过BasicDataSource配置相关数据源信息,比如数据库URL、驱动、用户名、密码、连接池初始大小等
如Apache官网的说明
EAS中对应的类为,配置和Apache官方说明完全一致:
bos.org.apache.commons.dbcp.BasicDataSource
三、示例代码
// 初始化DataSource
BasicDataSource ds = new BasicDataSource();
ds.setUrl(url);
ds.setDriverClassName(driverClassName);
ds.setUsername(username);
ds.setPassword(password);
ds.setInitialSize(initialSize); // 初始的连接数;
ds.setMaxActive(maxActive);
ds.setMinIdle(minIdle);
ds.setMaxIdle(maxIdle);
ds.setMaxWait(maxWait);
// 其他配置。。。
// 获取Connection
Connection conn = ds.getConnection();
// 执行CRUD,此处省略
四、总结
1、对于连接池的配置信息可通过配置文件方式存取,也可通过做成单据的方式。最好不要将数据库明文密码暴露在配置文件中。
2、在EAS中使用连接池时,需要考虑到数据库驱动的问题,请查看KSQL文档说明的支持问题,不过大部分常用驱动都支持,因为EAS本身就是一个多数据库支持的系统,必然要使用到数据库驱动。