queryrunner

Common Dbutils组件的使用(源码)

那年仲夏 提交于 2020-04-07 06:59:50
Common Dbutils 是操作数据库的组件,对传统操作数据库的类进行二次封装,可以把结果集转化成List。 主要方法: DbUtils类:启动类 ResultSetHandler接口:转换类型接口 MapListHandler类:实现类,把记录转化成List BeanListHandler类:实现类,把记录转化成List,使记录为JavaBean类型的对象 Qrery Runner类:执行SQL语句的类 建立三个Java文件 命名为 BeanListExample.java Guestbook .java MapListExample .java 源码: BeanListExample.java Code package com.sy; import org.apache.commons.dbutils.DbUtils; import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.handlers.BeanListHandler; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.util.List; public class

JavaWeb学习笔记(十八)—— DBUtils的使用

断了今生、忘了曾经 提交于 2020-03-15 16:06:33
一、DBUtils概述 1.1 什么是DBUtils   commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能。因此dbutils成为很多不喜欢hibernate的公司的首选。   DBUtils最核心的特性是结果集的封装,可以直接将查询出来的结果集封装成JavaBean,这就为我们做了最枯燥乏味、最容易出错的一大部分工作。   使用DBUtils需要导包:commons-dbutils-1.4.jar 1.2 为什么要用DBUtils    在使用Dbutils 之前,我们Dao层使用的技术是JDBC,那么分析一下JDBC的弊端: 数据库连接对象、sql语句操作对象,封装结果集对象,这三大对象会重复定义 封装数据的代码重复,而且操作复杂,代码量大 释放资源的代码重复   结果:程序员在开发的时候,有大量的重复劳动;开发的周期长,效率低   而使用dbutils可以极大程度的简化代码书写,使得开发进度更快,效率更高。 二、QueryRunner类   该类简单化了SQL查询,它与ResultSetHandler组合在一起使用可以完成大部分的数据库操作,能够大大减少编码量。   QueryRunner类提供了两个构造方法:

dbutils开源项目用法

眉间皱痕 提交于 2020-03-15 16:05:50
Common Dbutils是操作数据库的组件,对传统操作数据库的类进行二次封装,可以把结果集转化成List。 DBUtils包括3个包: org.apache.commons.dbutils org.apache.commons.dbutils.handlers org.apache.commons.dbutils.wrappers DBUtils封装了对JDBC的操作,简化了JDBC操作,可以少写代码。 org.apache.commons.dbutils DbUtils 关闭链接等操作 QueryRunner 进行查询的操作 org.apache.commons.dbutils.handlers ArrayHandler :将ResultSet中第一行的数据转化成对象数组 ArrayListHandler将ResultSet中所有的数据转化成List,List中存放的是Object[] BeanHandler :将ResultSet中第一行的数据转化成类对象 BeanListHandler :将ResultSet中所有的数据转化成List,List中存放的是类对象 ColumnListHandler :将ResultSet中某一列的数据存成List,List中存放的是Object对象 KeyedHandler :将ResultSet中存成映射,key为某一列对应为Map

DBUtils结果集处理器介绍

荒凉一梦 提交于 2020-03-15 16:05:14
  common-dbutils.jar是Apache组织提供的一个对JDBC进行简单封装的开源工具类库,使用它能够简化JDBC应用程序的开发,同时也不会影响程序的性能。 1、QueryRunner类 ①update方法: int update(String sql,Object...params) -->可执行增删改语句 int update(Connection con,String sql,Object...params)-->需要调用者提供Connection,这说明本方法不再管理Connection。支持事务。 ②query方法: T query(String sql,ResultSetHandler rsh,Object...params)-->可执行查询 它会先得到ResultSet,然后调用rsh的handle()把rs转换成需要的类型。 T query(Connection con,String sql,ResultSetHandler rsh,Object...params);支持事务。 2、ResultSetHandler接口: BeanHandler(单行)-->构造器需要一个Class类型参数,用来把一行结果转换成指定类型的javabean对象。 BeanListHandler(多行)-->构造器也是需要一个Class类型的参数

泛型(三)模拟commons-dbutils

帅比萌擦擦* 提交于 2020-03-15 16:04:55
最近在复习泛型的知识,想起以前使用 commons-dbutils 的时候,觉得这个工具太厉害了。所以,试着自己瞎写看能不能模拟 commons-dbutils 的功能。 1、commons-dbutils的使用   1.1、commons-dbutils是用来简化JDBC的代码。下面是其简单用法: // 增删改 QueryRunner qr = new QueryRunner(JdbcUtils.getDataSource());// 创建QueryRunner,需要提供数据库连接池对象 String sql = "insert into t_students values(?,?,?,?)";// 给出sql模板 Object[] params = { 1, "liSi", 20, "female" };// 给出sql模板的参数 qr.update(sql, params); // 查询 QueryRunner qr = new QueryRunner(JdbcUtils.getDataSource()); String sql = "select * from t_student where id = ?"; Object[] params = {1}; Stu stu = qr.query(sql, new BeanHandler<Stu>(Stu.class),

