proxool mysql 驱动_数据库连接池proxool的两种使用方式

数据库连接池可以通过两种方式来应用,针对web应用和非web应用而来。

非web应用的数据库连接池配置

第一种方式:工厂类

非web应用可以使用工厂模式将数据库连接创建封装在一个工具类中,工具类中又使用单例模式来创建加载驱动,代码如下:

工厂类:ConnectPoolFactory.java

1 importjava.io.InputStream;2 importjava.sql.Connection;3 importjava.sql.DriverManager;4 importjava.util.Properties;5

6 importorg.logicalcobwebs.proxool.configuration.PropertyConfigurator;7

8 public classConnectPoolFactory {9

10 private static ConnectPoolFactory connectPoolFactory=null;11

12 private ConnectPoolFactory() {//构造方法

13 init();14 }15

16 public void init(){//把properties文件加载到链接对象

17 InputStream is = ConnectPoolFactory.class.getResourceAsStream("/proxool.properties");18 Properties properties = newProperties();19 try{20 properties.load(is);21 PropertyConfigurator.configure(properties);22 } catch(Exception e) {23 e.printStackTrace();24 }25 }26

27 public static ConnectPoolFactory getInstance(){//单例模式

28 if(null ==connectPoolFactory){29 connectPoolFactory = newConnectPoolFactory();30 }31

32 returnconnectPoolFactory;33 }34

35

36 publicConnection getConnect(){37 Connection conn=null;38 try{39 Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");// 加载数据库连接池配备的驱动40 conn = DriverManager.getConnection("proxool.test");//proxool为配置文件名,test为连接池别名41 } catch(Exception e) {42 e.printStackTrace();43 }44 returnconn;45 }46

47 }

配置文件:proxool.properties

1 jdbc-1.proxool.alias=test2 #jdbc-1.proxool.driver-class=oracle.jdbc.OracleDriver3 #jdbc-1.proxool.driver-url=jdbc:oracle:thin:@127.0.0.1:1521:orcl4 jdbc-1.proxool.driver-class=com.mysql.jdbc.Driver5 jdbc-1.proxool.driver-url=jdbc:mysql://localhost:3306/db_course6 jdbc-1.user=root7 jdbc-1.password=root8

9 jdbc-1.proxool.maximum-connection-count=810 jdbc-1.proxool.minimum-connection-count=511 jdbc-1.proxool.prototype-count=412 jdbc-1.proxool.verbose=true13 jdbc-1.proxool.statistics=10s,1m,1d14 jdbc-1.proxool.statistics-log-level=error

然后通过工厂类创建工厂对象,通过工厂对象获取连接池实例,通过实例创建连接

测试类:ProxoolTest.java

1 public classProxoolTest {2 public static voidmain(String[] args) {3 ConnectPoolFactory factory =ConnectPoolFactory.getInstance();4 Connection connect =factory.getConnect();5 System.out.println("ProxoolTest.main(conncet): " +connect);6 }7 }

第二种方式:工具类中加载

工具类:DBUtil.java

1 public classDBUtil {2 static{3 InputStream is = DBUtil.class

4 .getResourceAsStream("/proxool.properties");5 Properties properties = newProperties();6 try{7 properties.load(is);8 PropertyConfigurator.configure(properties);9 } catch(Exception e) {10 e.printStackTrace();11 }12 }13

14 /**

15 * 获取数据库连接16 *17 *@return

18 */

19 public staticConnection getConn() {20 Connection conn = null;21 try{22 Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");23 conn = DriverManager.getConnection("proxool.test");24 } catch(SQLException e) {25 e.printStackTrace();26 } catch(ClassNotFoundException e) {27 e.printStackTrace();28 }29 returnconn;30 }31

32 /**

33 * 获取sql语句发送器34 *35 *@paramconn36 *@return

37 */

38 public staticStatement getStmt(Connection conn) {39 Statement stmt = null;40 try{41 stmt =conn.createStatement();42 } catch(SQLException e) {43 e.printStackTrace();44 }45 returnstmt;46 }47

48 /**

49 * 获取预处理发送器50 *51 *@paramconn52 *@paramsql53 *@return

54 */

55 public staticPreparedStatement getPstmt(Connection conn, String sql) {56 PreparedStatement pstmt = null;57 try{58 pstmt =conn.prepareStatement(sql);59 } catch(SQLException e) {60 e.printStackTrace();61 }62 returnpstmt;63 }64

65 /**

66 * 动态绑定参数67 *68 *@parampstmt69 *@paramparams70 */

71 public static voidbindParam(PreparedStatement pstmt, Object... params) {72 for (int i = 0; i < params.length; i++) {73 try{74 pstmt.setObject(i + 1, params[i]);75 } catch(SQLException e) {76 e.printStackTrace();77 }78 }79 }80

81 /**

82 * 关闭资源83 *@paramautoCloseables 实现了AutoCloseable接口的实现类对象84 */

85 public static voidcloseAll(AutoCloseable...autoCloseables) {86 for(AutoCloseable autoCloseable : autoCloseables) {87 if(autoCloseable!=null){88 try{89 autoCloseable.close();90 } catch(Exception e) {91 e.printStackTrace();92 }93 }94 }95 }96 }

在web应用中使用数据库连接池

proxool.properties配置文件是不可少的,但是DBUtil.java中的静态代码块就不再需要了。

不过要在web.xml中添加如下代码:

1

2

3 servletConfigurator

4 org.logicalcobwebs.proxool.configuration.ServletConfigurator

5

6 propertyFile

7 WEB-INF/classes/proxool.properties

8

9 1

10

11

12

13

14 adminServlet

15 org.logicalcobwebs.proxool.admin.servlet.AdminServlet

16

17

18 adminServlet

19 /admin

20

其中/admin用来配置访问监控连接池页面

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值