ResultSetHandler可以对查询出来的ResultSet结果集进行处理,达到一些业务上的需求。
package com.hbk.test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.dbutils.DbUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.ResultSetHandler;
/**
* DbUtil工具的学习使用
*
* @author 黄宝康 2019年6月11日 上午11:57:52
*/
public class DbUtilTest {
public static void main(String[] args) throws Exception {
Connection conn = null;
QueryRunner queryRunner = new QueryRunner();
ResultSetHandler<List<Blog>> handler = new ResultSetHandler<List<Blog>>() {
@Override
public List<Blog> handle(ResultSet rs) throws SQLException {
List<Blog> lists = new ArrayList<Blog>();
while(rs.next()){
Blog blog = new Blog();
blog.setId(rs.getInt("id"));
blog.setContent(rs.getString("content")+"huangbaokang");
blog.setTitle(rs.getString("title")+"黄宝康");
lists.add(blog);
}
return lists;
}
};
try {
DbUtils.loadDriver("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://192.168.8.220:3306/jfinal_demo","root","");
List<Blog> blogs = queryRunner.query(conn, "select * from blog",handler);
for(Blog blog : blogs){
System.out.println(blog);
}
}finally{
DbUtils.close(conn);
}
}
}
package com.hbk.test;
public class Blog {
private int id;
private String title;
private String content;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
@Override
public String toString() {
return "Blog [id=" + id + ", title=" + title + ", content=" + content + "]";
}
}
数据库里的信息
运行程序可以改变结果集的显示
针对ResultSetHandler接口,其实已经有好些类实现了该接口,在项目中经常使用。
其实我们上面的代码也可以通过BeanListHander实现
package com.hbk.test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.List;
import org.apache.commons.dbutils.DbUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.ResultSetHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
/**
* DbUtil工具的学习使用
*
* @author 黄宝康 2019年6月11日 上午11:57:52
*/
public class DbUtilTest {
public static void main(String[] args) throws Exception {
Connection conn = null;
QueryRunner queryRunner = new QueryRunner();
ResultSetHandler<List<Blog>> handler = new BeanListHandler<Blog>(Blog.class);
try {
DbUtils.loadDriver("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://192.168.8.220:3306/jfinal_demo","root","");
List<Blog> blogs = queryRunner.query(conn, "select * from blog",handler);
for(Blog blog : blogs){
System.out.println(blog);
}
}finally{
DbUtils.close(conn);
}
}
}
如果要改变输出,重写 handle方法即可
package com.hbk.test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.dbutils.DbUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.ResultSetHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
/**
* DbUtil工具的学习使用
*
* @author 黄宝康 2019年6月11日 上午11:57:52
*/
public class DbUtilTest {
public static void main(String[] args) throws Exception {
Connection conn = null;
QueryRunner queryRunner = new QueryRunner();
ResultSetHandler<List<Blog>> handler = new BeanListHandler<Blog>(Blog.class){
@Override
public List<Blog> handle(ResultSet rs) throws SQLException {
List<Blog> lists = new ArrayList<Blog>();
while(rs.next()){
Blog blog = new Blog();
blog.setId(rs.getInt("id"));
blog.setContent(rs.getString("content")+"huangbaokang");
blog.setTitle(rs.getString("title")+"黄宝康");
lists.add(blog);
}
return lists;
}
};
try {
DbUtils.loadDriver("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://192.168.8.220:3306/jfinal_demo","root","");
List<Blog> blogs = queryRunner.query(conn, "select * from blog",handler);
for(Blog blog : blogs){
System.out.println(blog);
}
}finally{
DbUtils.close(conn);
}
}
}