DbUtils: JDBC Utility Component Examples翻译

风流意气都作罢 提交于 2020-03-15 15:51:21
DbUtils:JDBC实用组件实例 这一页提供了一些展示如何使用DbUtils的示例。 基本用法 DbUtils是一个非常小的类库,因此浏览完所有类的 javadoc 不会花费很长时间。DbUtils的核心类/接口是 QueryRunner 和 ResultSetHandler 。你不需要知道其它DbUtils类就可以使用这一类库。下面的例子展示了这些类是如何一起使用的。 // Create a ResultSetHandler implementation to convert the // first row into an Object[]. // 创建一个ResultSetHandler 实现,以把第一行转换成一个Object[] ResultSetHandler<Object[]> h = new ResultSetHandler<Object[]>() { public Object[] handle(ResultSet rs) throws SQLException { if (!rs.next()) { return null; } ResultSetMetaData meta = rs.getMetaData(); int cols = meta.getColumnCount(); Object[] result = new Object[cols]; for

commons-dbutils使用介绍,commons-dbutils是JDBC的替代品

南笙酒味 提交于 2020-03-15 15:50:32
commons-dbutils 是Apache开源组织提供的用于操作数据库的工具包。今天为大家介绍一下该包的常用方法。 对于数据库的操作无外乎增删改查,而增删改本质上可以归为一类,操作方式相同,只是SQL语法不同而已,所以我将以修改和查询两类来介绍 commons-dbutils 的用法。 首先我们来创建一个测试类,使用JUnit进行测试。 import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import org.apache.commons.dbutils.DbUtils; import org.apache.commons.dbutils.QueryRunner; import org.junit.After; import org.junit.Before; import org.junit.Test; public class DBUtilsTest { private Connection conn = null; @Before public void initConnection() throws SQLException, ClassNotFoundException { printCurrentMethodName(); Class

commons-dbutils工具介绍及实战

放肆的年华 提交于 2020-03-10 05:54:48
1.commons-dbutils简介 commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能。 API介绍: •org.apache.commons.dbutils.QueryRunner •org.apache.commons.dbutils.ResultSetHandler •工具类 org.apache.commons.dbutils.DbUtils 链接如下: https://commons.apache.org/proper/commons-dbutils/ 2.DbUtils类介绍 DbUtils :提供如关闭连接、装载JDBC驱动程序等常规工作的工具类,里面的所有方法都是静态的( 关闭资源、加载驱动 )。主要方法如下: •public static void close(…) throws java.sql.SQLException: DbUtils类提供了三个重载的关闭方法。这些方法检查所提供的参数是不是NULL,如果不是的话,它们就关闭Connection、Statement和ResultSet。 •public static void closeQuietly(…): 这一类方法不仅能在Connection

第82节:Java中的学生管理系统

自古美人都是妖i 提交于 2020-02-27 12:01:08
第82节:Java中的学生管理系统 学生管理系统的删除功能 删除,点击超链接,点击弹出对话框式是否进行删除,如果确定,就删除,超链接执行的是js方法,在js里访问,跳转servlet,,servlet中调用dao方法。 <a href="#" onclick="doDelete(${stu.sid})">删除</a> <script type="text/javascript"> function doDelete(sid) { // 弹出对话框,点击确定,请求Servlet var flag = confirm("是否确定删除?"); if(flag){ //访问servlet //window.location.href="DeleteServlet?sid="+sid; location.href="DeleteServlet?sid="+sid; } } </script> package com.dashucoding.servlet; import java.io.IOException; import java.sql.SQLException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http

使用QueryRunner报错:java.sql.SQLException: Cannot create

半城伤御伤魂 提交于 2020-02-21 22:51:15
在使用QueryRunner转换查询结果的时候: QueryRunner qr = new QueryRunner ( ) ; List < Book > list = qr . query ( sql , new BeanListHandler < Book > ( Book . class ) ) ; 报错 java.sql.SQLException: Cannot create Book 原因 没给Book类写 无参构造函数 ,加上之后就好了 创建的完整Book类 public class Book { private int bid ; private String bname ; private float price ; private int category ; public Book ( ) { } public int getBid ( ) { return bid ; } public void setBid ( int bid ) { this . bid = bid ; } public String getBname ( ) { return bname ; } public void setBname ( String bname ) { this . bname = bname ; } public float getPrice ( ) {