准备:导包

1.创建c3p0-config.xml配置文件放在src下

<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config> <!-- default-config 默认的配置, -->
<default-config>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost/mydb</property>
<property name="user">root</property>
<property name="password">root</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> <!-- This app is massive! -->
<named-config name="oracle">
<property name="acquireIncrement">50</property>
<property name="initialPoolSize">100</property>
<property name="minPoolSize">50</property>
<property name="maxPoolSize">1000</property> <!-- intergalactoApp adopts a different approach to configuring statement caching -->
<property name="maxStatements">0</property>
<property name="maxStatementsPerConnection">5</property> <!-- he's important, but there's only one of him -->
<user-overrides user="master-of-the-universe">
<property name="acquireIncrement">1</property>
<property name="initialPoolSize">1</property>
<property name="minPoolSize">1</property>
<property name="maxPoolSize">5</property>
<property name="maxStatementsPerConnection">50</property>
</user-overrides>
</named-config> </c3p0-config>

2.创建一个bean

package rick;

public class UserStus {
private String name;
private int money;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getMoney() {
return money;
}
public void setMoney(int money) {
this.money = money;
}
@Override
public String toString() {
return "UserStus [name=" + name + ", money=" + money + "]";
} }

3.测试DBUtils

package rick;

import java.sql.SQLException;
import java.util.List; import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.junit.Test; import com.mchange.v2.c3p0.ComboPooledDataSource; /*
//针对增加 、 删除 、 修改
queryRunner.update(sql) //针对查询
queryRunner.query(sql, rsh);*/
public class DBUtilsTest {
@Test
public void testdemo() throws SQLException { //建立连接(C3P0数据库连接池的方式)
ComboPooledDataSource dataSource = new ComboPooledDataSource(); //创建DBUtils
QueryRunner queryRunner = new QueryRunner(dataSource);
// 添加
String name = "qirui1";
int money = 10000;
queryRunner.update("insert into stus values (?,?)", name, money); // 删除
queryRunner.update("delete from stus where name = ?", "admin"); // 更新
queryRunner.update("update stus set money = ? where name = ?", 10000000, name); // 查询单个对象 UserStus userstu = queryRunner.query("select * from stus where name = ?",new BeanHandler<UserStus>(UserStus.class), "lisi");
System.out.println(userstu.toString()); //查询所有对象
List<UserStus> list = queryRunner.query("select * from stus ", new BeanListHandler<UserStus>(UserStus.class));
for (UserStus userstus : list) {
System.out.println(userstus.toString());
} }
}

总体结构:

DBUtils模版CRUD的更多相关文章

  1. 使用DbUtils实现CRUD

    commons-dbutils 这是 Apache 提供了一个开源组织 JDBC工具库,它是JDBC简包,学习成本低,和使用dbutils可以大大简化jdbc的工作量,同一时候也不会影响程序的性能.因 ...

  2. 十四 数据库连接池&DBUtils

    关于数据库连接池: 1 数据库的连接对象创建工作,比较消耗性能. 2 一开始在内存中开辟一块空间,往池子里放置多个连接对象,需要连接的时候从连接池里面调用, 使用完毕归还连接,确保连接对象能够循环利用 ...

  3. 高性能jdbc封装工具 Apache Commons DbUtils 1.6(转载)

    转载自原文地址:http://gao-xianglong.iteye.com/blog/2166444 前言 关于Apache的DbUtils中间件或许了解的人并不多,大部分开发人员在生成环境中更多的 ...

  4. 写一个ORM框架的第一步(Apache Commons DbUtils)

    新一次的内部提升开始了,如果您想写一个框架从Apache Commons DbUtils开始学习是一种不错的选择,我们先学习应用这个小“框架”再把源代码理解,然后写一个属于自己的ORM框架不是梦. 一 ...

  5. 《笔者带你剖析Apache Commons DbUtils 1.6》(转)

    前言 关于Apache的DbUtils中间件或许了解的人并不多,大部分开发人员在生成环境中更 多的是依靠Hibernate.Ibatis.Spring JDBC.JPA等大厂提供的持久层技术解决方案, ...

  6. 写一个ORM框架的第一步

    新一次的内部提升开始了,如果您想写一个框架从Apache Commons DbUtils开始学习是一种不错的选择,我们先学习应用这个小“框架”再把源代码理解,然后写一个属于自己的ORM框架不是梦. 一 ...

  7. 十九 Spring的JDBC模版使用: 模版的CRUD的操作

    Spring的JDBC模版使用: 模版的CRUD的操作 保存操作 修改操作 删除操作 查询操作 import com.ithheima.jdbc.domian.Account; @RunWith(Sp ...

  8. Java Web(十) JDBC的增删改查,C3P0等连接池,dbutils框架的使用

    前面做了一个非常垃圾的小demo,真的无法直面它,菜的抠脚啊,真的菜,好好努力把.菜鸡. --WH 一.JDBC是什么? Java Data Base Connectivity,java数据库连接,在 ...

  9. DBUtils 笔记

    一.DBUtils介绍  apache 什么是dbutils,它的作用 DBUtils是java编程中的数据库操作实用工具,小巧简单实用. DBUtils封装了对JDBC的操作,简化了JDBC操作.可 ...

随机推荐

  1. partialview 用法

    using  MvcApplication1.Models; @model MvcApplication1.Models.UserInfoModel @{     ViewBag.Title = &q ...

  2. Vue + Webpack 根据不同环境打包

    修改 prod.env.js // 当前正在运行的脚本名称 const TARGET = process.env.npm_lifecycle_event // 第一个参数 let argv = pro ...

  3. jquery解析

    OutOfMemory.CN β 聚客 代码 专栏 教程 Maven Gitter 标签 登录注册  好书:重构 改善既有代码的设计[京东   亚马逊] | 敏捷软件开发原则.模式与实践[京东   亚 ...

  4. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 辅助类:显示和隐藏内容

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  5. Plcsim 模拟IO访问故障 OB122组织块

    假设在OB1 中用 如下指令 T PQW20 实际在组态的时候就没有QW20 这个地址 所以会显示访问IO 错误 我在OB122 中设置一个变量 进入一次 加1 可以看到每个扫描周期都要调用一次OB1 ...

  6. 快速为Eclipse配置PyDev插件

    想学习Python,查询网络之后发现PyDev是很好的插件,所以就想为Eclipse配置它.结果在整个配置的过程中出现了各种问题,版本问题,重复问题,反正乱七八糟的,本身安装一次的时间就很长,中间出现 ...

  7. 官方关于Dialog的介绍

    将Activity显示成Dialog的形式: Tip: If you want a custom dialog, you can instead display an Activity as a di ...

  8. 洛谷题解P1047 校门外的树

    题目描述 某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米.我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置:数轴上的每个整数点,即0,1,2,…,L,都种有 ...

  9. P1048 数字加密

    P1048 数字加密 转跳点:

  10. 数据结构——KMP(串)

    KMP一个非常经典的字符串模式匹配算法,虽然网上有很多kmp算法的博客,但是为了更好的理解kmp我还是自己写了一遍(这个kmp的字符串存储是基于堆的(heap),和老师说的定长存储略有不同,字符串索引 ...