当前位置: 澳门新濠3559 > 编程 > 正文

需要将文件添加到classes文件中的根目录下,当使

时间:2019-10-07 13:15来源:编程
javax.sql.DataSource; 用池来管理Connection,这可以重复使用Connection。有了池,所有我们就不用自己来创建Connection,而是通过取来获取Connection对象。当使用完Connection后,调用Connection的close()

javax.sql.DataSource;

  用池来管理Connection,这可以重复使用Connection。有了池,所有我们就不用自己来创建Connection,而是通过取来获取Connection对象。当使用完Connection后,调用Connection的close()方法也不会真的关闭Connection,而是把Connection"归还"给池。池就可以在利用这个Connection对象了,便于管理连接,达到资源与时间的平衡。

  用池来管理Connection,这可以重复使用Connection。有了池,所有我们就不用自己来创建Connection,而是通过取来获取Connection对象。当使用完Connection后,调用Connection的close()方法也不会真的关闭Connection,而是把Connection"归还"给池。池就可以在利用这个Connection对象了,便于管理连接,达到资源与时间的平衡。

其他的开源组织提供了数据源的独立实现

一、连接池原理图

一、连接池原理图

二.DBCP技术使用

  • DBCP是 Apache 软件基金组织下的开源连接池实现,使用DBCP数据源,应用程序应在系统中增加如下两个 jar 文件:Commons-dbcp.jar:连接池的实现Commons-pool.jar:连接池实现的依赖库包下载链接:传送门密码:nshumaven环境配置:
<dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>1.4</version> </dependency>

 <dependency> <groupId>commons-pool</groupId> <artifactId>commons-pool</artifactId> <version>1.6</version> </dependency>
  • Tomcat 的连接池正是采用该连接池来实现的。该数据库连接池既可以与应用服务器整合使用,也可由应用程序独立使用。核心类:BasicDataSource
  • 使用步骤引入jar文件--commons-dbcp-1.4.jar--commons-pool-1.5.6.jar

澳门新濠3559 1

澳门新濠3559 2

