简单介绍:

DbUtils为不喜欢hibernate框架的钟爱。它是线程安全的,不存在并发问题。

使用步骤:

1. QueryRunner runner=new QueryRunner(这里写数据源...如c3p0的数据元new ComboPooledDataSource()或者dbcp的数据元);

2.使用runner的方法假设要增删改就使用update(String sql,Object ... params)

sql:传递的sql语句

params:可变參数。为sql语句中的?所取代的參数

使用runner的方法要查询使用runner的query(String sql,ResultSetHandle handle ,Object ... params)

sql:传递的sql语句

handle :一个接口要是实现当中的handle方法

params:可变參数,为sql语句中的?所取代的參数

案例:

package com.itheima.dbutils;

import java.sql.ResultSet;
import java.sql.SQLException; import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.ResultSetHandler;
import org.junit.Test; import com.itheima.domain.Account;
import com.mchange.v2.c3p0.ComboPooledDataSource; public class DbUtilsDemo1 {
@Test
public void add() throws SQLException{
QueryRunner runner=new QueryRunner(new ComboPooledDataSource());
runner.update("insert into account values(null,?,? )", "韩玮",7000);
}
@Test
public void update() throws SQLException{
QueryRunner runner=new QueryRunner(new ComboPooledDataSource());
runner.update("update account set money=? where name=? ", 9000,"李卫康");
}
@Test
public void delete() throws SQLException{
QueryRunner runner=new QueryRunner(new ComboPooledDataSource());
runner.update("delete from account where name=? ","韩玮");
}
@Test
public void query() throws SQLException{
final Account account=new Account();
QueryRunner runner=new QueryRunner(new ComboPooledDataSource());
runner.query("select * from account where name =?", new ResultSetHandler<Account>(){
@Override
public Account handle(ResultSet rs) throws SQLException {
while(rs.next()){
account.setId(rs.getInt("id"));
account.setName(rs.getString("name"));
account.setMoney(rs.getDouble("money"));
}
return account;
} }, "李卫康");
System.out.println(account.getMoney());
}
}

执行结果查询数据库:

mysql> select * from account;

+----+--------+-------+

| id | name   | money |

+----+--------+-------+

|  1 | 李卫康 |  9000 |

+----+--------+-------+

1 row in set





mysql> select * from account;

+----+--------+-------+

| id | name   | money |

+----+--------+-------+

|  1 | 李卫康 | 10000 |

+----+--------+-------+

1 row in set





mysql> select * from account;

+----+--------+-------+

| id | name   | money |

+----+--------+-------+

|  1 | 李卫康 | 10000 |

|  5 | 程崇树 |  5000 |

+----+--------+-------+

黑马day12 DbUtils的介绍的更多相关文章

  1. day18(JDBC事务&连接池介绍&DBUtils工具介绍&BaseServlet作用)

    day18总结 今日思维导图: 今日内容 事务 连接池 ThreadLocal BaseServlet自定义Servlet父类(只要求会用,不要求会写) DBUtils à commons-dbuti ...

  2. (二十三)Dbutils 工具介绍

    目录 Dbutils简介 API 介绍 Dbutils 已实现的结果集处理器 : Dbutils简介 commons-dbutis 是Apache 组织提供的一个开源JDBC工具类库,它对JDBC进行 ...

  3. JDBC 学习笔记(四)—— 自定义JDBC框架+Apache—DBUtils框架+事务管理+操作多表

    本文目录:       1.自定义JDBC框架 ——数据库元数据:DataBaseMetaData        2.自定义JDBC框架 ——数据库元数据:DataBaseMetaData       ...

  4. 5月16日 python学习总结 DBUtils模块、orm 和 cookie、session、token

    一.DBUtils模块 介绍 The DBUtils suite is realized as a Python package containing two subsets of modules, ...

  5. DBubtil的使用

    1.什么是O-R Mapping(对象-关系映射) 常用O-R Mapping映射工具 Hibernate(全自动框架) Ibatis(半自动框架/SQL) Commons DbUti ls(只是对J ...

  6. Apache- DBUtils框架学习

    一.DBUtils DBUtils 的介绍 commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的简单封装,,DBUtils封装了对JDBC的操作,简 ...

  7. 韩顺平JDBC学习笔记

    第一节 JDBC概述 1.1 JDBC原理图 Java不可能具体地去操作数据库,因为数据库有许多种,直接操作数据库是一种很低效且复杂的过程. 因此,Java引入JDBC,规定一套操作数据库的接口规范, ...

  8. Dbutils学习(介绍和入门)

    一:Dbutils是什么?(当我们很难理解一个东西的官方解释的时候,就让我们记住它的作用)      Dbutils:主要是封装了JDBC的代码,简化dao层的操作.      作用:帮助java程序 ...

  9. xUtils介绍 -- DbUtils、ViewUtils、HttpUtils、BitmapUtils

    转载注明出处:https://github.com/wyouflf/xUtils xUtils简单介绍 xUtils 包括了非常多有用的android工具. xUtils 支持大文件上传,更全面的ht ...

随机推荐

  1. Alter GDG limit

    //JOBCARD... //*-------------------------------------------------------------------* //* Alter GDG l ...

  2. Codeforces.739E.Gosha is hunting(DP 带权二分)

    题目链接 \(Description\) 有\(n\)只精灵,两种精灵球(高级和低级),每种球能捕捉到第\(i\)只精灵的概率已知.求用\(A\)个低级球和\(B\)个高级球能捕捉到精灵数的最大期望. ...

  3. Android源码目录结构详解

    Android 4.0|-- Makefile|-- bionic (bionic C库)|-- bootable (启动引导相关代码)|-- build (存放系统编译规则及generic等基础开发 ...

  4. linux系统时间同步,硬件时钟和系统时间同步,时区的设置

           1.时间同步(手动): date -s "2015-07-15 22:13:30" hwclock --systohc   (表示系统时间同步到硬件时钟) hwclo ...

  5. kNN(K-Nearest Neighbor)最邻近规则分类

    KNN最邻近规则,主要应用领域是对未知事物的识别,即推断未知事物属于哪一类,推断思想是,基于欧几里得定理,推断未知事物的特征和哪一类已知事物的的特征最接近: K近期邻(k-Nearest Neighb ...

  6. SyncThingWin -- Run syncthing as a windows service

    SyncThingWin Auto restart and minor bug fixes bloones released this on 23 Dec 2014 There is now an a ...

  7. Jenkins搭建.NET自动编译测试与发布环境

    本文地址: http://blog.csdn.net/wangjia184/article/details/18365553 操作系统Windows, 确保需要的.NET Framework已经安装 ...

  8. C#软件license管理(简单软件注册机制)

    最近做了一个绿色免安装软件,领导临时要求加个注册机制,不能让现场工程师随意复制.事出突然,只能在现场开发(离开现场软件就不受我们控了).花了不到两个小时实现了简单的注册机制,稍作整理.        ...

  9. 精心收集整理的SQL Server 2014/2012/2008/2005/2000简体中文企业版下载地址

    经常在网上看到有同学费尽心思的找SQL server数据库各版本的下载地址,看到别人的求助贴就不自觉的想去帮助他们,但是一个一个去帮助又不太现实,毕竟个人精力有限,既然大家有需求,那么笔者就本着乐于分 ...

  10. 如何让WCF服务更好地支持Web Request和AJAX调用

    WCF的确不错,它大大地简化和统一了服务的开发.但也有不少朋友问过我,说是在非.NET客户程序中,有何很好的方法直接调用服务吗?还有就是在AJAX的代码中(js)如何更好地调用WCF服务呢? 我首先比 ...