dbutils

DbUtils使用笔记

回眸只為那壹抹淺笑 提交于 2019-12-02 21:45:34
Apache Commons DbUtils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的简单封装,能极大简化JDBC编码的工作量,同时也不会影响程序的性能。 最新版本是 Apache Commons DbUtils 1.6 测试实例 package cn.iborder.test; import java.beans.PropertyVetoException; import java.sql.SQLException; import java.util.List; import java.util.Random; 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.ColumnListHandler; import org.apache

DBUtils工具类学习一

匿名 (未验证) 提交于 2019-12-02 21:40:25
Commons DbUtils是Apache组织提供的一个对JDBC进行简单封装的开源工具类库,使用它能够简化JDBC应用程序的开发,同时也不会影响程序的性能 DBUtils是java编程中的数据库操作实用工具,小巧简单实用, 1.对于数据表的读操作,他可以把结果转换成List,Array,Set等java集合,便于程序员操作; 2.对于数据表的写操作,也变得很简单(只需写sql语句) 3.可以使用数据源,使用JNDI,数据库连接池等技术来优化性能--重用已经构建好的数据库连接对象,而不像php,asp那样,费时费力的不断重复的构建和析构这样的对象。 QueryRunner(DataSource ds),提供数据源(连接池),DBUtils底层自动维护了连接Connection update(String sql, Object...params),执行更新数据 query(String sql,ResultSetHandler rsh,Object... params),执行查询 ArrayHandler:将结果集中的第一条记录封装到Object[]数组中,数组中的每一个元素即使这条记录中的每一个字段的值 ArrayListHandler:将结果集中的每一条记录封装到Object[]数组中,将这些数组再封装到List集合中 BeanHandler

Commons DbUtils

故事扮演 提交于 2019-12-02 07:18:43
1 概述 Commons DBUtils 类库是小型的设计于易于使用 JDBC 的类集合。 JDBC 资源清理是平凡的,容易出错,以至于这些类从你的代码中抽象出清理代码,剩下你最初真正想要使用 JDBC 做的代码:查询和更新数据。 使用 DBUtils 的一些优势: 没有资源泄露的可能性。正确的 JDBC 编码并不难,但它耗时且乏味。这常常会导致连接泄漏可能很难追踪。 清晰的持久化代码。需要持久化数据到数据库中的代码大幅减少。剩下的代码清晰的表达你的意图没有凌乱的资源清理。 从 ResultSet 自动填充 JavaBean 。你不需要通过 setter 方法手动复制列值到 bean 实例。 ResultSet 的每行代表一个完全填充的 bean 实例。 2 包的范围 DBUtils 设计为: 小巧 —— 你应该能够在很短的时间理解整个包。 透明—— DbUtils 不在背后做任何魔术。你指定给它一个查询,它执行查询并为你清理。 快速 —— 你不需要创建一百万个临时对象使用 DbUtils 。 DbUtils 不是: 一个对象 / 关系桥 —— 有很多好的 O/R 工具。 DbUtils 是为想要使用 JDBC 开发人员设计。 一个数据访问对象( DAO )框架 ——DbUtils 能用于构建一个 DAO 框架。 面向对象的通用数据库对象的抽象,像 Table 、 Column 或

DbUtils源码阅读一:初识项目

百般思念 提交于 2019-12-02 07:18:33
1 项目介绍 DbUtils是一个关于JDBC操作的类库。 官网地址 2 项目结构 org.apache.commons.dbutils: |-AbstractQueryRunner: 抽象类 |-AsyncQueryRunner |-QueryRunner |-QueryLoader |- ProxyFactory |- RowProcessor: 接口 |- BasicRowProcessor |- BeanProcessor |- ResultSetIterator: 实现java.util.Iterator<Object[]> |- ResultSetHandler<T>: 接口 org.apache.commons.dbutils.handlers : |-AbstractKeyedHandler<K, V>: 抽象类,实现ResultSetHandler<Map<K, V>> |-BeanMapHandler<K, V>: 继承AbstractKeyedHandler<K, V> |-KeyedHandler<K>: 继承AbstractKeyedHandler<K, Map<String, Object>> |-AbstractListHandler<T>: 实现ResultSetHandler<List<T>> |-ArrayListHandler:

DBUtils