1.硬编码方式实现连接池
package com.huan.car.dao.poolDBCP;import org.apache.commons.dbcp.BasicDataSource;import org.junit.Test;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.SQLException;/** * Created by 马欢欢 on 2017/5/29. */public class PoolDBCP { @Test public void testDbcp() throws SQLException { String url="jdbc:mysql://localhost:3306/car";//2.指定连接数据库的地址名称 String user="root"; String password = "root";//指定用户名和密码 PreparedStatement pstmt; //连接池核心类 BasicDataSource dataSource = new BasicDataSource(); //连接池参数配置:初始化连接数,最大连接数 dataSource.setDriverClassName("com.mysql.jdbc.Driver");//驱动 dataSource.setUrl;//连接字符串 dataSource.setUsername; dataSource.setPassword; dataSource.setInitialSize;//初始化连接数 dataSource.setMaxActive;//最大连接数 dataSource.setMaxIdle;//最大空闲时间 //获取连接 Connection conn = dataSource.getConnection(); pstmt = conn.prepareStatement(" delete from car where id= ? "); pstmt.setInt; pstmt.executeUpdate(); //关闭 conn.close(); }}

澳门新濠3559 3删除成功

1、池中有,则从池中拿;

1、池中有,则从池中拿;

2.配置方式实现连接池
  • 1.配置文件db.properties:

db.properties(注意当报错NullPointerException时,需要将文件添加到同级的classes文件中)配置文件中的key与BaseDataSouce属性一样

url=jdbc:mysql://localhost:3306/cardriverClassName=com.mysql.jdbc.Driverusername=rootpassword=rootinitialSize=3maxActive=6maxIdle=3000

澳门新濠3559 4需要将文件添加到同级的classes文件中

  • 2.连接代码
 @Test public void testProp()throws Exception{ PreparedStatement pstmt;// 加载prop配置文件 Properties prop = new Properties(); //获取文件流 InputStream inStream = PoolDBCP.class.getResourceAsStream( "db.properties"); //加载属性配置文件 prop.load; //根据prop配置文件直接创建数据源对象 DataSource dataSource = BasicDataSourceFactory.createDataSource; //获取连接 Connection conn = dataSource.getConnection(); pstmt = conn.prepareStatement(" delete from car where id= ? "); pstmt.setInt; pstmt.executeUpdate(); //关闭 conn.close(); }

澳门新濠3559 5删除成功

2、池中没有,就先等待,等待超时后,则新创建connection;

2、池中没有,就先等待,等待超时后,则新创建connection;

三.C3P0技术使用[最常用的连接池技术]

  • 最常用的连接池技术!Spring框架,默认支持C3P0连接池技术!C3P0连接池,核心类:CombopooledDataSource ds;使用:
  1. 下载,引入jar文件: c3p0-0.9.1.2.jar包下载链接:链接:c3p0-0.9.1.2.jar 密码:2bxomaven环境配置:
<dependency> <groupId>com.mchange</groupId> <artifactId>c3p0</artifactId> <version>0.9.5.2</version> </dependency>
  1. 使用连接池,创建连接a) 硬编码方式b) 配置方式[需要将文件添加到classes文件中的根目录下]

3、如果这个连接是原本就在池中的,那么用完之后,就放回池中;

3、如果这个连接是原本就在池中的,那么用完之后,就放回池中;

1.硬编码方式,使用C3P0
 //1.硬编码方式,使用C3P0 @Test public void testCode() throws PropertyVetoException, SQLException { String url="jdbc:mysql://localhost:3306/car";//2.指定连接数据库的地址名称 String user="root"; String password = "root";//指定用户名和密码 PreparedStatement pstmt; //创建连接池核心工具类 ComboPooledDataSource dataSource = new ComboPooledDataSource(); //连接池参数配置:初始化连接数,最大连接数 dataSource.setJdbcUrl; dataSource.setDriverClass("com.mysql.jdbc.Driver"); dataSource.setUser; dataSource.setPassword; dataSource.setInitialPoolSize; dataSource.setMaxPoolSize; dataSource.setMaxIdleTime; //从连接池对象中获取连接对象 Connection conn = dataSource.getConnection(); pstmt = conn.prepareStatement(" delete from car where id= ? "); pstmt.setInt; pstmt.executeUpdate(); //关闭 conn.close(); }

澳门新濠3559 6

3、如果这个连接是新创建的,那么用完之后,就直接销毁;

3、如果这个连接是新创建的,那么用完之后,就直接销毁;

2.配置方式,使用C3P0[重要]
  • c3p0-config.xml
<c3p0-config> <default-config> <property name="jdbcUrl">jdbc:mysql://localhost:3306/car</property> <property name="driverClass">com.mysql.jdbc.Driver</property> <property name="user">root</property> <property name="password">root</property> <property name="initialPoolSize">3</property> <property name="maxPoolSize">6</property> <property name="maxIdleTime">1000</property> <!--<property name="checkoutTimeout">30000</property>--> <!--<property name="maxIdleTimeExcessConnections">10</property>--> <!--<property name="maxConnectionAge">60</property>--> <!--<property name="propertyCycle">1</property>--> <!--<property name="minPoolSize">5</property>--> <!--<property name="maxStatements">0</property>--> <!--<property name="maxStatementsPerConnection">5</property>--> <!--<property name="maxAdministrativeTaskTime">4</property>--> <!--<property name="connectionCustomizerClassName">com.mchange.v2.c3p0.test.TestConnectionCustomizer</property>--> <!--<property name="unreturnedConnectionTimeout">15</property>--> <!--<property name="debugUnreturnedConnectionStackTraces">true</property>--> <!-- <user-overrides user="swaldman"> <property name="debugUnreturnedConnectionStackTraces">true</property> </user-overrides> --> </default-config> <!-- <named-config name="dumbTestConfig"> <property name="maxStatements">200</property> <property name="jdbcUrl">jdbc:test</property> <user-overrides user="poop"> <property name="maxStatements">300</property> </user-overrides> </named-config> --></c3p0-config>

![需要将文件添加到classes文件中的根目录下]]()

  • 源码
 //2.配置方式,使用C3P0 @Test public void testXml() throws SQLException { PreparedStatement pstmt; //创建连接池核心工具类 //自动加载根目录下面的c3p0配置文件【c3p0-config.xml】 ComboPooledDataSource dataSource = new ComboPooledDataSource(); //从连接池对象中获取连接对象 Connection conn = dataSource.getConnection(); pstmt = conn.prepareStatement(" delete from car where id= ? "); pstmt.setInt; pstmt.executeUpdate(); //关闭 conn.close(); }
  • 结果

    澳门新濠3559 7image.png

