DBUtils学习一 增删该查

  1 package com.mozq.jdbc.test;
  2
  3 import java.sql.SQLException;
  4 import java.util.List;
  5 import java.util.Map;
  6 import java.util.Map.Entry;
  7
  8 import org.apache.commons.dbutils.QueryRunner;
  9 import org.apache.commons.dbutils.handlers.BeanHandler;
 10 import org.apache.commons.dbutils.handlers.BeanListHandler;
 11 import org.apache.commons.dbutils.handlers.BeanMapHandler;
 12 import org.apache.commons.dbutils.handlers.ColumnListHandler;
 13 import org.apache.commons.dbutils.handlers.MapHandler;
 14 import org.apache.commons.dbutils.handlers.MapListHandler;
 15 import org.apache.commons.dbutils.handlers.ScalarHandler;
 16 import org.junit.Test;
 17
 18 import com.mozq.domain.User;
 19 import com.mozq.jdbc.C3P0Utils;
 20
 21 public class DBUtilsTest_R {
 22     /**
 23      * 测试查询用户数量,ScalarHandler处理器,new ScalarHandler<Long>(),注意类型参数只能写Long,不能写Integer
 24      */
 25     @Test
 26     public void findAll_ScalarHandler() {
 27         try {
 28             //1.创建核心执行对象
 29             QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource());
 30             //2.写sql
 31             String sql = "select count(*) from t_user";
 32             //3.准备参数
 33             //4.执行sql,进行结果处理
 34              Long row = queryRunner.query(sql, new ScalarHandler<Long>());
 35              System.out.println("操作行数:" + row);
 36         } catch (SQLException e) {
 37             e.printStackTrace();
 38         }
 39     }
 40     /**
 41      * 测试根查询所有用户,MapListHandler处理器,new MapListHandler()
 42      */
 43     @Test
 44     public void findAll_MapListHandler() {
 45         try {
 46             //1.创建核心执行对象
 47             QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource());
 48             //2.写sql
 49             String sql = "select * from t_user";
 50             //3.准备参数
 51             //4.执行sql,进行结果处理
 52             List<Map<String, Object>> users = queryRunner.query(sql, new MapListHandler());
 53             for(Map<String, Object> user : users) {
 54                 for(Entry<String, Object> entry : user.entrySet()) {
 55                     System.out.print(entry.getKey()+":"+entry.getValue()+";");
 56                 }
 57                 System.out.println();
 58             }
 59         } catch (SQLException e) {
 60             e.printStackTrace();
 61         }
 62     }
 63     /**
 64      * 测试根据id查询单个用户,MapHander处理器,new MapHandler()
 65      */
 66     @Test
 67     public void findById_MapHandler() {
 68         try {
 69             //1.创建核心执行对象
 70             QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource());
 71             //2.写sql
 72             String sql = "select * from t_user where id=?";
 73             //3.准备参数
 74             Object[] params = {9};
 75             //4.执行sql,进行结果处理
 76             Map<String, Object> user = queryRunner.query(sql, new MapHandler(), params);
 77             for (Entry<String, Object> entry : user.entrySet()) {
 78                 System.out.println(entry.getKey()+ ":" + entry.getValue());
 79             }
 80             /*
 81                 id:9
 82                 name:刘备
 83                 password:liu456
 84              */
 85         } catch (SQLException e) {
 86             e.printStackTrace();
 87         }
 88     }
 89     /**
 90      * 测试查询全部用户名,ColumnList处理器,按列索引处理(需要在查询语句中明确列顺序)和按列名处理
 91      */
 92     @Test
 93     public void findAllName_ColumnListHandler() {
 94         try {
 95             //1.创建核心执行对象
 96             QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource());
 97             //2.写sql
 98             String sql = "select password, name, id from t_user";
 99             //3.准备参数
100             //4.执行sql,进行结果处理
101             List<String> userNames = queryRunner.query(sql,  new ColumnListHandler<String>());
102             for (String userName : userNames) {
103                 System.out.println(userName);
104             }
105             List<String> userNames2 = queryRunner.query(sql,  new ColumnListHandler<String>("name"));
106             for (String userName : userNames2) {
107                 System.out.println(userName);
108             }
109
110         } catch (SQLException e) {
111             e.printStackTrace();
112         }
113     }
114     /**
115      * 测试查询全部,BeanMap处理器,new BeanMapHandler<Integer, User>(User.class, "id")
116      */
117     @Test
118     public void findAll_BeanMapHandler() {
119         try {
120             //1.创建核心执行对象
121             QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource());
122             //2.写sql
123             String sql = "select id, name, password from t_user";
124             //3.准备参数
125             //4.执行sql,进行结果处理
126             /*用主键列来当键,完全没有问题*/
127             System.out.println("new BeanMapHandler<Integer, User>(User.class, \"id\")");
128             Map<Integer, User> users = queryRunner.query(sql,  new BeanMapHandler<Integer, User>(User.class, "id"));
129             for (Entry<Integer, User> it : users.entrySet()) {
130                 System.out.println(it.getValue());
131             }
132
133             /*用可重复的列来当键,会发生记录覆盖*/
134             System.out.println("new BeanMapHandler<String, User>(User.class, \"name\")----------");
135             Map<String, User> users2 = queryRunner.query(sql,  new BeanMapHandler<String, User>(User.class, "name"));
136             for (Entry<String, User> it : users2.entrySet()) {
137                 System.out.println(it.getValue());
138             }
139
140         } catch (SQLException e) {
141             e.printStackTrace();
142             //java.sql.SQLException: Cannot determine value type from string ‘liu123‘ Query: select * from t_user Parameters: []
143         }
144     }
145     /**
146      * 测试查询全部,BeanList处理器,new BeanListHandler<User>(User.class)
147      */
148     @Test
149     public void findAll_BeanListHandler() {
150         try {
151             //1.创建核心执行对象
152             QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource());
153             //2.写sql
154             String sql = "select * from t_user";
155             //3.准备参数
156             //4.执行sql,进行结果处理
157             List<User> users = queryRunner.query(sql,  new BeanListHandler<User>(User.class));
158             for (User user : users) {
159                 System.out.println(user);
160             }
161         } catch (SQLException e) {
162             e.printStackTrace();
163         }
164     }
165     /**
166      * 测试根据id查询单个,Bean处理器,new BeanHandler<User>(User.class)
167      */
168     @Test
169     public void findById_BeanHandler() {
170         try {
171             //1.创建核心执行对象
172             QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource());
173             //2.写sql
174             String sql = "select * from t_user where id=?";
175             //3.准备参数
176             Object[] params = {9};
177             //4.执行sql,进行结果处理
178             User user = queryRunner.query(sql,  new BeanHandler<User>(User.class), params);
179             System.out.println(user);//User [id=9, name=刘备, password=liu123]
180         } catch (SQLException e) {
181             e.printStackTrace();
182         }
183     }
184 }
  1 package com.mozq.jdbc.test;
  2
  3 import java.sql.SQLException;
  4
  5 import org.apache.commons.dbutils.QueryRunner;
  6 import org.apache.commons.dbutils.handlers.BeanHandler;
  7 import org.junit.Test;
  8
  9 import com.mozq.domain.User;
 10 import com.mozq.jdbc.C3P0Utils;
 11
 12 /**
 13  * 测试DBUtils工具类的增删改操作
 14  * @author jie
 15  *
 16  */
 17 public class DBUtilsTest_CUD {
 18     /**
 19      * 根据id删除用户
 20      */
 21     @Test
 22     public void DeleteUserById() {
 23         try {
 24             // 1.创建核心类
 25             QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource());
 26             // 2.写sql
 27             String sql = "delete from t_user where id=?";
 28             // 3.准备参数
 29             Object[] params = { 8 };
 30             // 4.执行sql,进行结果处理
 31             int row = queryRunner.update(sql, params);
 32             if (row > 0) {
 33                 System.out.println("删除成功");
 34             } else {
 35                 System.out.println("删除失败");
 36             }
 37         } catch (SQLException e) {
 38             e.printStackTrace();
 39         }
 40     }
 41
 42     /**
 43      * 根据id修改用户
 44      */
 45     @Test
 46     public void UpdateUserById() {
 47         try {
 48             // 1.创建核心类
 49             QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource());
 50             // 2.写sql
 51             String sql = "update t_user set password=? where id=?";
 52             // 3.准备参数
 53             Object[] params = { "jingdong", 8 };
 54             int row = queryRunner.update(sql, params);
 55             if (row > 0) {
 56                 System.out.println("修改成功");
 57             } else {
 58                 System.out.println("修改失败");
 59             }
 60         } catch (SQLException e) {
 61             e.printStackTrace();
 62         }
 63     }
 64
 65     /**
 66      * 插入用户方法
 67      */
 68     @Test
 69     public void addUser() {
 70         try {
 71             // 1.创建核心类
 72             QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource());
 73             // 2.写sql
 74             String sql = "insert into t_user(name, password) values(?,?)";
 75             // 3.准备参数
 76             Object[] params = { "京东0", "刘强东0" };
 77             int row = queryRunner.update(sql, params);
 78             if (row > 0) {
 79                 System.out.println("插入成功");
 80             } else {
 81                 System.out.println("插入失败");
 82             }
 83         } catch (SQLException e) {
 84             e.printStackTrace();
 85         }
 86     }
 87
 88     /**
 89      * 测试insert方法,查看返回对象
 90      */
 91     @Test
 92     public void insert2() {
 93         try {
 94             QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource());
 95             String sql = "insert into t_user(id, name, password) values(?, ?, ?)";
 96             User userObj = queryRunner.insert(sql, new BeanHandler<User>(User.class), 31, "京东5", "刘强东");
 97             System.out.println(userObj);
 98         } catch (SQLException e) {
 99             e.printStackTrace();
100         }
101     }
102 }

