Dbutils工具:
Dbutils是对jdbc的一个简单封装,可以让我们在书写jdbc代码时,更加简单方便 。
元数据:
元数据MetaData : 指数据库中 库、表、列的定义信息
1、库元数据:
DataBaseMetaData代表的是数据库的元数据。
获取:con.getMetaData();返回一个DataBaseMetaData对象。
DataBaseMetaData对象的方法:
getURL():返回一个String类对象,代表数据库的URL。
getUserName():返回连接当前数据库管理系统的用户名。
getDriverName():返回驱动驱动程序的名称。
getPrimaryKeys(String catalog, String schema, String table):返回指定表主键的结果集
2、ParameterMetaData
我们使用PreparedStatement执行sql语句时,可以在sql语句中使用”?”占位符,
而ParameterMetaData它就是用于获取占位符相关信息。
可以通过PreparedStatement对象的getparameterMetaData()方法获取到parameterMetaData对象。
常用方法:
a)getParameterCount()
i.获得指定参数的个数
b)getParameterTypeName(int param)
i.获得指定参数的sql类型
注意:获取占位符的类型时,会产生异常需要在URL后面加上:generateSimpleParameterMetadata=true。
然而添加后异常没有了,但是参数类型却都是varchar类型,因为MySQL的数据库驱动对此方法的支持有问题。
3、ResultSetMetaData
它描述的是select语句执行后获取的结果集的相关信息
通过ResultSet接口的getMetaData()方法获取ResultSetMetaData对象。也可以通过PreparedStatement对象获取
常用方法:
a)getColumnCount()
i.返回resultset对象的列数
b)getColumnName(int column)
i.获得指定列的名称
c) getColumnTypeName(int column)
i.获得指定列的类型
dbutils:
dbutils是对jdbc代码的封装.
导包:
commons-dbutils-1.4.jar。
核心:
1.QueryRunner类
在QueryRunner类中有三个方法
1)query方法 它是用于执行select语句
2)update方法 它是用于执行insert,update delete语句
3)batch方法 它是用于执行批处理
2.DbUtils类
它的方法全是static,它提供了关于事务及关闭资源的操作
3.ResultSetHandler接口
它的主要作用是对select语句执行后得到的结果集进行封装。
怎样封装结果集是需要我们自己手动完成。
但是ResultSetHandler提供了九个实现类,可以按照一定的规则对结果集进行封装。
QueryRunner:
构造方法:
QueryRunner();
QueryRunner(DataSource ds);
对于我们使用QueryRunner,用以上两个构造就可以。它们的区别:
如果是无参数的,那么在使用它的query,update,batch方法时,就需要有Connection参数的。我们需要进行手动的事务控制。
如果是有参数的QueryRunner,那么在使用它的query,update,batch方法时,就不需要使用有Connection参数的方法。事务是自动处理的。
操作sql的方法:
query(Connection conn, String sql, ResultSetHandler<T> rsh) Execute an SQL SELECT query without any replacement parameters.
query(Connection conn, String sql, ResultSetHandler<T> rsh, Object... params) Execute an SQL SELECT query with replacement parameters.
以上配合无参构造使用。
query(String sql, ResultSetHandler<T> rsh) Executes the given SELECT SQL without any replacement parameters.
query(String sql, ResultSetHandler<T> rsh, Object... params) Executes the given SELECT SQL query and returns a result object.
以上配置有参数QueryRunner构造使用
其它参数使用:
1.sql 代表要执行的sql语句
2.rsh 代表查询执行后得到的结果集怎样封装。
3.params 它代表的是sql语句中的占位符的值
返回值:
代表的是结果集封装的对象的类型
Update:
有Connection参数与无参数的QueryRunner构造使用
无Connection参数与有参数的QueryRunner构造使用
其它参数
1.sql 要执行的sql语句
2.params sql语句中的占位符的值
返回值
类型是int,它与executeUpdate方法返回值类似。
Batch:
有Connection参数与无参数的QueryRunner构造使用
无Connection参数与有参数的QueryRunner构造使用
其它参数
1.sql 要执行的sql语句
2.params,它是一个二维数组,就是我们要批处理的sql语句的参数
简单说,二维数组中的每一个一维数组的内容就是一条sql语句的参数。
ResultSetHandler:
在ResultSetHandler接口中的handle方法,它的参数就是我们执行sql语句后得到的结果集.
public int update(Connection con, String sql, Object... params)
throws SQLException {
// 1.得到一个PreparedStatement对象
PreparedStatement pst = con.prepareStatement(sql);
// 2.对参数赋值
// 可以通过ParameterMetaData来获取sql语句中相关的参数信息
ParameterMetaData pmd = pst.getParameterMetaData();
// 2.1 得到参数有几个
int count = pmd.getParameterCount();
if (count == params.length) {
// 2.2对参数进行赋值
for (int i = 1; i <= count; i++) {
pst.setObject(i, params[i - 1]);
}
}
// 3.执行操作
return pst.executeUpdate();
}
2.query方法实现
public <T> T query(Connection con, String sql, MyResultSetHandler<T> mrs,
Object... params) throws Exception {
// 1.得到一个PreparedStatement对象
PreparedStatement pst = con.prepareStatement(sql);
// 2.对参数赋值
// 可以通过ParameterMetaData来获取sql语句中相关的参数信息
ParameterMetaData pmd = pst.getParameterMetaData();
// 2.1 得到参数有几个
int count = pmd.getParameterCount();
if (count == params.length) {
// 2.2对参数进行赋值
for (int i = 1; i <= count; i++) {
pst.setObject(i, params[i - 1]);
}
}
// 3.执行操作
ResultSet rs = pst.executeQuery();
return mrs.handle(rs); // 调用接口中的handle方法将结果集封装成指定的对象。
我们在使用query方法时,必须传递一个MyResultSetHandler接口实现类的对象
}
ResultSetHandler接口九个实现类:
ArrayHandler,它是将结果集中第一条记录封装到一个Object[]数组中。
ArrayListHandler,它是将结果集中每一条记录封装到Object[]数组中,在将这些数组封装到List集合中
BeanHandler, 它是将结果集中第一条记录封装到一个指定的javaBean中。
BeanListHandler, 它是将结果集中每一条记录封装到javaBean中,在将这些javaBean在封装到List集合中
ColumnListHandler, 将结果集中指定的列封装到List集合中。
KeyedHandler, 将结果集中每一条记录封装到Map<String,Object>,在将这些Map集合在封装到一个Map信,这个Map集合的key是我们指定的一个列的值,value就是Map<String,Object>;
MapHandler, 将结果集中第一条记录封装到了Map<String,Object> key就是字段名称,value是对应的字段值。
MapListHandler, 将结果集中每一条记录封装到了Map<String,Object> key就是字段名称,value是对应的字段值。在将Map封装到List集合.
相关推荐
DbUtils是Apache Commons的一个模块,它为JDBC提供了一个简单实用的工具库,旨在简化数据库操作,使得开发者能够更高效、安全地处理数据库事务。 DbUtils的主要功能包括: 1. **资源管理**:自动关闭数据库连接、...
【标题】"netbeans java web demo4 jsp页分页查询 --jdbc-DBUtils 案例"涉及的关键知识点主要包括Java Web开发、NetBeans IDE的使用、JSP(JavaServer Pages)、数据库连接(JDBC)以及DBUtils工具类。这个示例教程...
4. Apache DBUtils的运用:理解DBUtils工具类如何简化数据库操作,包括连接管理、结果集处理等。 5. 数据库管理:学会如何导入数据库文件,以及调整数据库连接参数。 6. NetBeans IDE的使用:熟悉IDE的基本操作,如...
1. **DBUtils**:这是jdbc-helper的核心工具类,提供了连接数据库、执行SQL语句、关闭资源等基本操作。 2. **SqlSession**:SqlSession对象用于执行SQL语句,它支持单条和批量执行,以及事务控制。 3. **Mapper**...
DBUtils提供了诸如QueryRunner、BasicDataSource等实用工具类,可以方便地执行SQL查询、处理结果集、管理数据源等任务。通过DBUtils,开发者可以避免常见的JDBC错误,如资源泄漏,同时提高代码的可读性和可维护性。 ...
DBUtils通过提供一套高级的JDBC工具,使得开发者可以更方便地利用JDBC功能,而无需关注底层的资源管理和异常处理。 3. **DBUtils的主要特性** - **QueryRunner**: 这是DBUtils的核心类,用于执行SQL查询和更新操作...
### JDBC工具类-DBUtils1.6版jar包-正式版下载 #### 一、简介 Commons DbUtils是Apache组织提供的一款针对JDBC(Java Database Connectivity)进行封装的轻量级工具类库。该工具类库的主要目的是为了简化基于JDBC...
这个工具包简化了JDBC(Java Database Connectivity)的使用,通过提供一个健壮且易于使用的抽象层,使得数据库操作变得更加便捷。在JavaWeb开发中,DBUtils被广泛用于处理数据库连接、查询、事务管理等任务,极大地...
commons-dbutils包是Apache开源组织提供的用于操作数据库的工具包。简单来讲,这个工具包就是用来更加方便我们操作数据库的,最近工作中使用了一下,感觉确实方便很多,基本告别自己封装JDBC代码对数据库进行增删改...
DbUtils是Apache组织提供的一款Java数据库操作工具包,它的全称是Apache Commons DbUtils。DbUtils的主要目的是简化数据库操作,让开发人员能够更专注于业务逻辑而不是底层的JDBC细节。这个工具包基于Java,适用于...
Apache Commons DBUtils是一个Java库,它简化了与数据库交互的任务,是Java开发中常用的数据访问工具。这个压缩包“commons-dbutils-1.3.zip”包含的是DBUtils库的1.3版本。DBUtils库是Apache Commons项目的一部分,...
Common Dbutils是操作数据库的组件,对传统操作数据库的类进行二次封装,可以把结果集转化成List。 补充一下,传统操作数据库的类指的是JDBC(java ... DBUtils是java编程中的数据库操作实用工具,小巧简单实用,
Apache Commons DbUtils是Java开发中的一个实用工具库,专门针对JDBC(Java Database Connectivity)进行优化,以提供更简洁、高效的数据库操作API。这个库在Java社区中广泛使用,因为它大大减轻了开发者处理数据库...
压缩包中存在DbUtils使用说明文档、jar包以及一个使用样例。commons-dbutils 是 Apache 组织提供的一个开源 JDBC 工具类库,对传统操作数据库的类进行二次封装,可以把结果集转化成List。
DBUtils 是一个 JDBC 工具类库,提供了一些实用的工具方法来简化 JDBC 操作。例如,DBUtils 提供了一个 QueryRunner 类,可以简化 JDBC 查询操作。DBUtils 还提供了一个 DbUtils类,可以简化 JDBC 的 CRUD 操作。 ...
Apache Commons DBUtils是一款在Java编程中广泛使用的数据库操作工具库,它的全称为“Apache Commons Database Utilities”。这个小巧且高效的库为开发者提供了方便、安全的数据库访问接口,降低了处理数据库连接、...
总的来说,Apache Commons DBUtils是Java开发中一个强大的数据库工具库,它的出现大大简化了JDBC的使用,提高了开发效率和代码的可读性。对于需要处理数据库操作的Java项目,DBUtils是一个值得考虑的选择。
DbUtils 一个JDBC辅助工具集合. ProxyFactory 产生JDBC接口的代理实现. QueryLoader 属性文件加载器,主要用于加载属性文件中的 SQL 到内存中. QueryRunner 使用可插拔的策略执行SQL查询并处理结果集. ...
Apache Commons DBUtils是一个Java库,它为数据库操作提供了一些实用工具和抽象,简化了数据库编程。这个"commons-dbutils-1.4.jar"文件是Apache Commons DBUtils项目的1.4版本的归档文件,用于在Java应用程序中方便...
Apache Commons DBUtils是Java开发中的一个实用工具库,主要用于简化JDBC(Java Database Connectivity)的使用。这个项目在1.6版本中包含了两个主要的jar文件:`commons-dbutils-1.6.jar`和`commons-dbutils-1.6-...