导入jar包 commons-dbutils-1.3.jar
使用DBUtils操作数据库
package dao;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.dbutils.handlers.ScalarHandler;
import utils.JdbcUtils;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;
public abstract class BaseDao {
//导入jar包 commons-dbutils-1.3.jar
//使用DBUtils操作数据库
private QueryRunner queryRunner=new QueryRunner();
/*
update()方法用来执行insert,delete,update SQL语句
return 的返回值表明执行操作影响的行数,返回-1表示执行失败
*/
public int update(String sql, Object...args){
Connection connection=null;
try {
connection= JdbcUtils.getConnection();
return queryRunner.update(connection,sql,args);
} catch (SQLException throwables) {
throwables.printStackTrace();
}finally{
JdbcUtils.close(connection);
}
return -1;
}
/*
* 查询返回一个javaBean的sql语句
* type 返回的对象类型
* sql 执行的sql语句
* args sql对应的参数值(可变长参数)
* <T> 返回类型的泛型*/
public <T> T queryForOne (Class<T> type , String sql, Object...args){
Connection connection=JdbcUtils.getConnection();
try {
return queryRunner.query(connection,sql,new BeanHandler<T>(type),args);
} catch (Exception e) {
e.printStackTrace();
}finally {
JdbcUtils.close(connection);
}
return null;
}
//查询返回一个带有javaBean的list链表的sql语句
public <T> List<T> queryForList (Class<T> type , String sql, Object...args){
Connection connection=JdbcUtils.getConnection();
try {
return queryRunner.query(connection,sql,new BeanListHandler<T>(type),args);
} catch (Exception e) {
e.printStackTrace();
}finally {
JdbcUtils.close(connection);
}
return null;
}
/*
* 执行返回一行一列的sql语句*/
public Object queryForSingleValue(String sql,Object...args){
Connection connection=JdbcUtils.getConnection();
try {
return queryRunner.query(connection,sql,new ScalarHandler(),args);
} catch (SQLException throwables) {
throwables.printStackTrace();
}
return null;
}
}