DBUtils的简单使用
1.介绍
DButils是一种小型的DbUtils库是一套小巧的用来简化 JDBC 调用的库。JDBC源代码库单调且易出错,所以DBUtils 类抽象出所有简单的任务,可以大大减少代码量
当不使用框架的时候就可以使用DButils来帮助开发
2.环境搭建
需要:mysql连接池(这里使用C3P0连接池技术),sql语句。
1.首先搭建C3P0连接池环境
在项目下引入c3p0jar包
项目下编写c3p0-config.xml(注意:此xml文件名固定)
来看一下里面的内容
1 <?xml version="1.0" encoding="UTF-8"?> 2 <c3p0-config> 3 4 <default-config>//默认引用的内容 5 <property name="driverClass">com.mysql.jdbc.Driver</property> 6 <property name="jdbcUrl">jdbc:mysql://localhost:3306/sunset</property> 7 <property name="user">root</property> 8 <property name="password">970513</property> 9 <property name="initialPoolSize">5</property> 10 <property name="maxPoolSize">20</property> 11 </default-config> 12 13 <named-config name="oracle"> //非默认引用内容 14 <property name="driverClass">com.mysql.jdbc.Driver</property> 15 <property name="jdbcUrl">jdbc:mysql:///web_07</property> 16 <property name="user">root</property> 17 <property name="password">123</property> 18 </named-config> 19 21 </c3p0-config>
2.DBUtils环境搭建
项目下引入DBUtils工具包
3.测试
1 import org.junit.Test; 2 import java.sql.SQLException; 3 import java.util.List; 4 import java.util.Map; 5 import org.apache.commons.dbutils.QueryRunner; 6 import org.apache.commons.dbutils.handlers.MapListHandler; 7 import com.mchange.v2.c3p0.ComboPooledDataSource; 8 import domain.User; 9 10 public class DBUtils { 11 @Test 12 public void SelectUser(){//查询 13 QueryRunner qr=new QueryRunner(new ComboPooledDataSource());//参数是CP30的线程池对象 14 try { 15 // 16 17 List<Map<String,Object>> list=qr.query("select * from users", new MapListHandler()); 18 for(Map<String,Object> map:list){ 19 System.out.println(map); 20 } 21 } catch (SQLException e) { 22 // TODO Auto-generated catch block 23 e.printStackTrace(); 24 } 25 } 26 27 public void AddUser(){ //DBUtils增删改不需要返回结果。放到一起 28 QueryRunner qr=new QueryRunner(new ComboPooledDataSource()); 29 30 try { 31 int rows=qr.update("insert into users values(null,?,?)","WWW","4546@qq.com"); 32 if(rows>0){ 33 System.out.println("更新成功"); 34 }else{ 35 System.out.println("更新失败"); 36 } 37 } catch (SQLException e) { 38 // TODO Auto-generated catch block 39 e.printStackTrace(); 40 } 41 42 } 43 }