原文地址:https://www.cnblogs.com/mozq/p/10315374.html

时间: 2024-10-25 14:10:47

DBUtils学习一 增删该查的相关文章

Redis学习笔记(增删查)

Redis学习笔记(增删查) 向数据库中添加一个键 SET key value 获取数据库中的key KEYS pattern pattern支持glob风格通配符格式 " ? " 匹配一个字符 " * " 匹配任意字符 " [] " 匹配括号间的任一字符,可以使用" - "符号表示一个范围,例如:a[a-z]c " \x " 匹配字符x,用于转义字符.如需要匹配"?",就需要用 \?

Android学习--------实现增删改查数据库操作以及实现类似微信好友对话管理操作

最近的一个实验用到东西挺多,特地总结一下. 要求功能: 1.第一个页面添加歌曲名和歌手,跳到第二个页面列表显示所有记录,使用sqlite数据库 2.对于第二个页面显示的信息可以进行删除和修改操作,并自动刷新 最后我做的效果: 长按列表项弹出单个管理的菜单,像微信好友对话管理一样. 删除时可以直接删除这一条并在列表中直接显示,更新时弹出对话框更新内容提交后在列表中重新显示. 做此例遇到的困难: 1.菜单获取上下文 2.获取对话框中的内容 3.对话框按钮添加监听事件-----注意包不要导错:impo

