package org.theonefx.wcframework.jdbc.easyjsql; import java.util.List; import java.util.Map; import org.theonefx.wcframework.jdbc.RowMapper; import org.theonefx.wcframework.jdbc.core.BatchPreparedStatementSetter; import org.theonefx.wcframework.jdbc.core.KeyHolder; import org.theonefx.wcframework.jdbc.core.PreparedStatementCallback; import org.theonefx.wcframework.jdbc.core.PreparedStatementCreator; import org.theonefx.wcframework.jdbc.core.PreparedStatementSetter; import org.theonefx.wcframework.jdbc.core.ResultSetExtractor; import org.theonefx.wcframework.jdbc.core.RowCallbackHandler; import org.theonefx.wcframework.jdbc.core.StatementCallback; import org.theonefx.wcframework.jdbc.exception.DataAccessException; /** * @File : EasySql.java * @ClassName : EasySql * @Author : 陈曦 * @Date : 2011-6-22 下午08:03:56 * @Version : v1.0 * @Description : EasySQL,简单的sql执行器,仿CodeIgniter数据库封装实现的接口(也是api)<br> */ public interface EasySql { public EasySql join(String table, String on); public EasySql join(String table, String on, JoinType type); public EasySql select(String select); public EasySql from(String from); public EasySql where(String key, Object val); public EasySql where_greater(String key, Object val, boolean withequal); public EasySql where_lesser(String key, Object val, boolean withequal); public EasySql where_greater_equal(String key, Object val); public EasySql where_lesser_equal(String key, Object val); public EasySql where(Map<String, Object> map); public EasySql or_where(String key, Object val); public EasySql or_where(Map<String, Object> map); public EasySql where_in(String key, Object... objs); public EasySql or_where_in(String key, Object... objs); public EasySql where_not_in(String key, Object... objs); public EasySql or_where_not_in(String key, Object... objs); public EasySql like(String key, String val); public EasySql or_like(String key, String val); public EasySql like(Map<String, String> map); /** * @Method : limit * @author : 陈曦 * @date : 2011-9-29 下午03:09:09 * @Description : 分页条件 * @param start 启始记录数 * @param limit 需要查询的记录数 */ public EasySql limit(int start, int limit); public EasySql limit(int limit); public EasySql set(String key, Object val); public EasySql set(Map<String, Object> map); public EasySql setBean(Object bean); public EasySql orderBy(String fieldname, OrderType type); public EasySql orderBy(String fieldname); public EasySql clear(); // =================================================================execute触发,调用以下方法以后无法再继续链式操作了===================================================== public int execInsert(); public int execInsert(String table); public int execInsert(String table, Map<String, Object> map); public int execInsertBean(String table, Object bean); public int execDelete(); public int execDelete(String table); public int execDelete(String table, Map<String, Object> map); public int execUpdate(); public int execUpdate(String table); public int execUpdate(String table, Map<String, Object> map); public <T> List<T> getAsList(String table, RowMapper<T> mapper); public <T> List<T> getAsList(RowMapper<T> mapper); public <T> T getAsObject(RowMapper<T> mapper); public <T> T getAsObject(String table, RowMapper<T> mapper); public int getAllResultCount(String table); public int getAllResultCount(); // =================================================================直接操作jdbc===================================================== public <T> T execute(StatementCallback<T> action) throws DataAccessException; public void execute(final String sql) throws DataAccessException; public <T> T query(final String sql, final ResultSetExtractor<T> rse) throws DataAccessException; public void query(String sql, RowCallbackHandler rch) throws DataAccessException; public <T> List<T> query(String sql, RowMapper<T> rowMapper) throws DataAccessException; public Map<String, Object> queryForMap(String sql) throws DataAccessException; public <T> T queryForObject(String sql, RowMapper<T> rowMapper) throws DataAccessException; public <T> T queryForObject(String sql, Class<T> requiredType) throws DataAccessException; public long queryForLong(String sql) throws DataAccessException; public int queryForInt(String sql) throws DataAccessException; public <T> List<T> queryForList(String sql, Class<T> elementType) throws DataAccessException; public List<Map<String, Object>> queryForList(String sql) throws DataAccessException; public int update(final String sql) throws DataAccessException; public int[] batchUpdate(final String[] sql) throws DataAccessException; public int[] batchUpdate(String sql, final BatchPreparedStatementSetter pss) throws DataAccessException; public <T> T execute(PreparedStatementCreator psc, PreparedStatementCallback<T> action) throws DataAccessException; public <T> T execute(String sql, PreparedStatementCallback<T> action) throws DataAccessException; public <T> T query(PreparedStatementCreator psc, final PreparedStatementSetter pss, final ResultSetExtractor<T> rse) throws DataAccessException; public <T> T query(PreparedStatementCreator psc, ResultSetExtractor<T> rse) throws DataAccessException; public <T> T query(String sql, PreparedStatementSetter pss, ResultSetExtractor<T> rse) throws DataAccessException; public <T> T query(String sql, Object[] args, int[] argTypes, ResultSetExtractor<T> rse) throws DataAccessException; public <T> T query(String sql, Object[] args, ResultSetExtractor<T> rse) throws DataAccessException; public <T> T query(String sql, ResultSetExtractor<T> rse, Object... args) throws DataAccessException; public void query(PreparedStatementCreator psc, RowCallbackHandler rch) throws DataAccessException; public void query(String sql, PreparedStatementSetter pss, RowCallbackHandler rch) throws DataAccessException; public void query(String sql, Object[] args, int[] argTypes, RowCallbackHandler rch) throws DataAccessException; public void query(String sql, Object[] args, RowCallbackHandler rch) throws DataAccessException; public void query(String sql, RowCallbackHandler rch, Object... args) throws DataAccessException; public <T> List<T> query(PreparedStatementCreator psc, RowMapper<T> rowMapper) throws DataAccessException; public <T> List<T> query(String sql, PreparedStatementSetter pss, RowMapper<T> rowMapper) throws DataAccessException; public <T> List<T> query(String sql, Object[] args, int[] argTypes, RowMapper<T> rowMapper) throws DataAccessException; public <T> List<T> query(String sql, Object[] args, RowMapper<T> rowMapper) throws DataAccessException; public <T> List<T> query(String sql, RowMapper<T> rowMapper, Object... args) throws DataAccessException; public <T> T queryForObject(String sql, Object[] args, int[] argTypes, RowMapper<T> rowMapper) throws DataAccessException; public <T> T queryForObject(String sql, Object[] args, RowMapper<T> rowMapper) throws DataAccessException; public <T> T queryForObject(String sql, RowMapper<T> rowMapper, Object... args) throws DataAccessException; public <T> T queryForObject(String sql, Object[] args, int[] argTypes, Class<T> requiredType) throws DataAccessException; public <T> T queryForObject(String sql, Object[] args, Class<T> requiredType) throws DataAccessException; public <T> T queryForObject(String sql, Class<T> requiredType, Object... args) throws DataAccessException; public Map<String, Object> queryForMap(String sql, Object[] args, int[] argTypes) throws DataAccessException; public Map<String, Object> queryForMap(String sql, Object... args) throws DataAccessException; public long queryForLong(String sql, Object[] args, int[] argTypes) throws DataAccessException; public long queryForLong(String sql, Object... args) throws DataAccessException; public int queryForInt(String sql, Object[] args, int[] argTypes) throws DataAccessException; public int queryForInt(String sql, Object... args) throws DataAccessException; public <T> List<T> queryForList(String sql, Object[] args, int[] argTypes, Class<T> elementType) throws DataAccessException; public <T> List<T> queryForList(String sql, Object[] args, Class<T> elementType) throws DataAccessException; public <T> List<T> queryForList(String sql, Class<T> elementType, Object... args) throws DataAccessException; public List<Map<String, Object>> queryForList(String sql, Object[] args, int[] argTypes) throws DataAccessException; public List<Map<String, Object>> queryForList(String sql, Object... args) throws DataAccessException; public int update(PreparedStatementCreator psc) throws DataAccessException; public int update(final PreparedStatementCreator psc, final KeyHolder generatedKeyHolder) throws DataAccessException; public int update(String sql, PreparedStatementSetter pss) throws DataAccessException; public int update(String sql, Object[] args, int[] argTypes) throws DataAccessException; public int update(String sql, Object... args) throws DataAccessException; }