*爱你&永不变心* 提交于 2019-12-01 16:30:13
DBUtils是Python的一个用于实现 数据库连接池 的模块。 此连接池有两种连接模式: 模式一:为每个线程创建一个连接,线程即使调用了close方法,也不会关闭,只是把连接重新放到连接池,供自己线程再次使用。当线程终止时,连接自动关闭。    POOL = PersistentDB( creator=pymysql, # 使用链接数据库的模块 maxusage=None, # 一个链接最多被重复使用的次数,None表示无限制 setsession=[], # 开始会话前执行的命令列表。如:["set datestyle to ...", "set time zone ..."] ping=0, # ping MySQL服务端,检查是否服务可用。# 如:0 = None = never, 1 = default = whenever it is requested, 2 = when a cursor is created, 4 = when a query is executed, 7 = always closeable=False, # 如果为False时, conn.close() 实际上被忽略,供下次使用,再线程关闭时,才会自动关闭链接。如果为True时, conn.close()则关闭链接,那么再次调用pool.connection时就会报错,因为已经真的关闭了连接

DBUtils笔录

倾然丶 夕夏残阳落幕 提交于 2019-12-01 07:27:27
一、核心类QueryRunner 现阶段所有对数据库的操作(基本的增删改查操作)都可以由QueryRunner类实现,通过创建QueryRunner对象可以操作类中的成员方法{update()方法(增删改)与query()方法(查)}; 二、方法详解 QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());//参数为数据源对象 2.1增 public int insertGoods(Goods goods) throws SQLException { String sql = "INSERT INTO goods(NAME,price) VALUES (?,?);"; int result = qr.update(sql,goods.getName(),goods.getPrice()); return result; } //第一个参数为sql语句,之后为可变参数,为所需插入的值 2.2删 public int deleteGoods(int id) throws SQLException { String sql = "DELETE FROM goods WHERE id = ?;"; int result = qr.update(sql,id); return result; } //第一个参数为sql语句

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

北城以北 提交于 2019-12-01 07:22:17
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 实现添加

java基础(29):JDBC、DBUtils

淺唱寂寞╮ 提交于 2019-12-01 07:13:07
1. JDBC 1.1 JDBC 概述 JDBC ( Java Data Base Connectivity,java 数据库连接)是一种用于执行 SQL 语句的 Java API ,可以为多种关系数据库提供统一访问,它由一组用 Java 语言编写的类和接口组成。是 Java 访问数据库的标准规范 JDBC 提供了一种基准 , 据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。 JDBC 需要连接驱动,驱动是两个设备要进行通信,满足一定通信数据格式,数据格式由设备提供商规定,设备提供商为设备提供驱动软件,通过软件可以与该设备进行通信。 今天我们使用的是 mysql 的驱动 mysql-connector-java-5.1.39-bin.jar 1.2 JDBC 原理 Java 提供访问数据库规范称为 JDBC ,而生产厂商提供规范的实现类称为驱动。 JDBC 是接口,驱动是接口的实现,没有驱动将无法完成数据库连接,从而不能操作数据库!每个数据库厂商都需要提供自己的驱动,用来连接自己公司的数据库,也就是说驱动一般都由数据库生成厂商提供。 1.3 案例分析 昨天我们学习了 sql 语句的使用,并创建的分类表 sort ,今天我们将使用 JDBC 对分类表进行增删改查操作。 #创建数据库 create database day22_JDBC; #使用数据库 use

dbutils实现clob和blob存储

别来无恙 提交于 2019-12-01 03:20:19
//使用dbutils实现大文本对象的存储. @Test public void testClob() throws Exception{ String sql="insert into article (content)values(?)"; File file=new File("bin/stylesheet.css"); char[] c=new char[(int)file.length()]; FileReader reader=new FileReader(file); reader.read(c); SerialClob clob=new SerialClob(c); QueryRunner runner=new QueryRunner(JDBCUtils.getDataSource()); runner.update(sql, clob); } //使用dbutils实现二进制对象的存储. @Test public void testBlob() throws Exception{ String sql="insert into image (content)values(?)"; File file=new File("bin/bg.jpg"); byte[] b=new byte[(int)file.length()]; InputStream in=new

Apache Flink 零基础入门(十一)Flink transformation

北城以北 提交于 2019-11-29 07:27:31
前面讲了常用的DataSource的用法,DataSource其实是把数据加载进来,加载进来之后就需要做Transformation操作了。 Data transformations transform one or more DataSets into a new DataSet. Programs can combine multiple transformations into sophisticated assemblies. 数据转化可以将一个或多个DataSets转化到一个新的DataSet。就是一个算法的综合使用。 Map Function Scala 新建一个Object object DataSetTransformationApp { def main(args: Array[String]): Unit = { val environment = ExecutionEnvironment.getExecutionEnvironment } def mapFunction(env: ExecutionEnvironment): Unit = { val data = env.fromCollection(List(1,2,3,4,5,6,7,8,9,10)) } } 这里的数据源是一个1到10的list集合。Map的原理是:假设data数据集中有N个元素