最简单的通讯录,实现了联系人的 增删该查

原文:最简单的通讯录,实现了联系人的 增删该查 源代码下载地址:http://www.zuidaima.com/share/1550463724014592.htm omcat servlet jsp db 最简单的通讯录 实现了联系人的 增删该查 数据库在压缩包内 经验证该分享代码有乱码的问题,界面也很粗糙,导入db也会有乱码问题.大家可以酌情下载,不过对初级工程师有借鉴意义. 登陆页面 http://localhost:端口/项目名称/login.html 管理页面 jdbc的连接配置需要手

DBUtils 学习使用

DBUtils 学习使用 commons-dbutils简介 commons-dbutils是Apache组织提供的一个开源JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能.因此dbutils成为很多不喜欢hibernate的公司的首选. dbutils的官方网站http://commons.apache.org/proper/commons-dbutils/download_dbutils.cgi dbut

python学习-62 类属性的增删该查

类属性 1.类属性 类属性又称为静态变量,或者是静态数据.这些数据是与它们所属的类对象绑定的,不依赖于任何类实例. 2.增 删 改 查 class zoo: country = 'china' def __init__(self,name,address,kind): self.name = name self.address = address self.kind = kind def monkey(self): print('this is monkey (%s)' %self.addres

数据库之语句学习(增删查改)

数据库语句分为三大类:数据定义语言(DDL),数据操纵语言(DML),数据控制语言(DCL) DDL:CREATE DATABASE xiaotest 创建一个数据库名为xiaotest的数据库.       drop database  xiaotest  删除一个数据库名为xiaotest的数据库.       dalter database  xiaotest modify  name=xiao ;此命令执行错误,暂未找到解决方法  create table youxi(id int ,a

Dbutils学习(介绍和入门)

一:Dbutils是什么?(当我们很难理解一个东西的官方解释的时候,就让我们记住它的作用) Dbutils:主要是封装了JDBC的代码,简化dao层的操作. 作用:帮助java程序员,开发Dao层代码的简单框架. 框架的作用:帮助程序员,提高程序的开发效率. 出生:Dbutils是由Apache公司提供. 二:为什么需要Dbutils ? 在使用Dbutils 之前,我们Dao层使用的技术是JDBC,那么分析一下JDBC的弊端: (1)数据库链接对象.sql语句操作对象,封装结果集对象,这三大对

mongoose学习笔记2--增删改查1

查询 之前我们的集合已经创建成功,我们就先来进行第一步操作 —— 查询. 查询分很多种类型,如条件查询,过滤查询等等,今天只学习了最基本的find查询. 举例: 1.find查询: obj.find(查询条件,callback); Model.find({},function(error,docs){ //若没有向find传递参数,默认的是显示所有文档 }); Model.find({ "age": 28 }, function (error, docs) { if(error){ c

apache DBUtils学习

转载至:http://www.cnblogs.com/xdp-gacl/p/4007225.html 一.commons-dbutils简介 commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能.因此dbutils成为很多不喜欢hibernate的公司的首选. commons-dbutilsAPI介绍: org.apache.commons.d