JAVA WEB基础- DBUtils
来源:互联网 发布:手写文字图片制作软件 编辑:程序博客网 时间:2024/05/22 14:04
1.背景
DBUtils是JDBC的简化开发工具包。对应的包:commons-dbutils-1.X.jar.
DBUtils三个核心功能:
*1.QueryRunner中提供对SQL语句操作的API。
*2.ResultSetHandler接口,用于定义select操作后,怎样封装结果集。
*3.DButils类,是一个工具类,定义了关闭资源与事务处理的方法。
2.Queryrunner核心类
2.1提供数据源
构造方法
*QueryRunner(DataSource)创建核心类,并提供数据源,内部自己维护connection。
普通方法
*Update(String sql,Object。。。Parameters)执行DML(增删改)语句。
*query(String sql,ResultSetHandle,Object …)执行DQL语句,并将查询结果封装到对象中。
2.2提供链接
*QueryRunner()创建核心类,没有提供数据源,在进行具体操作的时,需要手动提供connection。
*update
*Query
3.QueryRunner实现增删改操作
public class DBUtilsDemo_01 { @Test public void demo01() throws SQLException{// 1.核心类 QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource());// 2.执行Update方法 int i = queryRunner.update("insert into product(pid,name,price,category_id) values(?,?,?,?)","k001","johnson",1000,"k001"); System.out.println(i); } @Test public void demo02() throws SQLException{// DML- Add// 将SQL和实际参数进行抽取// 1.核心类 QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource());// 2.执行Update方法 String sql = "insert into product(pid,name,price,category_id) values(?,?,?,?)"; Object[] params = {"k003","tommylily",33000,"k003"}; int i = queryRunner.update(sql,params); System.out.println(i); } @Test public void demo03() throws SQLException{// DML- update// 将SQL和实际参数进行抽取// 1.核心类 QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource());// 2.执行Update方法 String sql = "update product set name = ?,price =?,category_id = ? where pid = ?"; Object[] params = {"lilytommy",90,"k002","k001"}; int i = queryRunner.update(sql,params); System.out.println(i); } @Test public void demo04() throws SQLException{// DML- delete// 将SQL和实际参数进行抽取// 1.核心类 QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource());// 2.执行Update方法 String sql = "delete from product where pid = ?"; Object[] params = {"k001"}; int i = queryRunner.update(sql,params); System.out.println(i); }}
4.QueryRunner查询方法
*4.1 结构
*query(String sql,ResultSetHandler rsh, Object … parameters),
用来完成表数据的查询操作。
*4.2 ResultSetHandler
BeanHandler,BeanListHandler
* 4.3 JavaBean
常用于封装数据。
/* * JavaBean 规范 * 1.必须提供私有字段 * private String pname; * 2.必须为私有字段提供setter和getter方法 * 3.提供无参数构造 * 4.实现序列化接口 * implement Serializable * * */public class Product implements Serializable{ /** * */ private static final long serialVersionUID = 1L; private String pid; private String name; private String price; private String category_id; public String getPid() { return pid; } public void setPid(String pid) { this.pid = pid; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPrice() { return price; } public void setPrice(String price) { this.price = price; } public String getCategory_id() { return category_id; } public void setCategory_id(String category_id) { this.category_id = category_id; } public static long getSerialversionuid() { return serialVersionUID; } @Override public String toString() { return "Product [pid=" + pid + ", name=" + name + ", price=" + price + ", category_id=" + category_id + "]"; } public Product() { super(); // TODO Auto-generated constructor stub } public Product(String pid, String name, String price, String category_id) { super(); this.pid = pid; this.name = name; this.price = price; this.category_id = category_id; }}
*4.4 BeanHandler 处理结果集
@Test
public void demo01() throws Exception{
// 通过id查询详情,将查询结果封装到JavaBean product
// 1.核心类
QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource());
// 2.SQL语句
String sql = “select * from product where pid = ?”;
// 3、实现参数
Object[] paras = {“k002”};
// 4.查询并封装
Product product = queryRunner.query(sql, new BeanHandler(Product.class), paras);
System.out.println(product);
}
*4.5 queryRunner 查询操作
@Test public void demo01() throws Exception{// 通过id查询详情,将查询结果封装到JavaBean product// 1.核心类 QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource());// 2.SQL语句 String sql = "select * from product where pid = ?";// 3、实现参数 Object[] paras = {"k002"};// 4.查询并封装 Product product = queryRunner.query(sql, new BeanHandler<Product>(Product.class), paras); System.out.println(product); } @Test public void demo02() throws Exception{// 查询所有,将每一条记录封装到一个JavaBean,然后将JavaBean添加到List中,最后返回List,BeanListHandler. QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource()); String sql = "select * from product"; Object[] params = {}; List<Product> list = queryRunner.query(sql, new BeanListHandler<Product>(Product.class), params); for (Product product : list) { System.out.println(product); } } @Test// scalarHandler : 用于处理聚合函数执行结果(一行一列)// *查询总记录数 public void demo03() throws Exception{ QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource()); String sql = "select count(*) from product"; long object = queryRunner.query(sql, new ScalarHandler<Long>()); System.out.println(object); } @Test// MapHandler : 将查询到的一条记录,封装到Map中,map.key/,ap.value// *多表操作。将数据转换成JSON。 public void demo04() throws Exception{ QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource()); String sql = "select * from product where pid = ?"; Object[] objects = {"k002"}; Map<String, Object> map = queryRunner.query(sql, new MapHandler(), objects); System.out.println(map); } @Test// MapListHandler : 查询所有数据,将每一条记录封装到Map中,然后将Map添加到List中,最后返回List。// *多表操作,将数据转换成Json。 public void demo05() throws SQLException{ QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource()); String sql = "select * from product "; List<Map<String, Object>> list = queryRunner.query(sql, new MapListHandler()); for (Map<String, Object> map : list) { System.out.println(map); } } @Test// ArrayHandler : 查询每一条记录,将数据封装到数组中。 public void demo06() throws Exception{ QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource()); String sql = "select * from product where pid = ?"; Object[] objects = {"k002"}; Object[] arr = queryRunner.query(sql,new ArrayHandler(), objects); System.out.println(arr); System.out.println(Arrays.toString(arr)); } @Test// ArrayListHandler : 查询所有记录,将数据封装到数组中。 public void demo07() throws Exception{ QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource()); String sql = "select * from product"; List<Object[]> list= queryRunner.query(sql,new ArrayListHandler()); for (Object[] objects : list) { System.out.println(Arrays.toString(objects)); } } @Test// KeyedHandler : 查询所有记录,将查询结果封装到Map中。// *map.key为指定字段名称对应的值。// *map.value为当前整条记录所有的值,数据为Map<key,value>。// *类型Map<String,Map<String,Object>> public void demo08() throws Exception{ QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource()); String sql = "select * from product"; Map<String, Map<String, Object>> map = queryRunner.query(sql, new KeyedHandler<String>("name")); for (Map.Entry<String, Map<String, Object>> entry : map.entrySet() ) { System.out.println(entry.getKey()); System.out.println(entry.getValue()); } } @Test// ColumListHandler : 查询指定一列数据。 public void demo09() throws Exception{ QueryRunner queryRunner = new QueryRunner(C3P0Utils.getDataSource()); String sql = "select * from product"; List<String> list = queryRunner.query(sql, new ColumnListHandler<>("name")); for (String string : list) { System.out.println(string); } }
10
- JAVA WEB基础- DBUtils
- Java web----DBUtils
- Java基础之DBUtils
- java基础之 JDBC、DBUtils
- java web学习总结41:Apache的DBUtils框架学习
- 零基础学习DBUtils--DBUtils基础知识小结
- 使用java的DBUtils
- Java DbUtils的使用
- java之dbutils笔记
- Java之DBUtils讲解
- java web(总结)common-dbutils.jar的作用以及用法
- Java Web(十) JDBC的增删改查,C3P0等连接池,dbutils框架的使用
- Java Web(十) JDBC的增删改查,C3P0等连接池,dbutils框架的使用
- Java Web(十) JDBC的增删改查,C3P0等连接池,dbutils框架的使用
- 概述Java Web基础
- Java WEB应用基础
- Java Web面试基础
- Java Web基础概述
- JM8.6之get_block() 1/4亮度像素内插详述
- 常用组件之侧栏菜单滑动及返回顶部效果
- javaweb学习总结——使用JDBC处理MySQL大数据
- Hibernate的配置
- Maven入门1
- JAVA WEB基础- DBUtils
- Run script only when installing勾选后 未知的Crash问题
- 网络爬虫-网页源码的gzip压缩和解压
- typedef详细
- 蓝牙核心技术概述(二):蓝牙使用场景
- 关于level_idc
- Airpal 部署文档
- Android解压中文乱码
- 《利用python进行数据分析》学习笔记(五)(上)