二、连接池的配置

二、连接池的配置

文章文集:JavaEE--学习笔记

1、池参数(所有池参数都有默认值):

澳门新濠3559,1、池参数(所有池参数都有默认值):

  • 初始大小:10个;
  • 最小空闲连接数:3个;
  • 增量:一次创建的最小单位(5个);
  • 最大空闲连接数:12个;
  • 最大连接数:20个;
  • 最大的等待时间:1000毫秒。
  • 初始大小:10个;
  • 最小空闲连接数:3个;
  • 增量:一次创建的最小单位(5个);
  • 最大空闲连接数:12个;
  • 最大连接数:20个;
  • 最大的等待时间:1000毫秒。

2、四大连接参数

2、四大连接参数

  连接池也是使用四大连接参数来完成创建连接对象。

  连接池也是使用四大连接参数来完成创建连接对象。

3、实现的接口

3、实现的接口

连接池必须实现:javax.sql.DataSource接口。

连接池必须实现:javax.sql.DataSource接口。

连接池返回的Connection对象,它的close()方法与众不同,调用它的close()不是关闭,而是把连接归还给池。

连接池返回的Connection对象,它的close()方法与众不同,调用它的close()不是关闭,而是把连接归还给池。

三、常用连接池

三、常用连接池

(一)DBCP

(一)DBCP

1、DBCP

1、DBCP

  DBCP(DataBase connection pool),数据库连接池。是 apache 上的一个 java 连接池项目,也是 tomcat 使用的连接池组件。单独使用dbcp需要2个包:commons-dbcp.jar,commons-pool.jar由于建立数据库连接是一个非常耗时耗资源的行为,所以通过连接池预先同数据库建立一些连接,放在内存中,应用程序需要建立数据库连接时直接到连接池中申请一个就行,用完后再放回去。

  DBCP(DataBase connection pool),数据库连接池。是 apache 上的一个 java 连接池项目,也是 tomcat 使用的连接池组件。单独使用dbcp需要2个包:commons-dbcp.jar,commons-pool.jar由于建立数据库连接是一个非常耗时耗资源的行为,所以通过连接池预先同数据库建立一些连接,放在内存中,应用程序需要建立数据库连接时直接到连接池中申请一个就行,用完后再放回去。

2、核心API:BasicDataSource、BasicDataSourceFactory

2、核心API:BasicDataSource、BasicDataSourceFactory

3、依赖的jar包:commons-dbcp-1.4.jar、commons-pool-1.5.6.jar、mysql-connector-java-5.1.44-bin.jar(数据库驱动,根据连接的数据库提供);

3、依赖的jar包:commons-dbcp-1.4.jar、commons-pool-1.5.6.jar、mysql-connector-java-5.1.44-bin.jar(数据库驱动,根据连接的数据库提供);

4、DBCP连接池配置文件(dbcpconfig.properties):

4、DBCP连接池配置文件(dbcpconfig.properties):

  配置文件需放在src的根目录下

  配置文件需放在src的根目录下

#连接设置
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mydb1
username=root
password=

#<!-- 初始化连接 -->
initialSize=5

#最大连接数量
maxActive=50

#<!-- 超时等待时间以毫秒为单位 60000毫秒/1000等于60秒 -->
maxWait=60000

#JDBC驱动建立连接时附带的连接属性属性的格式必须为这样:[属性名=property;] 
#注意:"user" 与 "password" 两个属性会被明确地传递,因此这里不需要包含他们。
connectionProperties=useUnicode=true;characterEncoding=utf8

#指定由连接池所创建的连接的自动提交(auto-commit)状态。
defaultAutoCommit=true

#driver default 指定由连接池所创建的连接的只读(read-only)状态。
#如果没有设置该值,则“setReadOnly”方法将不被调用。(某些驱动并不支持只读模式,如:Informix)
defaultReadOnly=

