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
);
DbUtils
.close(conn
);
return result
;
}
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
;
public class DBUtilsDemo {
public static void main(String
[] args
) throws SQLException
{
queryDemo06();
}
public static void queryDemo01() throws SQLException
{
QueryRunner qr
= new QueryRunner(C3P0Utils
.getDataSource());
Object
[] objs
= qr
.query("select * from category where cid = ?", new ArrayHandler(), 1);
for(Object o
: objs
){
System
.out
.println(o
);
}
}
public static void queryDemo02() throws SQLException
{
QueryRunner qr
= new QueryRunner(C3P0Utils
.getDataSource());
List
<Object
[]> objs
= qr
.query("select * from category ", new ArrayListHandler());
for (Object
[] objects
: objs
) {
System
.out
.println(objects
[0]+"\t"+objects
[1]);
}
}
public static void queryDemo03() throws SQLException
{
QueryRunner qr
= new QueryRunner(C3P0Utils
.getDataSource());
String sql
= "select * from category";
Category c
= qr
.query(sql
, new BeanHandler<Category>(Category
.class));
System
.out
.println(c
);
}
public static void queryDemo04() throws SQLException
{
QueryRunner qr
= new QueryRunner(C3P0Utils
.getDataSource());
String sql
= "select * from category";
List
<Category> c
= qr
.query(sql
, new BeanListHandler<Category>(Category
.class));
for (Category category
: c
) {
System
.out
.println(category
);
}
}
public static void queryDemo05() throws SQLException
{
QueryRunner qr
= new QueryRunner(C3P0Utils
.getDataSource());
String sql
= "select * from category";
List
<Object> c
= qr
.query(sql
, new ColumnListHandler<Object>("cname"));
System
.out
.println(c
);
}
public static void queryDemo06() throws SQLException
{
QueryRunner qr
= new QueryRunner(C3P0Utils
.getDataSource());
String sql
= "select * from category";
Map
<String, Object> map
= qr
.query(sql
, new MapHandler());
System
.out
.println(map
);
}
public static void queryDemo07() throws SQLException
{
QueryRunner qr
= new QueryRunner(C3P0Utils
.getDataSource());
String sql
= "select * from category";
List
<Map
<String, Object>> maps
= qr
.query(sql
, new MapListHandler());
System
.out
.println(maps
);
}
public static void queryDemo08() throws SQLException
{
QueryRunner qr
= new QueryRunner(C3P0Utils
.getDataSource());
String sql
= "select count(*) from category";
Long count
= qr
.query(sql
, new ScalarHandler<Long>());
System
.out
.println(count
);
}
}