DbUtils工具类使用
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工具类使用相关推荐
- java druid jdbc例子_JDBC【使用Druid连接数据库,DBUtils工具类的使用】
Druid连接数据库,DBUtils工具类的使用 1.在maven中添加Druid依赖 com.alibaba druid 1.2.0 2.封装Druid连接方法 import com.alibaba ...
- java dbutils工具类_DbUtils工具类使用
DbUtils工具类使用 创建数据库 CREATE TABLE `student` ( `userId` int(11) NOT NULL, `userName` varchar(30) NOT NU ...
- 30_java之DButils工具类
01DButils工具类的介绍个三个核心类 * A: DButils工具类的介绍个三个核心类* a: 概述* DBUtils是java编程中的数据库操作实用工具,小巧简单实用.* DBUtils封装了 ...
- DBUtils工具类实现增删改查
DBUtils工具类实现增删改查 一.数据库连接池Druid工具类 二.DBUtils实现增删改 三.DBUtils实现查询单条数据 四.DBUtils实现查询批量数据 五.DBUtils实现按键值对 ...
- Apache DbUtils工具类初学
下载jar包:(Linux下载1,Windows下载2) http://commons.apache.org/proper/commons-dbutils/download_dbutils.cgi A ...
- dbutils java_Dbutils工具类的使用
一.什么是Dbutils? Commons DbUtils是Apache组织提供的一个对JDBC进行简单封装的开源工具类库,使用它能够简化JDBC应用程序的开发,同时也不会影响程序的性能.来源百度百科 ...
- MySQL数据库学习笔记(十一)----DAO设计模式实现数据库的增删改查(进一步封装JDBC工具类)...
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- 连接数据库时常用的工具类(一)-------C3P0XmlUtils
工具类一:C3P0XmlUtils 使用前应先把c3p0-config.xml 文件导入到Src的根目录下,如下图 下面为C3P0XmlUtils工具类: package cn.kgc.c3p0_xm ...
- JDBC连接池与工具类
1.连接池概述 用池来管理Connection,这样可以重复使用Connection,有了池,所以我们就不用自己来创建Connection, 而是通过池来获取Connection对象,当使用完Conn ...
最新文章
- linux规则及别名设置
- 基于音乐的脑机接口——采访Stefan Ehrlich 和 Kat Agres(上)
- 微服务,微架构[五]之springboot读取properties文件
- TortoiseGit:拉代码密码错误remote: Coding 提示: Authentication failed! 认证失败,请确认您输入了正确的账号密码
- 利用MS17-010渗透win7(32位)
- 通过web.xml文件自动启动spring容器加载对应的配置文件
- nmap扫描常用命令详解
- Kafka2.12安装与配置/生产与消费
- Ubuntu18.04搭建Web服务器
- datatable java排序,Java实现DataTable的过滤,排序,聚合功能
- 2060. 奶牛选美
- 多目标布谷鸟(MOCS)优化算法附Matlab代码
- 最近在做的一个项目,利用FFMpeg合并视频时发现的问题及解决方法
- hdoj2154跳舞毯
- airtest上的滑动操作swipe
- 物流基础知识(十八)
- 计算机怎么换桌面皮肤,如何更换电脑腾讯视频上的皮肤样式
- 软文标题怎么写?这8种标题写法你用对了吗
- 突破微软远程桌面帧率限制
- 即便到愚人节,也千万别做的恶作剧!
热门文章
- Socket程序从windows移植到linux下需要注意的
- JAVA匿名内部类的一点讨论
- PCIe知识学习 (转载)
- html导出excel时换行符,ASP.NET 导出到Excel时保留换行的代码
- java面向对象电子科大版答案_电子科大17秋《面向对象程序设计》在线作业1
- python get方法请求参数_python中requests库get方法带参数请求
- java 重启系统_java 程序,实现重启功能。求大神帮忙,急
- 26岁想转嵌入式软件开发来得及吗?参加嵌入式培训好不好?
- html -%3e 转义,特殊字符html,css转义大全
- 一道关于整型提升/截断的经典练习题