2019独角兽企业重金招聘Python工程师标准>>>

DbUtils工具类使用

创建数据库

 CREATE TABLE `student` (`userId` int(11) NOT NULL,`userName` varchar(30) NOT NULL,`gender` char(1) NOT NULL,`age` int(11) DEFAULT NULL,PRIMARY KEY (`userId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

把相关的包引入到项目里:

编写Student类:

package com.t0.test;public class Student {private Integer userId;private String userName;private String gender;private Integer age;public Integer getUserId() {return userId;}public void setUserId(Integer userId) {this.userId = userId;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}@Overridepublic String toString() {return "student [userId=" + userId + ", userName=" + userName + ", gender=" + gender + ", age=" + age + "]";}}

代码:

package com.t0.test;import java.util.Properties;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.sql.DataSource;import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.ResultSetHandler;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.dbutils.handlers.KeyedHandler;
import org.apache.commons.dbutils.handlers.MapHandler;
import org.apache.commons.dbutils.handlers.MapListHandler;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;public class TestDbUtils {private static Log log = LogFactory.getLog(TestDbUtils.class);private DataSource createDataSource(Properties props) {MysqlDataSource ds = new MysqlDataSource();ds.setURL(props.getProperty("url"));ds.setUser(props.getProperty("user"));ds.setPassword(props.getProperty("password"));return ds;}/*** 创建数据源* @return*/
//  private DataSource createDataSource() {
//      MysqlDataSource ds = new MysqlDataSource();
//      ds.setURL("jdbc:mysql://localhost:3306/test");
//      ds.setUser("root");
//      ds.setPassword("root__");
//      return ds;
//  }/*** 将查询结查返回一个数据列表List* @param ds*/public void queryBeanList(DataSource ds) {String sql = "select userId, userName, gender, age from student";QueryRunner queryRunner = new QueryRunner(ds);ResultSetHandler<List<Student>> handler = new BeanListHandler<Student>(Student.class);List<Student> result = null;try {result = queryRunner.query(sql, handler);} catch(SQLException e) {e.printStackTrace();}if (null == result) {return;}for (Student s : result) {System.out.println(s);}}/*** 将查询结果返一个Bean* @param ds* @param id*/public void queryBean(DataSource ds, int id) {String sql = "select * from student where userId = ?";QueryRunner queryRunner = new QueryRunner(ds);ResultSetHandler<Student> handler = new BeanHandler<Student>(Student.class);Student result = null;try {result = queryRunner.query(sql, handler, id);} catch(SQLException e) {e.printStackTrace();}if (null == result) {return;}System.out.println(result);}/*** 将查询结果以键值对列表形式返回* @param */public void queryMapList(DataSource ds) {String sql = "select userId, userName, gender, age from student";QueryRunner queryRunner = new QueryRunner(ds);ResultSetHandler<List<Map<String, Object>>> handler = new MapListHandler();List<Map<String, Object>> result = null;try {result = queryRunner.query(sql, handler);} catch (SQLException e) {e.printStackTrace();}if (null == result) {return;}for (Map<String, Object> map : result) {System.out.println(map);}}/*** 将查询结果以键值对形式返回* @param ds* @param id*/public void queryMap(DataSource ds, int id) {String sql = "select * from student where userId = ?";QueryRunner queryRunner = new QueryRunner(ds);ResultSetHandler<Map<String, Object>> handler = new MapHandler();Map<String, Object> result = null;try {result = queryRunner.query(sql, handler, id);} catch (SQLException e) {e.printStackTrace();}if (null == result) {return;}System.out.println(result);}/*** 自定义处理,其实也将查询结果* @param ds*/public void queryCustomHandler(DataSource ds) {String sql = "select userId, userName, gender, age from student";QueryRunner queryRunner = new QueryRunner(ds);ResultSetHandler<List<Student>> handler = new ResultSetHandler<List<Student>>() {@Overridepublic List<Student> handle(ResultSet paramResultSet) throws SQLException {List<Student> list = new ArrayList<Student>();while (paramResultSet.next()) {Student student = new Student();student.setUserId(paramResultSet.getInt("userId"));student.setUserName(paramResultSet.getString("userName"));student.setGender(paramResultSet.getString("gender"));student.setAge(paramResultSet.getInt("age"));list.add(student);}return list;}};List<Student> result = null;try {result = queryRunner.query(sql, handler);} catch (SQLException e) {e.printStackTrace();}if (null == result ) {return;}for (Student student : result) {System.out.println(student);}}public int updateBean(DataSource ds,Student s) {int n = 0;String sql = "insert into student(userId, userName, gender, age) values('?','?','?','?');";QueryRunner queryRunner = new QueryRunner(ds);try {n = queryRunner.update(sql,s.getUserId(),s.getUserName(), s.getGender(), s.getAge() );if (0 == n) {return 0;}System.out.println("插入了 " + n + " 个数据!" );} catch (SQLException e) {e.printStackTrace();}return n;}public int insertBean(DataSource ds, Student s) {int n = 0;String sql = "insert into student(userId, userName, gender, age) values(?,?,?,?)";QueryRunner queryRunner = new QueryRunner(ds);try {
//          n = queryRunner.update(sql, new Object[] {"22", "二2222", "M","22"} );n = queryRunner.update(sql,new Object[] {s.getUserId(), s.getUserName(), s.getGender(), s.getAge()});} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return n;}public static void main(String[] args) {Properties properties = new Properties();properties.setProperty("url", "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF8");properties.setProperty("user", "root");properties.setProperty("password", "root__");// TODO Auto-generated method stubTestDbUtils tDbUtils = new TestDbUtils();
//      DataSource ds = tDbUtils.createDataSource();DataSource ds = tDbUtils.createDataSource(properties);System.out.println("-------queryBeanList--------");tDbUtils.queryBeanList(ds);System.out.println("-------queryBean--------");tDbUtils.queryBean(ds, 5);System.out.println("-------queryMapList--------");tDbUtils.queryMapList(ds);System.out.println("-------queryMap--------");tDbUtils.queryMap(ds, 6);System.out.println("-------queryCustomHandler-------");tDbUtils.queryCustomHandler(ds);System.out.println("============================================");Student s = new Student();s.setUserId(13);s.setUserName("十3郎");s.setGender("M");s.setAge(34);tDbUtils.insertBean(ds, s);}}

执行结果:

注意:DbUtils使用中,SQL语句中不能用单引号,我也是花了N长时间没有找到原因,至少,我是用了单引号把问号括起来一直报错.提示不需要参数,就是问号的作用没有发挥.

转载于:https://my.oschina.net/lenglingx/blog/707243

DbUtils工具类使用相关推荐

  1. java druid jdbc例子_JDBC【使用Druid连接数据库,DBUtils工具类的使用】

    Druid连接数据库,DBUtils工具类的使用 1.在maven中添加Druid依赖 com.alibaba druid 1.2.0 2.封装Druid连接方法 import com.alibaba ...

  2. java dbutils工具类_DbUtils工具类使用

    DbUtils工具类使用 创建数据库 CREATE TABLE `student` ( `userId` int(11) NOT NULL, `userName` varchar(30) NOT NU ...

  3. 30_java之DButils工具类

    01DButils工具类的介绍个三个核心类 * A: DButils工具类的介绍个三个核心类* a: 概述* DBUtils是java编程中的数据库操作实用工具,小巧简单实用.* DBUtils封装了 ...

  4. DBUtils工具类实现增删改查

    DBUtils工具类实现增删改查 一.数据库连接池Druid工具类 二.DBUtils实现增删改 三.DBUtils实现查询单条数据 四.DBUtils实现查询批量数据 五.DBUtils实现按键值对 ...

  5. Apache DbUtils工具类初学

    下载jar包:(Linux下载1,Windows下载2) http://commons.apache.org/proper/commons-dbutils/download_dbutils.cgi A ...

  6. dbutils java_Dbutils工具类的使用

    一.什么是Dbutils? Commons DbUtils是Apache组织提供的一个对JDBC进行简单封装的开源工具类库,使用它能够简化JDBC应用程序的开发,同时也不会影响程序的性能.来源百度百科 ...

  7. MySQL数据库学习笔记(十一)----DAO设计模式实现数据库的增删改查(进一步封装JDBC工具类)...

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  8. 连接数据库时常用的工具类(一)-------C3P0XmlUtils

    工具类一:C3P0XmlUtils 使用前应先把c3p0-config.xml 文件导入到Src的根目录下,如下图 下面为C3P0XmlUtils工具类: package cn.kgc.c3p0_xm ...

  9. JDBC连接池与工具类

    1.连接池概述 用池来管理Connection,这样可以重复使用Connection,有了池,所以我们就不用自己来创建Connection, 而是通过池来获取Connection对象,当使用完Conn ...

最新文章

  1. linux规则及别名设置
  2. 基于音乐的脑机接口——采访Stefan Ehrlich 和 Kat Agres(上)
  3. 微服务,微架构[五]之springboot读取properties文件
  4. TortoiseGit:拉代码密码错误remote: Coding 提示: Authentication failed! 认证失败,请确认您输入了正确的账号密码
  5. 利用MS17-010渗透win7(32位)
  6. 通过web.xml文件自动启动spring容器加载对应的配置文件
  7. nmap扫描常用命令详解
  8. Kafka2.12安装与配置/生产与消费
  9. Ubuntu18.04搭建Web服务器
  10. datatable java排序,Java实现DataTable的过滤,排序,聚合功能
  11. 2060. 奶牛选美
  12. 多目标布谷鸟(MOCS)优化算法附Matlab代码
  13. 最近在做的一个项目,利用FFMpeg合并视频时发现的问题及解决方法
  14. hdoj2154跳舞毯
  15. airtest上的滑动操作swipe
  16. 物流基础知识(十八)
  17. 计算机怎么换桌面皮肤,如何更换电脑腾讯视频上的皮肤样式
  18. 软文标题怎么写?这8种标题写法你用对了吗
  19. 突破微软远程桌面帧率限制
  20. 即便到愚人节,也千万别做的恶作剧!

热门文章

  1. Socket程序从windows移植到linux下需要注意的
  2. JAVA匿名内部类的一点讨论
  3. PCIe知识学习 (转载)
  4. html导出excel时换行符,ASP.NET 导出到Excel时保留换行的代码
  5. java面向对象电子科大版答案_电子科大17秋《面向对象程序设计》在线作业1
  6. python get方法请求参数_python中requests库get方法带参数请求
  7. java 重启系统_java 程序,实现重启功能。求大神帮忙,急
  8. 26岁想转嵌入式软件开发来得及吗?参加嵌入式培训好不好?
  9. html -%3e 转义,特殊字符html,css转义大全
  10. 一道关于整型提升/截断的经典练习题