#driver default 指定由连接池所创建的连接的事务级别(TransactionIsolation)。
#可用值为下列之一:(详情可见javadoc。)NONE,READ_UNCOMMITTED, READ_COMMITTED, REPEATABLE_READ, SERIALIZABLE
defaultTransactionIsolation=REPEATABLE_READ

#<!-- 最大空闲连接 -->
maxIdle=20

#<!-- 最小空闲连接 -->
minIdle=5
#连接设置
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mydb1
username=root
password=

#<!-- 初始化连接 -->
initialSize=5

#最大连接数量
maxActive=50

#<!-- 超时等待时间以毫秒为单位 60000毫秒/1000等于60秒 -->
maxWait=60000

#JDBC驱动建立连接时附带的连接属性属性的格式必须为这样:[属性名=property;] 
#注意:"user" 与 "password" 两个属性会被明确地传递,因此这里不需要包含他们。
connectionProperties=useUnicode=true;characterEncoding=utf8

#指定由连接池所创建的连接的自动提交(auto-commit)状态。
defaultAutoCommit=true

#driver default 指定由连接池所创建的连接的只读(read-only)状态。
#如果没有设置该值,则“setReadOnly”方法将不被调用。(某些驱动并不支持只读模式,如:Informix)
defaultReadOnly=

#driver default 指定由连接池所创建的连接的事务级别(TransactionIsolation)。
#可用值为下列之一:(详情可见javadoc。)NONE,READ_UNCOMMITTED, READ_COMMITTED, REPEATABLE_READ, SERIALIZABLE
defaultTransactionIsolation=REPEATABLE_READ

#<!-- 最大空闲连接 -->
maxIdle=20

#<!-- 最小空闲连接 -->
minIdle=5

5、DBCP连接池示例:

5、DBCP连接池示例:

 1 import org.apache.commons.dbcp.BasicDataSourceFactory;
 2 import javax.sql.DataSource;
 3 import java.io.InputStream;
 4 import java.sql.Connection;
 5 import java.sql.ResultSet;
 6 import java.sql.SQLException;
 7 import java.sql.Statement;
 8 import java.util.Properties;
 9 
10 public class DBCPUtils02 {
11     private static DataSource dataSource;
12     static {
13         Properties properties = new Properties ();
14         //使用类加载将文件转换成流
15         //获取类加载器对象:当前类名.class.getClassLoader();
16         ClassLoader classLoader = DBCPUtils02.class.getClassLoader ();
17         //调用classLoader的getResourceAsStream()方法,将资源文件转换成流
18         InputStream inStream = classLoader.getResourceAsStream ("dbcpconfig.properties");
19         //1.创建连接池对象
20         try {
21             //使用properties将文件转换成的流加载进来
22             properties.load (inStream);
23             //使用连接池工厂创建连接池
24             dataSource = BasicDataSourceFactory.createDataSource (properties);
25         } catch (Exception e) {
26             e.printStackTrace ();
27         }
28     }
29 
30     // 从DBCP连接池中获取连接
31     public static Connection getConnection() throws SQLException {
32         return dataSource.getConnection ();
33     }
34 
35     //释放资源
36     public static void close(ResultSet resultSet, Statement statement, Connection conn)  {
37        if (resultSet != null){
38            try {
39                resultSet.close ();
40            } catch (SQLException e) {
41                e.printStackTrace ();
42            }
43        }
44        if (statement != null){
45            try {
46                statement.close ();
47            } catch (SQLException e) {
48                e.printStackTrace ();
49            }
50        }
51        if (conn != null) {
52            try {
53                conn.close ();
54            } catch (SQLException e) {
55                e.printStackTrace ();
56            }
57        }
58     }
59 }
 1 import org.apache.commons.dbcp.BasicDataSourceFactory;
 2 import javax.sql.DataSource;
 3 import java.io.InputStream;
 4 import java.sql.Connection;
 5 import java.sql.ResultSet;
 6 import java.sql.SQLException;
 7 import java.sql.Statement;
 8 import java.util.Properties;
 9 
