Dbutil使用
程序员文章站
2022-05-17 07:53:41
Dbutil 的使用小结Java与数据库的连接包括:导包、注册驱动、获取与数据库的连接对象、获取SQL语句的执行者对象、获取结果集对象、关闭连接等。其中连接池包含了注册驱动和获取与数据库连接两个步骤,而dbutils简化了其他步骤。DBUtils使用DBUtils封装了JDBC的操作,核心功能如下: Dbutils三个核心功能介绍QueryRunner中提供对sql语句操作的API.ResultSetHandler接口,用于定义select操作后,怎样封装结果集.DbUtils类是一个工具类...
Dbutil 的使用小结
Java与数据库的连接包括:导包、注册驱动、获取与数据库的连接对象、获取SQL语句的执行者对象、获取结果集对象、关闭连接等。其中连接池包含了注册驱动和获取与数据库连接两个步骤,而dbutils简化了其他步骤。
DBUtils使用
DBUtils封装了JDBC的操作,核心功能如下: Dbutils三个核心功能介绍
- QueryRunner中提供对sql语句操作的API.
- ResultSetHandler接口,用于定义select操作后,怎样封装结果集.
- DbUtils类是一个工具类,定义了关闭资源与事务处理的方法
QueryRunner核心类:
- QueryRunner(DataSource ds) ;传入参数为连接池
- update(String sql, Object… params) ,执行insert update delete操作
- query(String sql, ResultSetHandler rsh, Object… params) ,执行 select操作
ResultSetHandler结果集处理类
DbUtils操作数据库的用法
对于数据库操作,就是增删改查。
1) 在进行查询(select)时,对于直接利用JDBC API访问数据库时,大多都采用两种返回值,一种是取得的结果集是List,一种是实体类(VO)。
2) 在进行增删改(insert,delete,update)时,对于直接利用JDBC API访问数据库时,返回值一般都是void,因为在增删改之后成功无结果集返回。
下面我就来说说这个DbUtils的常用方法的用法
在进行操作之前,我们先来说说,DbUtils加载数据库驱动和创建数据库连接的一些通用方法,下面的实例都用sql server 2005 做示范。
DbUtils加载驱动
(1) 加载驱动:DbUtils.loadDriver(“驱动程序的字符串”):
(2) 创建连接:创建数据库连接,这个就是JDBC中的方法。
(3) 关闭连接:DbUtils.close(“数据库连接”);
代码如下:
public Connection openConnection() throwsSQLException
{
DbUtils.loadDriver(DRIVATENAME);
returnDriverManager.getConnection(URL,UID,PWD);
}
public void closeConnection(conn)
{
DbUtils.close(conn);
}
DRIVATENAM代表加载驱动的字符串
URL代表加载驱动的连接字符串
UID代表访问数据库的用户名 PWD代表访问数据库的密码
-
查询
(1)查询一条数据
public Object load(String sql,Object[]params,ResultSetHandler rsh) throws SQLException
{
QueryRunner run= newQueryRunner();
Object result=run.query(conn, sql,params, rsh);
//执行sql语句
DbUtils.close(conn); //关闭连接
return result; //返回结果(Object)
}
public List executequery(String sql,Object[]params,ResultSetHandler rsh) throws SQLException
{
QueryRunner run = newQueryRunner();
List result= (List) run.query(conn,sql, params, rsh);
DbUtils.close(conn);
return result;
}
(2)查询多条数据
public List executequery(String sql,ResultSetHandlerrsh) throws SQLException
{
open();
QueryRunner run = newQueryRunner();
List result= (List) run.query(conn,sql, rsh);
DbUtils.close(conn);
return result;
}
-
增删改
public void update(String sql,Object[] params) throwsSQLException
{
QueryRunner run = newQueryRunner();
run.update(conn,sql,params);
DbUtils.close(conn);
}
Dbutil 的使用示例
- DBUtilsDemo.java
import java.sql.SQLException;
import java.util.List;
import java.util.Map;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.ArrayHandler;
import org.apache.commons.dbutils.handlers.ArrayListHandler;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.dbutils.handlers.ColumnListHandler;
import org.apache.commons.dbutils.handlers.MapHandler;
import org.apache.commons.dbutils.handlers.MapListHandler;
import org.apache.commons.dbutils.handlers.ScalarHandler;
import cn.simon.jdbc.domain.Category;
/**
* DBUtils执行数据库查询操作
* 1.QueryRunner(DataSource)
* 2.query(String sql, ResultSetHandler<T> rsh, Object... params); // 主要执行查询
*/
public class DBUtilsDemo {
public static void main(String[] args) throws SQLException {
// TODO Auto-generated method stub
// queryDemo01();
// queryDemo02();
// queryDemo03();
// queryDemo04();
// queryDemo05();
queryDemo06();
// queryDemo07();
// queryDemo08();
}
// ArrayHandler处理类的使用
public static void queryDemo01() throws SQLException{
// 1.创建QueryRunner对象
QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());
// 2.执行查询
Object[] objs = qr.query("select * from category where cid = ?", new ArrayHandler(), 1);
for(Object o: objs){ // object[]中保存了object对象
System.out.println(o);
}
}
// ArrayListHandler
public static void queryDemo02() throws SQLException{
// 1.创建QueryRunner对象
QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());
// 2.执行查询
List<Object[]> objs = qr.query("select * from category ", new ArrayListHandler());
for (Object[] objects : objs) {
System.out.println(objects[0]+"\t"+objects[1]);
}
}
// BeanHandler处理类的使用
public static void queryDemo03() throws SQLException{
// 1.创建QueryRunner对象
QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());
// 2.执行查询
String sql = "select * from category";
Category c = qr.query(sql, new BeanHandler<Category>(Category.class));
System.out.println(c);
}
// BeanListHandler
public static void queryDemo04() throws SQLException{
// 1.创建QueryRunner对象
QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());
// 2.执行查询
String sql = "select * from category";
List<Category> c = qr.query(sql, new BeanListHandler<Category>(Category.class));
for (Category category : c) {
System.out.println(category);
}
}
// ColumnListHandler处理类的使用
public static void queryDemo05() throws SQLException{
// 1.创建QueryRunner对象
QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());
// 2.执行查询
String sql = "select * from category";
List<Object> c = qr.query(sql, new ColumnListHandler<Object>("cname"));
System.out.println(c);
}
// MapHandler处理类的使用
public static void queryDemo06() throws SQLException{
// 1.创建QueryRunner对象
QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());
// 2.执行查询
String sql = "select * from category";
Map<String, Object> map = qr.query(sql, new MapHandler());
// 3.
System.out.println(map);
}
// MapListHandler处理类的使用
public static void queryDemo07() throws SQLException{
// 1.创建QueryRunner对象
QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());
// 2.执行查询
String sql = "select * from category";
List<Map<String, Object>> maps = qr.query(sql, new MapListHandler());
// 3.List
System.out.println(maps);
}
// MapListHandler处理类的使用
public static void queryDemo08() throws SQLException{
// 1.创建QueryRunner对象
QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());
// 2.执行查询
String sql = "select count(*) from category";
Long count = qr.query(sql, new ScalarHandler<Long>());
// 3.List
System.out.println(count);
}
}
本文地址:https://blog.csdn.net/a767461034/article/details/108969775