有时我们只对某张表中的某一列比较感兴趣,例如我们想查询 学生表中 年龄<25岁的学生姓名,返回结果应是 List<String>对象,这个时候ColumnListHandler 就派上用场了,示例代码如下:
package com.ricky.java.junit;
import java.sql.SQLException;
import java.util.List;
import javax.sql.DataSource;
import org.apache.commons.dbutils.handlers.ColumnListHandler;
import com.ricky.java.common.dao.AbstractDAO;
import com.ricky.java.common.db.DataSourceManager;
public class StudentDAO extends AbstractDAO {
public List<String> queryNameList() throws SQLException{
return qr.query("SELECT name from dict_student where age<25", new ColumnListHandler<String>(1));
}
@Override
protected DataSource getDataSource() {
return DataSourceManager.getInstance().getDataSource();
}
}
AbstractDAO.java
package com.ricky.java.common.dao;
import javax.sql.DataSource;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.log4j.Logger;
/**
* 实现通用数据库CRUD操作 接口基类
* @author Bingbing Feng
*
* @version 2014-10-13 14:30 V1.1
*
*/
public abstract class AbstractDAO {
protected Logger mLogger = Logger.getLogger("devLog");
protected QueryRunner qr = new QueryRunner(getDataSource());
//get DataSource
protected abstract DataSource getDataSource();
}