何平波
通过这两天的JDBC的学习,发现其实想要操控数据库的数据,用了很多的代码,在今天的学习中,这些复杂且重复性多的代码都被封装成了工具,这样使用java语言来操控数据库就变得更加灵活简便.
在这里,通过这两天的学习,课程的目的想要我们了解这些工具类的底层源码是什么样,以及为什么会出现如此简便的工具类.
这里分析了下如何使用工具类c3p0,druid 和Dbutils来操控数据库的数据.
一.
1.首先得有数据库,有表,而且表中还要有数据.
2.在java中引包,引入的包分别是c3p0-0.9.1.2.jar 和commons-dbutils-1.4.jar 以及最为基本的sql包 mysql-connector-java-5.0.8-bin.jar
3.引包需要添加 Build Path 到运行环境中
4.编写c3p0的连接池 以及 c3p0.config.xml配置文件(这个文件必须创建,这个文件是c3p0根据里面的内容来找到你的数据库驱动,数据库和表的路径,用户名,密码);
5.使用Dbutils里方法将原本复杂重复的方法简写成为两行
@Test
public void add() throws Exception {
//druid
QueryRunner rq=new QueryRunner(Druid.getDataSource());
rq.update("insert into user values(null,?,?)", "黑风鬼","船长");
System.out.println("添加成功!");
}
这里比较多的公司企业大多次采用c3p0和Dbutils工具类来开发,所以今天着重研究c3p0的文件配置方式操控数据库
c3p0配置文件的连接池正确步骤
1.在src文件夹下创建一个c3p0-config.xml的文件
2.正确格式:<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<default-config>
<property name="driverClass">com.mysql.jdbc.Driver </property>//驱动位置
<property name="jdbcUrl"> jdbc:mysql:///test</property>//数据库表位置
<property name="user">root</property>//数据库用户名
<property name="password">root </property>//数据库密码
<property name="initialPoolSize">5 </property>初始化的连接数量
<property name="minPoolSize">5 </property>最大默认值
<property name="maxPoolSize">20 </property>最小默认值
</default-config>
</c3p0-config>
3.使用连接池
(1)声明3个变量名为null;
(2)调用c3p0里的对象方法 ComboPooledDataSource
(3)设置连接参数 采用 setDescription() setJdbcUrl() setPassword() setUser() 这里可以见名知意分别传入什么样的字符串
(4)获取c3p0的构造方法 getConnection()
(5)sql语句
(6)预编译prepareStatement
(7)结果集
(8)遍历结果集
(9)释放资源 注意(1-7)要捕获异常放在try{},catch(异常类){异常原因及信息} finally{ 释放资源 }
二.
一的方法不规范,如果经常需要修改数据库的位置或表的话,需要在源代码里修改,这里的c3p0-config.xml文件就是为了解决这类问题的
使用配置文件的方法就可以省略3.使用连接池的步骤,这种方式会比较灵活,且更加规范.
三.Dbutils和c3p0的工具包的使用将会是代码更加精简和灵活
第一步,只需将c3p0写成一个自定义的工具类,且工具类方法与之前的学的jdbc获取数据库对象的方法类似,
第二步,将c3p0的核心类ComboPooledDataSource 使用私有常量修饰
第三步,写一个方法返回获取c3p0的getConnection构造方法
第四步,获得连接池 返回核心类对象
第五步,释放资源
四.Dbutils的使用
第一步,QueryRunner qr=new QueryRunner(c3p0Utils.getDatasource()); 调用核心类,括号里传入的是c3p0的自定义工具类的连接池方法
第二部,qr.update("sql语句","值","值") 值的类型要看表格的类型
这里无论是增删改的方法,都使用update构造方法
|