导入c3p0连接池的使用
1.导入c3P0的开发包(jar包)2.在程序中创建一个连接池对象(容器:里面会存放一批连接)3.设置连接数据库的基本信息(驱动类的全路径,连接的库的URL地址,连接的库的用户名和密码)方式一:直接将连接参数写死在程序中,如果将来有变化,就需要改程序,会带来很多不必要的麻烦方式二:将连接数据库的基本信息配置在c3p0.properties 文件,文件放在src根目录下方式三:将连接数据库的基本信息配置在c3p0-config.xml文件中,文件放在src根目录下方式二和方式三中的文件名都是固定的,不能改变,因为c3p0程序会自动读取这些问题4.从连接池中获取一个连接对象进行使用5.将连接还回到连接池中第一步: 在官网下载c3p0-0.9.1.2.jar包,复制到lib(右键新建folder,命名为lib)库中,右键buildpath->add to the path; 之后在你的库中会出现一个奶瓶图案的同名jar包
第二部创建链接:代码如下:
public class TestC3p0 { static ComboPooledDataSource pool=new ComboPooledDataSource(); // //设置连接数据库的基本信息(方式一:不推荐使用) // static { // try { // pool.setDriverClass("com.mysql.jdbc.Driver");//设置驱动类 // pool.setJdbcUrl("jdbc:mysql://localhost:3306/jt_db?characterEncoding=utf-8"); // pool.setUser("root"); // pool.setPassword("root"); // } catch (PropertyVetoException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } // } @Test public void testFindAll() throws SQLException { // //注册驱动,并获取连接(创建一个新对象 //Connection conn=jdbcUtil.getConn(); //改为从连接池中获取一条连接 Connection conn=pool.getConnection(); //获取传输器 String sql="select * from user"; PreparedStatement ps=conn.prepareStatement(sql); //执行sql语句,返回执行接货 ResultSet rs=ps.executeQuery(); //输出结果 System.out.println("id\t"+"username\t"+"password\t"); while(rs.next()) { //System.out.println(rs.getInt("id")+"\t"+rs.getString("username")+"\t\t"+rs.getString("password")); System.out.println(rs.getInt(1)+"\t"+rs.getString(2)+"\t\t"+rs.getString(3)); } //释放资源 rs.close(); ps.close(); conn.close(); /*如果当前这个连接对象,使我们自己创建的一个连接对象,调用conn.close方法默认就是将连接关闭(也就是释放掉) * 如果当前这个连接对象是从连接池中获取过来的,在连接池返回这个连接对象时看,会改造连接对象的功能(方法) * 将conn的close方法还链接到连接池中,而不是将连接关闭。 * */ } }我们上面看到的是创建连接池的第一种方法, 第二种方法为在src里新建一个file文件,重命名为c3p0.prperties 这样,直接就可以运行了,因为程序会自动调用它。