c3p0连接池junit测试

  • 准备:IDEA开发工具,jdk1.8,mysql-connector-java-8.0.13,c3p0-0.9.1.2.jar,junit-4.12.jar,hamcrest-core-1.3.jar,由于junit-4.12.jar版本的问题,所以在单元测试的时候还需要加一个依赖包hamcrest-core-1.3.jar。

  • 步骤1:在IDEA上新建一个java工程,单击工程,在工程上点击F4进入Project Structure,点击Modules,在右边找到Dependencies,点击“+”可以添加本地jar,如下图:在这里插入图片描述

  • 步骤2:c3p0是开发中常用的,而且一般使用配置文件的方式进行管理,下面是在java工程中进行测试,所以在java项目的src下新建一个c3p0-config.xml,名字不要随意改,内容如下:

     <?xml version="1.0" encoding="UTF-8"?><--这是xml文件声明-->
     <c3p0-config>
     <default-config>
      <property name="driverClass">com.mysql.jdbc.Driver</property>
      <property name="jdbcUrl">jdbc:mysql://192.168.37.7/wisdom_cloud</property>
      <property name="user">root</property>
      <property name="password">root</property>
      <property name="initialPoolSize">10</property>
      <property name="maxIdleTime">30</property>
      <property name="maxPoolSize">100</property>
      <property name="minPoolSize">10</property>
      <property name="maxStatements">200</property>
      </default-config>
      </c3p0-config>
    

driverClass,jdbcUrl,user,password这几个名字是固定的,里面的值分别是数据库驱动,数据库URL地址,数据库用户名,数据库密码,本案例是使用mysql演示,所以驱动是固定的。

  • 步骤3:在java项目上新建一个类C3P0Demo,内容如下:

      package com.gongzhong.learn;
      import com.mchange.v2.c3p0.ComboPooledDataSource;
      import org.junit.Test;
      
      import java.sql.Connection;
      import java.sql.PreparedStatement;
      import java.sql.ResultSet;
      import java.sql.SQLException;
      import java.util.ArrayList;
      import java.util.List;
      
      /**
       * Created by Roriring on 2019/3/5.
       */
      public class C3P0Demo {
          @Test
          public void testC3p0(){
              ComboPooledDataSource comboPooledDataSource = new ComboPooledDataSource();
              Connection conn = null;
              PreparedStatement prepareStatement = null;
              ResultSet resultSet = null;
              List list = null;
              try {
                 conn = comboPooledDataSource.getConnection();
                 String sql = "SELECT * FROM staff WHERE staff_id = ?";
                  prepareStatement =conn.prepareStatement(sql);
                  prepareStatement.setString(1, "2");
                  resultSet = prepareStatement.executeQuery();
                   list = new ArrayList();
                  if (resultSet.next()){
                      String name = resultSet.getString("name");
                      String telNbr = resultSet.getString("tel_nbr");
                      list.add("name="+name);
                      list.add("telNbr="+telNbr);
                  }
                  System.out.print("输出的结果是:"+list);
              } catch (SQLException e) {
                  e.printStackTrace();
              }finally {
                  try {
                      if(resultSet != null){
                          resultSet.close();
                      }
                      if(prepareStatement != null) {
                          prepareStatement.close();
                      }
                      if(conn != null) {
                          conn.close();
                      }
                  } catch (SQLException e) {
                      e.printStackTrace();
                  }
              }
          }
      }
    

c3p0中主要使用的是ComboPooledDataSource 这个类,我们创建一个对象,然后通过这个对象可以对连接进行创建个管理,后面的JDBC代码不是重点,最后在方法上右键找到Debug testC3p0()运行即可。
在这里插入图片描述

  • 如有问题,欢迎及时评论

猜你喜欢

转载自blog.csdn.net/Roriring/article/details/88330111