10 public class DBCPUtils02 {
11     private static DataSource dataSource;
12     static {
13         Properties properties = new Properties ();
14         //使用类加载将文件转换成流
15         //获取类加载器对象:当前类名.class.getClassLoader();
16         ClassLoader classLoader = DBCPUtils02.class.getClassLoader ();
17         //调用classLoader的getResourceAsStream()方法,将资源文件转换成流
18         InputStream inStream = classLoader.getResourceAsStream ("dbcpconfig.properties");
19         //1.创建连接池对象
20         try {
21             //使用properties将文件转换成的流加载进来
22             properties.load (inStream);
23             //使用连接池工厂创建连接池
24             dataSource = BasicDataSourceFactory.createDataSource (properties);
25         } catch (Exception e) {
26             e.printStackTrace ();
27         }
28     }
29 
30     // 从DBCP连接池中获取连接
31     public static Connection getConnection() throws SQLException {
32         return dataSource.getConnection ();
33     }
34 
35     //释放资源
36     public static void close(ResultSet resultSet, Statement statement, Connection conn)  {
37        if (resultSet != null){
38            try {
39                resultSet.close ();
40            } catch (SQLException e) {
41                e.printStackTrace ();
42            }
43        }
44        if (statement != null){
45            try {
46                statement.close ();
47            } catch (SQLException e) {
48                e.printStackTrace ();
49            }
50        }
51        if (conn != null) {
52            try {
53                conn.close ();
54            } catch (SQLException e) {
55                e.printStackTrace ();
56            }
57        }
58     }
59 }

(二) C3P0连接池

(二) C3P0连接池

  C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate,Spring等。

  C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate,Spring等。

1、C3P0的核心类:CombopooledDataSource。

1、C3P0的核心类:CombopooledDataSource。

2、相关jar包下载链接:

2、相关jar包下载链接:

3、依赖包:c3p0-0.9.5.2.jar 和mchange-commons-java-0.2.11.jar包、mysql-connector-java-5.1.44-bin.jar(针对MySQL数据库)

3、依赖包:c3p0-0.9.5.2.jar 和mchange-commons-java-0.2.11.jar包、mysql-connector-java-5.1.44-bin.jar(针对MySQL数据库)

4、c3p0也可以指定配置文件,而配置文件可以是properties,也可以是xml的,当然xml高级一些,但是c3p0的配置文件名必须为“c3p0-config.xml”,并放在类的路径下(src下)。

4、c3p0也可以指定配置文件,而配置文件可以是properties,也可以是xml的,当然xml高级一些,但是c3p0的配置文件名必须为“c3p0-config.xml”,并放在类的路径下(src下)。

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <c3p0-config>
 3     <!--默认配置信息-->
 4     <default-config>
 5         <!--连接四大参数配置-->
 6         <property name="droverClass">com.mysql.jdbc.Driver</property>
 7         <property name="jdbcUrl">jdbc:mysql://localhost:3306/mydb1</property>
 8         <property name="user">root</property>
 9         <property name="password"></property>
10         <!--池参数配置-->
11         <property name="acquireIncrement">3</property>
12         <property name="initialPoolSize">10</property>
13         <property name="minPoolSize">2</property>
14         <property name="maxPoolSize">10</property>
15     </default-config>
16     <!-- 专门为oracle提供的配置信息 -->
17     <named-config name="oracle-config">
18         <!--连接四大参数配置-->
19         <property name="droverClass">oracle.jdbc.driver.OracleDriver</property>
20         <property name="jdbcUrl">jdbc:oracle:thin:@地址:端口:ORCL</property>
21         <property name="user">root</property>
22         <property name="password"></property>
23         <!--池参数配置-->
24         <property name="acquireIncrement">3</property>
25         <property name="initialPoolSize">10</property>
26         <property name="minPoolSize">2</property>
27         <property name="maxPoolSize">10</property>
28     </named-config>
29 </c3p0-config>
 1 <?xml version="1.0" encoding="utf-8"?>
 2 <c3p0-config>
 3     <!--默认配置信息-->
 4     <default-config>
 5         <!--连接四大参数配置-->
 6         <property name="droverClass">com.mysql.jdbc.Driver</property>
 7         <property name="jdbcUrl">jdbc:mysql://localhost:3306/mydb1</property>
 8         <property name="user">root</property>
 9         <property name="password"></property>
