BaseDao抽象类为基类,对CRUD操作进行声明
增删改操作
使用dbutils下的QueryRunner类对象,调用update()方法实现增删改操作,返回值为int类型
1.1
new一个Queryrunner对象
//使用DbUtils操作数据库
private QueryRunner queryRunner = new QueryRunner();
1.2
调用update()方法,传入连接,sql语句,可变形参实现操作
/**
* update()方法用来执行:Insert/Update/Delete语句
*
* @return 返回-1说明失败,其他为受到影响的语句数量
*/
public int update(String sql, Object... args) {
Connection conn = JdbcUtils.getConnection();
try {
return queryRunner.update(conn, sql, args);
} catch (SQLException e) {
e.printStackTrace();
} finally {
JdbcUtils.close(conn);
}
return -1;
}
查询操作
2.1 查询返回一个javaBean的sql语句
BeanHandler为一个javabean结果处理集
/**
* 查询返回一个javaBean的sql语句
*
* @param type 返回的对象类型
* @param sql 执行的sql语句
* @param args sql对应的参数值
* @param <T> 返回的类型的泛型
* @return 失败则返回null
*/
public <T> T queryForOne(Class<T> type, String sql, Object... args) {
Connection conn = JdbcUtils.getConnection();
try {
return queryRunner.query(conn,sql, new BeanHandler<T>(type), args);
} catch (SQLException e) {
e.printStackTrace();
} finally {
JdbcUtils.close(conn);
}
return null;
}
2.2 查询返回多个javaBean的sql语句
BeanListHandler为多个javabean结果处理集,为list类型
/**
* 查询返回多个javaBean的sql语句
*
* @param type 返回的对象类型
* @param sql 执行的sql语句
* @param args sql对应的参数值
* @param <T> 返回的类型的泛型
* @return 失败则返回null
*/
public <T> List<T> queryForList(Class<T> type, String sql, Object... args) {
Connection conn = JdbcUtils.getConnection();
try {
return queryRunner.query(conn, sql, new BeanListHandler<T>(type), args);
} catch (SQLException e) {
e.printStackTrace();
}finally{
JdbcUtils.close(conn);
}
return null;
}
2.3 执行返回一行一列的sq语句
ScalarHandler为标量结果处理集
/**
* 执行返回一行一列的sql语句
* @param sql sql语句
* @param args sql对应的参数
* @return
*/
public Object queryForSingleValue(String sql, Object... args) {
Connection conn = JdbcUtils.getConnection();
try {
return queryRunner.query(conn,sql, new ScalarHandler(), args);
} catch (Exception e) {
e.printStackTrace();
}finally {
JdbcUtils.close(conn);
}
return null;
}