首页 > 其他分享 >JDBC C3P0连接池

JDBC C3P0连接池

时间:2022-10-14 17:36:56浏览次数:36  
标签:10 JDBC rs C3P0 st conn sql null 连接池

//Utils

 1 import com.mchange.v2.c3p0.ComboPooledDataSource;
 2 import javax.sql.DataSource;
 3 import java.sql.Connection;
 4 import java.sql.ResultSet;
 5 import java.sql.SQLException;
 6 import java.sql.Statement;
 7 
 8 public class JdbcUtils_C3P0 {
 9     private static DataSource dataSource = null;
10     static {
11         try{
12             dataSource = new ComboPooledDataSource("MYSQL");//配置文件写法
13         }catch (Exception e){
14             e.printStackTrace();
15         }
16     }
17     //获取连接
18     public static Connection getConnection() throws SQLException {
19         return dataSource.getConnection();
20     }
21     //释放资源
22     public  static void release(Connection conn, Statement st, ResultSet rs){
23         if(rs!=null){
24             try{
25                 rs.close();
26             } catch (SQLException e) {
27                 e.printStackTrace();
28             }
29         }
30         if(st!=null){
31             try {
32                 st.close();
33             } catch (SQLException e) {
34                 e.printStackTrace();
35             }
36         }
37         if(conn!=null){
38             try {
39                 conn.close();
40             } catch (SQLException e) {
41                 e.printStackTrace();
42             }
43         }
44 
45     }
46 }

//Test

 1 public class TestC3P0 {
 2     public static void main(String[] args) {
 3         Connection conn = null;
 4         PreparedStatement st = null;
 5         ResultSet rs = null;
 6         try {
 7             conn = JdbcUtils_C3P0.getConnection();
 8 
 9             String sql = "select * from users where id =?";
10 
11             st = conn.prepareStatement(sql);
12 
13             st.setInt(1,1);
14 
15             rs = st.executeQuery();
16 
17             if(rs.next()){
18                 System.out.println(rs.getString("name"));
19             }
20         } catch (SQLException e){
21             e.printStackTrace();
22         }finally {
23             JdbcUtils.release(conn,st,rs);
24         }
25     }
26 
27 }

//C3P0

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <c3p0-config>
 3     <default-config> <!--默认配置 -->
 4         <!--mysql数据库连接的各项参数-->
 5         <property name="driverClass">com.mysql.cj.jdbc.Driver</property>
 6         <property name="jdbcUrl">jdbc:mysql://localhost:3306/jdbcstudy?serverTimezone=GMT%2B8</property>
 7         <property name="user">root</property>
 8         <property name="password">123456789</property>
 9         <!--配置数据库连接池的初始连接数、最小链接数、获取连接数、最大连接数、最大空闲时间-->
10         <property name="initialPoolSize">10</property>
11         <property name="minPoolSize">10</property>
12         <property name="acquireIncrement">5</property>
13         <property name="maxPoolSize">100</property>
14         <property name="maxIdleTime">30</property>
15     </default-config>
16     <!--自定义属性池 -->
17     <name-config name = "MYSQL">
18         <!--mysql数据库连接的各项参数-->
19         <property name="driverClass">com.mysql.cj.jdbc.Driver</property>
20         <property name="jdbcUrl">jdbc:mysql://localhost:3306/jdbcstudy?serverTimezone=GMT%2B8</property>
21         <property name="user">root</property>
22         <property name="password">123456789</property>
23         <!--配置数据库连接池的初始连接数、最小链接数、获取连接数、最大连接数、最大空闲时间-->
24         <property name="initialPoolSize">10</property>
25         <property name="minPoolSize">10</property>
26         <property name="acquireIncrement">5</property>
27         <property name="maxPoolSize">100</property>
28         <property name="maxIdleTime">30</property>
29     </name-config>
30 </c3p0-config>

 

标签:10,JDBC,rs,C3P0,st,conn,sql,null,连接池
From: https://www.cnblogs.com/kidzxy/p/16792360.html

相关文章

  • JDBC 使用加密的PerpareStatment和属性池连接数据库
    //工具类和属性池和  Statment文章的一致 //测试类1publicclassTestInsert{2publicstaticvoidmain(String[]args){3Connectionconn......
  • JDBC statment连接数据库
    publicclassjdbcFirstDemo{publicstaticvoidmain(String[]args)throwsClassNotFoundException,SQLException{//1.加载驱动Class.forName("com.mysq......
  • java核心技术第四篇之JDBC第二篇
    01.JDBC连接池_连接池的概念:1).什么是连接池:对于多用户程序,为每个用户单独创建一个Connection,会使程序降低效率。这时我们可以创建一个"容器",这个容器中,先缓存一些Connect......
  • 546 JDBC练习_insert语句和547JDBC练习_update语句
    JDBC练习_insert语句publicstaticvoidmain(String[]args)throwsException{Statementstmt=null;Connectionconn=null;try{......
  • JDBC
    概念:JavaDataBaseConnectivityJava数据库连接,Java语言操作数据库JDBC本质:其实就算官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这......
  • JDBC概念和JDBC快速入门
    1.概念:JavaDataBaseConnectivityJava数据库连接,Java语言操作数据库 *JDBC本质:其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商......
  • 544JDBC各个类详解connection和545JDBC各个类详解_Statement
    详解个个对象1.OriverManager驱动管理对象上一个博客有讲解2.获取数据库连接上一个博客有讲解3.connection:数据库连接对象功能:1.获取执行sql的对象statement......
  • 542_JDBC各个类详解_DriverManager_注册驱动和543JDBC各个类详解_DriverManager_获取
    详解个个对象1.OriverManager驱动管理对象功能1.注册驱动:告诉程序该使用那个数据库驱动jarstaticvoidregisterDriver(Driverdriver):注册与给定的驱动......
  • 540JDBC概念和541快速入门
    JDBC概念概念:java DatBaseConnectivityjava数据库连接,Java语言操作数据库JDBC本质∶其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库......
  • day45-JDBC和连接池01
    JDBC和连接池011.JDBC概述基本介绍JDBC为访问不同的数据库提供了同一的接口,为使用者屏蔽了细节问题Java程序员使用JDBC,可以连接任何提供了jdbc驱动程序的数据库系统......