专栏首页Java技术分享圈C3P0Util 的制作 及DButils 中的 QueryRunner 类的使用

C3P0Util 的制作 及DButils 中的 QueryRunner 类的使用

C3P0Util 的制作 及DButils 中的 QueryRunner 类的使用

  1. 步骤:
    • 导入jar 包
      • c3p0-0.9.1.2.jar
      • commons-dbutils-1.4.jar
      • mysql-connector-java-5.0.8-bin.jar
    • 写C3p0Util 工具类
      • C3p0Util.jar {写好后转为jar形式,方便下次使用}
    • 写入配置文件
      • c3p0-config.xml
    • 写测试类
    • 准备数据库
关于jar包和配置文件的下载地址:

链接:https://pan.baidu.com/s/1qYGxwRlN3vImgV66eiWHtw 密码:lbx2

  1. 工具类的写法: package cn.javabs.util; import java.sql.Connection; import java.sql.SQLException; import javax.sql.DataSource; import com.mchange.v2.c3p0.ComboPooledDataSource; /** * C3p0的工具类 * @author Mryang * 2018.08.05 */ public class C3p0Util { private static ComboPooledDataSource dataSource = new ComboPooledDataSource(); public static DataSource getDataSource(){ return dataSource; } public static Connection getConnection(){ try { return dataSource.getConnection(); } catch (SQLException e) { throw new RuntimeException(e); } } }
  2. 写入配置文件: 文件命名为: c3p0-config.xml <?xml version="1.0" encoding="UTF-8"?> <c3p0-config> <default-config> <!--以下属性name的属性值都不可以更改--> <!--连接数据库驱动--> <property name="driverClass">com.mysql.jdbc.Driver</property> <!--数据库连接,如本地主机,可直接更改数据库名称:user--> <property name="jdbcUrl">jdbc:mysql:///user</property> <!--数据库用户名--> <property name="user">root</property> <!--数据库密码--> <property name="password">sorry</property> <property name="initialPoolSize">10</property> <property name="maxIdleTime">30</property> <property name="maxPoolSize">100</property> <property name="minPoolSize">10</property> <property name="maxStatements">200</property> </default-config> </c3p0-config>
  3. 实体类 package cn.javabs.entity; public class User { private Integer id; private String username; private String password; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String toString() { return "User [id=" + id + ", username=" + username + ", password=" + password + "]"; } }
  4. 测试类 package cn.javabs.test; import java.sql.SQLException; import java.util.List; import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.handlers.BeanListHandler; import org.junit.Test; import cn.javabs.entity.User; import cn.javabs.util.C3p0Util; /** * 数据源连接池的测试类 * @author Mryang * 本类中引入了一个新的工具类是 QueryRunner */ public class DataTest { QueryRunner qr = new QueryRunner(C3p0Util.getDataSource()); @Test public void addDataTest(){ User user = new User(); user.setId(9); user.setUsername("aaa"); user.setPassword("123"); try { qr.update("insert into user(id, username,password) values (?,?,?)", // user.getId(),user.getUsername(),user.getPassword()); } catch (SQLException e) { throw new RuntimeException(e); } } @Test public void delDataTest(){ User user = new User(); user.setId(9); try { qr.update("delete from user where id = ?", // user.getId()); } catch (SQLException e) { throw new RuntimeException(e); } } @Test public void updateDataTest(){ User user = new User(); user.setPassword("222"); user.setId(9); try { qr.update("update user set password = ? where id = ? ", // user.getPassword(),user.getId()); } catch (SQLException e) { throw new RuntimeException(e); } } @Test public void queryAllDataTest(){ try { List<User> result = qr.query("select * from user", // new BeanListHandler<User>(User.class)); System.out.println(result); } catch (SQLException e) { throw new RuntimeException(e); } } }
  5. 数据库创建 create database user; use user; create table user( id int primary key auto_increment, username varchar(50), password varchar(50) );
关于演示代码的下载地址:

链接:https://pan.baidu.com/s/1mg5_NCAdcGMjuiUmO8rNwQ 密码:9m0x

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 杨老师课堂之基于注解的SSH整合案例

    package cn.javabs.entity; @Entity @Table(name="t_user") public class User{ ...

    杨校
  • javaweb案例实训之基于jsp和servlet的用户管理开发

    案例代码:https://github.com/yangsir1688/controlManagerPage/tree/master/jlnk-school/d...

    杨校
  • 杨老师课堂之Jquery的筛选,事件,效果,Ajax,javascript跨域)

    D.closest()获得D所有父元素,含自己(D、B、A)与 D.parents() 对比

    杨校
  • php调试利器之phpdbg

    PHPDBG是一个PHP的SAPI模块,可以在不用修改代码和不影响性能的情况下控制PHP的运行环境。

    sunsky
  • IOS UITextField 事件列表

    用户5760343
  • 最近流行的激活函数

    最近又看了点深度学习的东西,主要看了一些关于激活函数的内容,不知道算不算新颖,但是我想把自己阅读后的分享一下,请各位给予评价与指点,谢谢! 一般激活函数有如下一...

    计算机视觉研究院
  • 简单易懂的讲解深度学习(入门系列之十)

    最近又看了点深度学习的东西,主要看了一些关于激活函数的内容,不知道算不算新颖,但是我想把自己阅读后的分享一下,请各位给予评价与指点,谢谢!

    计算机视觉研究院
  • 二叉排序树

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    喜欢ctrl的cxk
  • 深入理解Java内存模型(一)——基础

    小小明童鞋
  • HTTP常见面试题

    HTTP常见面试题 Http与Https的区别: Http与Https的区别: HTTP 的URL 以http:// 开头,而HTTPS 的URL 以https...

    Java3y

扫码关注云+社区

领取腾讯云代金券