dbutils

java基础(30):DBUtils、连接池

寵の児 提交于 2020-04-27 22:20:01
1. DBUtils 如果只使用 JDBC 进行开发,我们会发现冗余代码过多,为了简化 JDBC 开发,本案例我们讲采用 apache commons 组件一个成员: DBUtils 。 DBUtils 就是 JDBC 的简化开发工具包 。需要项目导入commons-dbutils-1.6.jar 才能够正常使用 DBUtils 工具。 1.1 概述 DBUtils 是 java 编程中的数据库操作实用工具,小巧简单实用。 DBUtils 封装了对 JDBC 的操作,简化了 JDBC 操作,可以少写代码。 Dbutils 三个核心功能介绍   QueryRunner 中提供对 sql 语句操作的 API.   ResultSetHandler 接口,用于定义 select 操作后,怎样封装结果集 .   DbUtils 类,它就是一个工具类 , 定义了关闭资源与事务处理的方法 1.2 QueryRunner 核心类 update(Connection conn, String sql, Object... params) ,用来完成表数据的增加、删除、更新操作 query(Connection conn, String sql, ResultSetHandler<T> rsh, Object... params) ,用来完成表数据的查询操作 1.3 QueryRunner 实现添加

DBUtils框架的使用(上)

末鹿安然 提交于 2020-04-27 22:19:32
昨天做了这么多的铺垫,当然就是为了引出今天的DBUtils框架了,它的实现原理跟我们编写的简易框架是类似的。 话不多说,进入正题。 commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能。因此dbutils成为很多不喜欢hibernate的公司的首选。 jar包下载地址:链接: https://pan.baidu.com/s/1BKtq_VoBw52qyIJr6c_CZg 提取码:skrf 复制这段内容后打开百度网盘手机App,操作更方便哦 API介绍: org.apache.commons.dbutils.QueryRunner --- 核心操作类 org.apache.commons.dbutils.ResultSetHandler org.apache.commons.dbutils.DbUtils --- 工具类 QueryRunner 类简单化了SQL查询,它与ResultSetHandler组合在一起使用可以完成大部分的数据库操作,能够大大减少编码量。 QueryRunner类提供了两个构造方法: 默认的构造方法 需要一个 javax.sql.DataSource 来作参数的构造方法。

ComboPooledDataSource连接mysql

匆匆过客 提交于 2020-04-27 22:03:34
Dbutils学习(介绍和入门) 一:Dbutils是什么?(当我们很难理解一个东西的官方解释的时候,就让我们记住它的作用) Dbutils:主要是封装了JDBC的代码,简化dao层的操作。 作用:帮助java程序员,开发Dao层代码的简单框架。 框架的作用:帮助程序员,提高程序的开发效率。 出生:Dbutils是由Apache公司提供。 二:为什么需要Dbutils ? 在使用Dbutils 之前,我们Dao层使用的技术是JDBC,那么分析一下JDBC的弊端: (1)数据库链接对象、sql语句操作对象,封装结果集对象,这三大对象会重复定义 (2)封装数据的代码重复,而且操作复杂,代码量大 (3)释放资源的代码重复 结果:(1)程序员在开发的时候,有大量的重复劳动。(2)开发的周期长,效率低 三:Dbutils三个核心类介绍: 1:DbUtils:连接数据库对象----jdbc辅助方法的集合类,线程安全 构造方法:DbUtils() 作用:控制连接,控制书屋,控制驱动加载额一个类。 2:QueryRunner:SQL语句的操作对象,可以设置查询结果集的封装策略,线程安全。 构造方法: (1)QueryRunner():创建一个与数据库无关的QueryRunner对象,后期再操作数据库的会后,需要手动给一个Connection对象,它可以手动控制事务。 Connection

DBUtils封装数据库返回对象的各种方法

旧时模样 提交于 2020-04-27 21:17:29
① ArrayHandler: 将查询结果的第一行数据,保存到Object数组中 ② ArrayListHandler 将查询的结果,每一行先封装到Object数组中,然后将数据存入List集合 ③ BeanHandler 将查询结果的第一行数据,封装到user对象 ④ BeanListHandler 将查询结果的每一行封装到user对象,然后再存入List集合 ⑤ ColumnListHandler 将查询结果的指定列的数据封装到List集合中 ⑥ MapHandler 将查询结果的第一行数据封装到map结合(key==列名,value==列值) ⑦ MapListHandler 将查询结果的每一行封装到map集合 (key==列名,value==列值),再将map集合存入List集合 ⑧ BeanMapHandler 将查询结果的每一行数据,封装到User对象,再存入mao集合中 (key==列名,value==列值) ⑨ KeyedHandler 将查询的结果的每一行数据,封装到map1( key==列名,value==列值 ),然后将map1集合(有多个)存入map2集合(只有一个) ⑩ ScalarHandler 封装类似count、avg、max、min、sum......函数的执行结果 更多参考 https://www.cnblogs.com

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

DBUtils的handler

|▌冷眼眸甩不掉的悲伤 提交于 2020-04-06 23:54:35
ArrayHandler : 将ResultSet中第一行的数据转化成对象数组 ArrayListHandler 将ResultSet中所有的数据转化成List,List中存放的是Object[] BeanHandler : 将ResultSet中第一行的数据转化成类对象 BeanListHandler : 将ResultSet中所有的数据转化成List,List中存放的是类对象 ColumnListHandler : 将ResultSet中某一列的数据存成List,List中存放的是Object对象 KeyedHandler : 将ResultSet中存成映射,key为某一列对应为Map。Map中存放的是数据 MapHandler : 将ResultSet中第一行的数据存成Map映射 MapListHandler : 将ResultSet中所有的数据存成List。List中存放的是Map ScalarHandler : 将ResultSet中一条记录的其中某一列的数据存成Object 来源: oschina 链接: https://my.oschina.net/u/30362/blog/3595

python优雅处理异常

落爺英雄遲暮 提交于 2020-04-06 05:27:03
背景 开发过程中经常会将通用的功能模块化,比如db操作封装为db_utils。那么问题来了,如果是在一个通用模块的处理中,出错了该如何处理。不同语言有不同的异常处理机制,比如golang和lua是将错误码和错误信息返回到上一层处理,但是python有更优雅的模式, 就是直接抛出异常 认识异常 1.常见的异常有Exception(常规错误的基类)、ZeroDivisionError(除零)、RuntimeError(一般的运行时错误)等,更多异常可以查看: https://www.runoob.com/python/python-exceptions.html 异常的捕获一般都是通过try...exception...else...finally...方式处理异常 自定义异常 实践 # coding: utf-8 import sys reload(sys) sys.setdefaultencoding('utf-8') class MyError(Exception): def __init__(self, value): self.value = value def __str__(self): return repr(self.value) def create_error(name): if len(name) > 5: raise MyError('name of item

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类型的参数