美文网首页
C3P0基本使用教程

C3P0基本使用教程

作者: 肥肥的大肥鹅 | 来源:发表于2019-11-01 19:56 被阅读0次

    C3P0基本使用教程

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

    2. 将jar包复制到libs文件夹,将jar包添加到库文件中(右击libs-->Add As Library-->ok)

    3. 定义配置文件

      • 名称:c3p0.properties 或者 c3p0-config.xml
      • 位置:src目录下
    4. c3p0-config.xml内容

      <c3p0-config>
        <!-- 使用默认的配置读取连接池对象 -->
        <default-config>
           <!--  连接参数 -->
          <!--  驱动名称  -->
          <property name="driverClass">com.mysql.jdbc.Driver</property>
          <!--  数据库URL  -->
          <property name="jdbcUrl">jdbc:mysql://localhost:3306/dbname</property>
          <!--  用户名  -->
          <property name="user">root</property>
          <!--  密码  -->
          <property name="password">root</property>
          
          <!-- 连接池参数 -->
          <!--  初始连接数量  -->
          <property name="initialPoolSize">5</property>
          <!--  最大连接数  -->
          <property name="maxPoolSize">10</property>
          <!--  超时时间  -->
          <property name="checkoutTimeout">3000</property>
        </default-config>
      </c3p0-config>
      
    5. 使用C3P0

      import javax.sql.DataSource;
      import java.sql.Connection;
      import java.sql.PreparedStatement;
      import java.sql.ResultSet;
      import java.sql.SQLException;
      import java.util.Scanner;
      
      public class C3P0Demo1 {
          public static void main(String[] args) {
              String sql = "select * from student where id = ?";
              Scanner sc = new Scanner(System.in);
              int id = sc.nextInt();
              Connection conn = null;
              PreparedStatement pstmt = null;
              try {
                  //创建数据库连接池对象
                  DataSource ds = new ComboPooledDataSource();
                  //获取数据库连接对象
                  conn = ds.getConnection();
                  //获取statement,使用prepareStatement,防止sql注入
                  pstmt = conn.prepareStatement(sql);
                  //注入sql参数(sql中?将被替换)
                  pstmt.setInt(1,id);
                  //执行sql,返回数据集
                  ResultSet rs = pstmt.executeQuery();
                  //数据处理
                  System.out.println(rs);
              } catch (SQLException e) {
                  e.printStackTrace();
              } finally {
                  //释放stmt
                  if(pstmt != null){
                      try {
                          pstmt.close();
                      } catch (SQLException e) {
                          e.printStackTrace();
                      }
                  }
                  //conn归还连接池
                  if(conn != null){
                      try {
                          conn.close();
                      } catch (SQLException e) {
                          e.printStackTrace();
                      }
                  }
              }
          }
      }
      
      

    相关文章

      网友评论

          本文标题:C3P0基本使用教程

          本文链接:https://www.haomeiwen.com/subject/oayqbctx.html