10         <!--池参数配置-->
11         <property name="acquireIncrement">3</property>
12         <property name="initialPoolSize">10</property>
13         <property name="minPoolSize">2</property>
14         <property name="maxPoolSize">10</property>
15     </default-config>
16     <!-- 专门为oracle提供的配置信息 -->
17     <named-config name="oracle-config">
18         <!--连接四大参数配置-->
19         <property name="droverClass">oracle.jdbc.driver.OracleDriver</property>
20         <property name="jdbcUrl">jdbc:oracle:thin:@地址:端口:ORCL</property>
21         <property name="user">root</property>
22         <property name="password"></property>
23         <!--池参数配置-->
24         <property name="acquireIncrement">3</property>
25         <property name="initialPoolSize">10</property>
26         <property name="minPoolSize">2</property>
27         <property name="maxPoolSize">10</property>
28     </named-config>
29 </c3p0-config>

 5、C3P0 使用示例:

 5、C3P0 使用示例:

 1 import com.mchange.v2.c3p0.ComboPooledDataSource;
 2 import java.sql.Connection;
 3 import java.sql.ResultSet;
 4 import java.sql.SQLException;
 5 import java.sql.Statement;
 6 
 7 /**
 8  * Created by kong on 12/12/2017.
 9  */
10  
11 public class C3P0Utils02 {
12     private static ComboPooledDataSource dataSource;
13     static {
14         //创建连接池对象
15         dataSource = new ComboPooledDataSource ();
16     }
17     //获取连接
18     public static Connection getConnection() throws SQLException {
19         return dataSource.getConnection ();
20     }
21     //释放资源
22     public static void close(ResultSet resultSet, Statement statement,Connection connection) throws SQLException {
23         if (resultSet != null){
24             resultSet.close ();
25         }
26         if (statement != null){
27             statement.close ();
28         }
29         if (connection != null){
30             connection.close ();
31         }
32     }
33 }    
 1 import com.mchange.v2.c3p0.ComboPooledDataSource;
 2 import java.sql.Connection;
 3 import java.sql.ResultSet;
 4 import java.sql.SQLException;
 5 import java.sql.Statement;
 6 
 7 /**
 8  * Created by kong on 12/12/2017.
 9  */
10  
11 public class C3P0Utils02 {
12     private static ComboPooledDataSource dataSource;
13     static {
14         //创建连接池对象
15         dataSource = new ComboPooledDataSource ();
16     }
17     //获取连接
18     public static Connection getConnection() throws SQLException {
19         return dataSource.getConnection ();
20     }
21     //释放资源
22     public static void close(ResultSet resultSet, Statement statement,Connection connection) throws SQLException {
23         if (resultSet != null){
24             resultSet.close ();
25         }
26         if (statement != null){
27             statement.close ();
28         }
29         if (connection != null){
30             connection.close ();
31         }
32     }
33 }    

(三) Druid 连接池

(三) Druid 连接池

  Druid首先是一个数据库连接池。Druid是目前最好的数据库连接池,在功能、性能、扩展性方面,都超过其他数据库连接池,包括DBCP、C3P0、BoneCP、Proxool、JBoss DataSource。Druid已经在阿里巴巴部署了超过600个应用,经过一年多生产环境大规模部署的严苛考验。

  Druid首先是一个数据库连接池。Druid是目前最好的数据库连接池,在功能、性能、扩展性方面,都超过其他数据库连接池,包括DBCP、C3P0、BoneCP、Proxool、JBoss DataSource。Druid已经在阿里巴巴部署了超过600个应用,经过一年多生产环境大规模部署的严苛考验。

1、核心类:DruidDataSourceFactory

1、核心类:DruidDataSourceFactory

2、依赖包:druid-1.1.0.jar、mysql-connector-java-5.1.44-bin.jar

2、依赖包:druid-1.1.0.jar、mysql-connector-java-5.1.44-bin.jar

3、配置文件:druidconfig.properties 放置于src下

3、配置文件:druidconfig.properties 放置于src下

