/* * 系统名称: QuickBundle --> rmdemo * * 文件名称: org.quickbundle.project.common.service --> IRmCommonService.java * * 功能描述: * * 版本历史: * 2006-3-14 10:06:10 创建1.0.0版 (baixiaoyong) * */ package org.quickbundle.project.common.service; import java.util.List; import java.util.Map; import org.quickbundle.itf.IExecuteCode; import org.quickbundle.project.common.vo.RmCommonVo; import org.springframework.dao.DataAccessException; import org.springframework.jdbc.core.RowMapper; /** * 功能: 通用的JDBC方法,do开头的方法有特殊的业务含义,非do开头的转发JdbcTemplate * * @author 白小勇 */ public interface IRmCommonService { /** * 查询sql,返回RmcommonVo * * @param sql * @return */ public List<RmCommonVo> doQuery(String sql); /** * 通用的方法,返回自己控制的对象 * * @param sql 要执行的sql语句 * @param rowMapper 回调方法 * @return 自己控制的对象列表 */ public List query(String sql, RowMapper rowMapper); /** * 以size作为分页大小,取回第no页的记录 * 查询sql,返回RowMapper中自定义的对象 * * @param sql 要执行的sql语句 * @param rowMapper 回调方法 * @param no 当前页数 * @param size 每页记录数 * @return 对象列表 */ @SuppressWarnings("unchecked") public List<RmCommonVo> doQuery(String sql, int no, int size); /** * 从指定的startIndex作为第一条,获取size条记录 * * @param sql 要执行的sql语句 * @param rowMapper 回调方法 * @param startIndex 开始位置(第一条是1,第二条是2...) * @param size 获取的记录数 * @return 对象列表 */ @SuppressWarnings("unchecked") public List<RmCommonVo> doQueryStartIndex(String sql, int startIndex, int size); /** * 通用的方法,返回自己控制的对象 * * @param sql 要执行的sql语句 * @param rowMapper 回调方法 * @param no 当前页数 * @param size 每页记录数 * @return 自己控制的对象列表 */ public List doQuery(String sql, RowMapper rowMapper, int no, int size); /** * 从指定的startIndex作为第一条,获取size条记录 * * @param sql 要执行的sql语句 * @param rowMapper 回调方法 * @param startIndex 开始位置(第一条是1,第二条是2...) * @param size 获取的记录数 * @return 对象列表 */ public List doQueryStartIndex(String sql, RowMapper rowMapper, int startIndex, int size); /** * 查询sql,返回RmcommonVo,自动分页 * * @param sql SQL语句 * @return */ @SuppressWarnings("unchecked") public List<RmCommonVo> doQueryPage(String sql); /** * 通用的方法,返回自己控制的对象 * * @param sql 要执行的sql语句 * @param elementType 需要的类型 * @return 对象列表 * @throws DataAccessException */ public <T> List<T> queryForList(String sql, Class<T> elementType) throws DataAccessException; /** * 通用的方法,返回自己控制的对象 * * @param sql 要执行的sql语句 * @return 对象列表 * @throws DataAccessException */ public List<Map<String, Object>> queryForList(String sql) throws DataAccessException; /** * 通用的方法,返回自己控制的对象 * * @param sql 要执行的sql语句 * @param args ?对应的值 * @param argTypes ?对应的值的类型 * @param elementType 需要的类型 * @return 对象列表 * @throws DataAccessException */ public <T> List<T> queryForList(String sql, Object[] args, int[] argTypes, Class<T> elementType) throws DataAccessException; /** * 通用的方法,返回自己控制的对象 * * @param sql 要执行的sql语句 * @param args ?对应的值 * @param elementType 需要的类型 * @return 对象列表 * @throws DataAccessException */ public <T> List<T> queryForList(String sql, Object[] args, Class<T> elementType) throws DataAccessException; /** * 通用的方法,返回自己控制的对象 * * @param sql 要执行的sql语句 * @return RmCommonVo对象 */ public RmCommonVo doQueryForObject(String sql); /** * 通用的方法,返回自己控制的对象 * * @param sql 要执行的sql语句 * @param requiredType 需要的类型 * @return */ public <T> T queryForObject(String sql, Class<T> requiredType); /** * sql带?及参数,执行查询,返回T * * @param sql 要执行的sql语句 * @param args ?对应的值 * @param requiredType 需要的类型 * @return */ public <T> T queryForObject(String sql, Object[] args, Class<T> requiredType); /** * 通用的方法,返回自己控制的对象 * * @param sql 要执行的sql语句 * @param rowMapper 回调方法 * @return 自己控制的对象 */ public <T> T queryForObject(String sql, RowMapper<T> rowMapper); /** * 通用的方法,执行查询,返回int * * @param sql 要执行的sql语句 * @return 查询结果int */ public int doQueryForInt(String sql); /** * 执行查询,返回long * * @param sql 要执行的sql语句 * @return 查询结果long */ public long doQueryForLong(String sql); /** * 执行更新,返回更新的记录条数 * * @param sql 要执行的sql语句 * @return 更新记录条数 */ public int doUpdate(String sql); /** * 执行更新,带?及参数,返回更新的记录条数 * * @param sql 带 ?的SQL语句 * @param aObj ?对应的值 * @return */ public int doUpdate(String sql, Object[] aObj); /** * 执行批量更新sql,返回更新的记录条数 * * @param sql * @return */ public int[] doUpdateBatch(String[] sql); /** 执行批量更新,带?及参数,返回更新的记录条数 * @param sql 带 ?的SQL语句 * @param aObj ?对应的值 * @return */ public int[] doUpdateBatch(String sql, Object[][] aaObj); /** * 执行自定义定义代码,在一个事务中 * @param executeCode * @return */ public Object execute(IExecuteCode executeCode); /** * 查询sql语句,将第1列和第2列放入数组,结果集作为二维数组返回 * * @param sql select value, name from table1 * @return new String[count(*)][2] */ public String[][] paseToArrays(String sql); /** * 查询sql语句,rowMapper完成一维数组的创建,整个结果集作为二维数组返回 * * @param sql select value, name from table1 * @param rowMapper 创建一维数组的回调实现 * @return new String[count(*)][2] * @return */ @SuppressWarnings("unchecked") public String[][] paseToArrays(String sql, RowMapper rowMapper); }