C3P0基本使用教程

2019-11-01  本文已影响0人  肥肥的大肥鹅

C3P0基本使用教程

  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();
                    }
                }
            }
        }
    }
    
    
上一篇 下一篇

猜你喜欢

热点阅读