url=jdbc:mysql://localhost:3306/mydb1
driverClassName=com.mysql.jdbc.Driver
username=root
password=
filters=stat
maxActive=20
initialSize=1
maxWait=60000
minIdle=10
maxIdle=15
timeBetweenEvictionRunsMillis=60000
minEvictableIdleTimeMillis=300000
validationQuery=SELECT'x'
testWhileIdle=true
testOnBorrow=false
testOnReturn=false
maxOpenPreparedStatements=20
removeAbandoned=true
removeAbandonedTimeout=1800
logAbandoned=true
url=jdbc:mysql://localhost:3306/mydb1
driverClassName=com.mysql.jdbc.Driver
username=root
password=
filters=stat
maxActive=20
initialSize=1
maxWait=60000
minIdle=10
maxIdle=15
timeBetweenEvictionRunsMillis=60000
minEvictableIdleTimeMillis=300000
validationQuery=SELECT'x'
testWhileIdle=true
testOnBorrow=false
testOnReturn=false
maxOpenPreparedStatements=20
removeAbandoned=true
removeAbandonedTimeout=1800
logAbandoned=true

4、Druid使用示例:

4、Druid使用示例:

 1 import com.alibaba.druid.pool.DruidDataSourceFactory;
 2 import javax.sql.DataSource;
 3 import java.io.InputStream;
 4 import java.sql.Connection;
 5 import java.sql.PreparedStatement;
 6 import java.sql.ResultSet;
 7 import java.sql.SQLException;
 8 import java.util.Properties;
 9 
10 public class DruidUtil {
11     private static DataSource dataSource;
12     static {
13         Properties properties = new Properties ();
14         ClassLoader classLoader = DruidUtils02.class.getClassLoader ();
15         InputStream resourceAsStream = 
16                 classLoader.getResourceAsStream ("druidconfig.properties");
17         try {
18             properties.load (resourceAsStream);
19             dataSource = DruidDataSourceFactory.createDataSource(properties);
20         } catch (Exception e) {
21             e.printStackTrace ();
22         }
23     }
24 
25     public static Connection getConnection() throws SQLException {
26         return dataSource.getConnection ();
27 
28     }
29 
30     public static void close(ResultSet resultSet, PreparedStatement prsm,Connection conn){
31         if (resultSet !=null){
32             try {
33                 resultSet.close ();
34             } catch (SQLException e) {
35                 e.printStackTrace ();
36             }
37         }
38         if (prsm != null){
39             try {
40                 prsm.close ();
41             } catch (SQLException e) {
42                 e.printStackTrace ();
43             }
44         }
45         if (conn != null) {
46             try {
47                 conn.close ();
48             } catch (SQLException e) {
49                 e.printStackTrace ();
50             }
51         }
52 
53     }
54 }
 1 import com.alibaba.druid.pool.DruidDataSourceFactory;
 2 import javax.sql.DataSource;
 3 import java.io.InputStream;
 4 import java.sql.Connection;
 5 import java.sql.PreparedStatement;
 6 import java.sql.ResultSet;
 7 import java.sql.SQLException;
 8 import java.util.Properties;
 9 
10 public class DruidUtil {
11     private static DataSource dataSource;
12     static {
13         Properties properties = new Properties ();
14         ClassLoader classLoader = DruidUtils02.class.getClassLoader ();
15         InputStream resourceAsStream = 
16                 classLoader.getResourceAsStream ("druidconfig.properties");
17         try {
18             properties.load (resourceAsStream);
19             dataSource = DruidDataSourceFactory.createDataSource(properties);
20         } catch (Exception e) {
21             e.printStackTrace ();
22         }
23     }
24 
25     public static Connection getConnection() throws SQLException {
26         return dataSource.getConnection ();
27 
28     }
29 
30     public static void close(ResultSet resultSet, PreparedStatement prsm,Connection conn){
31         if (resultSet !=null){
32             try {
33                 resultSet.close ();
34             } catch (SQLException e) {
35                 e.printStackTrace ();
36             }
37         }
38         if (prsm != null){
39             try {
40                 prsm.close ();
41             } catch (SQLException e) {
42                 e.printStackTrace ();
43             }
44         }
45         if (conn != null) {
46             try {
47                 conn.close ();
48             } catch (SQLException e) {
49                 e.printStackTrace ();
50             }
51         }
52 
53     }
54 }

 

 

编辑:编程 本文来源:需要将文件添加到classes文件中的根目录下,当使

关键词: 澳门新濠3559