在Java开发中,使用JDBC操作数据库的四个步骤如下(可以看上一节内容):
①加载数据库驱动程序(Class.forName("数据库驱动类");)
②连接数据库(Connection con = DriverManager.getConnection();)
③操作数据库(PreparedStatement stat = con.prepareStatement(sql);stat.executeQuery();)
④关闭数据库,释放连接(con.close();)
c3p0帮我们简化了步骤,c3p0有两种配置方法,这里只讲简单的通过xml文件配置,将这个文件放到项目的src下--我一般放置在maven项目的resources下
②连接数据库(Connection con = DriverManager.getConnection();)
③操作数据库(PreparedStatement stat = con.prepareStatement(sql);stat.executeQuery();)
④关闭数据库,释放连接(con.close();)
c3p0帮我们简化了步骤,c3p0有两种配置方法,这里只讲简单的通过xml文件配置,将这个文件放到项目的src下--我一般放置在maven项目的resources下
<?xml version="1.0" encoding="UTF-8"?> <c3p0-config> <!-- 默认配置,只可以出现一次 --> <default-config> <!-- 配置JDBC 四个基本属性 --> <property name="driverClass">com.mysql.cj.jdbc.Driver</property> <property name="jdbcUrl">jdbc:mysql://127.0.0.1:3306/goods?characterEncoding=utf8&useSSL=false </property> <property name="user">zhangsan</property> <property name="password">123123</property> <!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 --> <property name="acquireIncrement">3</property> <!-- 初始化数据库连接池时连接的数量 --> <property name="initialPoolSize">5</property> <!-- 数据库连接池中的最小的数据库连接数 --> <property name="minPoolSize">2</property> <!-- 数据库连接池中的最大的数据库连接数 --> <property name="maxPoolSize">10</property> </default-config> <named-config name="mysql"> <!-- 配置JDBC 四个基本属性 --> <property name="driverClass">com.mysql.cj.jdbc.Driver</property> <property name="jdbcUrl">jdbc:mysql://127.0.0.1:3306/goods?characterEncoding=utf8&useSSL=false </property> <property name="user">zhangsan</property> <property name="password">123123</property> <!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 --> <property name="acquireIncrement">3</property> <!-- 初始化数据库连接池时连接的数量 --> <property name="initialPoolSize">5</property> <!-- 数据库连接池中的最小的数据库连接数 --> <property name="minPoolSize">2</property> <!-- 数据库连接池中的最大的数据库连接数 --> <property name="maxPoolSize">10</property> </named-config> </c3p0-config>
java代码如下
package db; import com.mchange.v2.c3p0.ComboPooledDataSource; import java.sql.*; public class TestC3p0 { public static void main(String[] args) { ComboPooledDataSource ds=new ComboPooledDataSource(); Connection conn=null; Statement statement=null; try { conn =ds.getConnection(); String sql ="select * from t_user_test"; statement =conn.createStatement(); ResultSet set =statement.executeQuery(sql); ResultSetMetaData data=set.getMetaData(); System.out.println(data.getColumnCount()); //一共有多少列 System.out.println(data.getColumnName(1)); //第一列的列名 while (set.next()) { System.out.println(set.getString(1)+" "+set.getString(2)+" "+set.getString(3)); } } catch (Exception e) { e.printStackTrace(); }finally { try { if(conn!=null){ conn.close(); statement.close(); } } catch (SQLException e) { e.printStackTrace(); } } } }