类 DB
- java.lang.Object
-
- ai.yue.library.data.jdbc.client.DB
-
public class DB extends java.lang.ObjectSQL优化型数据库操作
Created by sunJinChuan on 2016/6/6- 从以下版本开始:
- 0.0.1
-
-
字段概要
字段 修饰符和类型 字段 说明 protected org.springframework.jdbc.core.JdbcTemplatejdbcTemplateprotected org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplatenamedParameterJdbcTemplate
-
构造器概要
构造器 构造器 说明 DB(org.springframework.jdbc.core.JdbcTemplate jdbcTemplate, org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate namedParameterJdbcTemplate)
-
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 longdelete(java.lang.String tableName, com.alibaba.fastjson.JSONObject paramJson)删除voiddelete(java.lang.String tableName, java.lang.Long id)删除voiddeleteBatch(java.lang.String tableName, com.alibaba.fastjson.JSONObject[] paramJsons)删除-批量int[]deleteBatch2(java.lang.String sql, com.alibaba.fastjson.JSONObject[] paramJsons)同 NamedParameterJdbcTemplate.batchUpdate(String, Map[])java.lang.Longinsert(java.lang.String tableName, com.alibaba.fastjson.JSONObject paramJson)向表中插入一条数据,主键默认为id时使用。voidinsertBatch(java.lang.String tableName, com.alibaba.fastjson.JSONObject[] paramJsons)向表中批量插入数据,主键默认为id时使用。java.lang.LonginsertOrUpdate(java.lang.String tableName, com.alibaba.fastjson.JSONObject paramJson, java.lang.String[] conditions, DBUpdateEnum dBUpdateEnum)插入或更新java.lang.LonginsertWithSortIdxAutoIncrement(java.lang.String tableName, com.alibaba.fastjson.JSONObject paramJson, java.lang.String... uniqueKeys)向表中插入一条数据,并自动递增 sort_idxbooleanisDataSize(long dataSize)是否有数据booleanisUpdateAndExpectedEqual(long updateRowsNumber, int expectedValue)判断更新所影响的行数是否 等于 预期值booleanisUpdateAndExpectedGreaterThanEqual(long updateRowsNumber, int expectedValue)判断更新所影响的行数是否 大于等于 预期值PageVOpage(java.lang.String tableName, PageIPO pageIPO)单表分页查询PageVOpage(java.lang.String tableName, PageIPO pageIPO, DBSortEnum dBSortEnum)单表分页查询<T> PageTVO<T>page(java.lang.String tableName, PageIPO pageIPO, java.lang.Class<T> mappedClass)单表分页查询<T> PageTVO<T>page(java.lang.String tableName, PageIPO pageIPO, java.lang.Class<T> mappedClass, DBSortEnum dBSortEnum)单表分页查询PageBeforeAndAfterVOpageBeforeAndAfter(java.lang.String querySql, PageIPO pageIPO, java.lang.Long equalsId)根据相同的列表条件,获得上一条与下一条数据PageVOpageSql(java.lang.String querySql, PageIPO pageIPO)复杂SQL分页查询<T> PageTVO<T>pageSql(java.lang.String querySql, PageIPO pageIPO, java.lang.Class<T> mappedClass)复杂SQL分页查询PageVOpageSql(java.lang.String countSql, java.lang.String querySql, PageIPO pageIPO)复杂SQL分页查询<T> PageTVO<T>pageSql(java.lang.String countSql, java.lang.String querySql, PageIPO pageIPO, java.lang.Class<T> mappedClass)复杂SQL分页查询PageVOpageWhere(java.lang.String tableName, java.lang.String whereSql, PageIPO pageIPO)单表分页查询<T> PageTVO<T>pageWhere(java.lang.String tableName, java.lang.String whereSql, PageIPO pageIPO, java.lang.Class<T> mappedClass)单表分页查询java.lang.StringparamToWhereSql(com.alibaba.fastjson.JSONObject paramJson)绝对条件查询参数whereSql化protected java.lang.StringparamToWhereSql(com.alibaba.fastjson.JSONObject paramJson, java.lang.String... conditions)绝对条件查询参数whereSql化protected voidparamValidate(java.lang.String tableName)参数验证protected voidparamValidate(java.lang.String tableName, com.alibaba.fastjson.JSONObject paramJson)参数验证protected voidparamValidate(java.lang.String tableName, com.alibaba.fastjson.JSONObject[] paramJsons)参数验证protected voidparamValidate(java.lang.String tableName, com.alibaba.fastjson.JSONObject paramJson, java.lang.String[] conditions)参数验证protected voidparamValidate(java.lang.String tableName, java.lang.Long id)参数验证protected voidparamValidate(java.lang.String tableName, java.lang.Long id, java.lang.String[] fieldName)参数验证protected voidparamValidate(java.lang.String tableName, java.lang.String whereSql)参数验证java.util.List<com.alibaba.fastjson.JSONObject>query(java.lang.String tableName, com.alibaba.fastjson.JSONObject paramJson)绝对条件查询java.util.List<com.alibaba.fastjson.JSONObject>query(java.lang.String tableName, com.alibaba.fastjson.JSONObject paramJson, DBSortEnum dBSortEnum)绝对条件查询<T> java.util.List<T>query(java.lang.String tableName, com.alibaba.fastjson.JSONObject paramJson, java.lang.Class<T> mappedClass)绝对条件查询<T> java.util.List<T>query(java.lang.String tableName, com.alibaba.fastjson.JSONObject paramJson, java.lang.Class<T> mappedClass, DBSortEnum dBSortEnum)绝对条件查询java.util.List<com.alibaba.fastjson.JSONObject>queryAll(java.lang.String tableName)查询表中所有数据<T> java.util.List<T>queryAll(java.lang.String tableName, java.lang.Class<T> mappedClass)查询表中所有数据com.alibaba.fastjson.JSONObjectqueryById(java.lang.String tableName, long id)通过表主键ID查询<T> TqueryById(java.lang.String tableName, java.lang.Long id, java.lang.Class<T> mappedClass)通过表ID查询(字段名=id,一般为表自增ID-主键)com.alibaba.fastjson.JSONObjectqueryById(java.lang.String tableName, java.lang.Long id, java.lang.String... fieldName)通过表主键ID动态查询字段com.alibaba.fastjson.JSONObjectqueryForJson(java.lang.String sql, com.alibaba.fastjson.JSONObject paramJson)NamedParameterJdbcTemplate.queryForMap(String, Map) 的安全查询方式
指定SQL语句以创建预编译执行SQL和绑定查询参数,结果映射应该是一个单行查询否则结果为null。java.util.List<com.alibaba.fastjson.JSONObject>queryForList(java.lang.String sql, com.alibaba.fastjson.JSONObject paramJson)同NamedParameterJdbcTemplate.queryForList(String, Map)
指定SQL语句以创建预编译执行SQL和绑定查询参数,结果映射应该是一个多行查询。<T> java.util.List<T>queryForList(java.lang.String sql, com.alibaba.fastjson.JSONObject paramJson, java.lang.Class<T> mappedClass)同 NamedParameterJdbcTemplate.queryForList(String, Map, Class)
指定SQL语句以创建预编译执行SQL和绑定查询参数,结果映射应该是一个多行查询。<T> TqueryForObject(java.lang.String sql, com.alibaba.fastjson.JSONObject paramJson, java.lang.Class<T> mappedClass)同NamedParameterJdbcTemplate.queryForObject(String, Map, Class)
指定SQL语句以创建预编译执行SQL和绑定查询参数,结果映射应该是一个单行查询否则结果为null。com.alibaba.fastjson.JSONObjectresultToJson(java.util.List<com.alibaba.fastjson.JSONObject> list)同 DBQuery.queryForJson(String, JSONObject) 的安全查询结果获取<T> TresultToObject(java.util.List<T> list)同 DBQuery.queryForObject(String, JSONObject, Class) 的安全查询结果获取longupdate(java.lang.String sql, com.alibaba.fastjson.JSONObject paramJson)同 NamedParameterJdbcTemplate.update(String, Map)
指定SQL语句以创建预编译执行SQL和绑定更新参数voidupdate(java.lang.String sql, com.alibaba.fastjson.JSONObject paramJson, int expectedValue, DBExpectedValueModeEnum dBExpectedValueModeEnum)同 NamedParameterJdbcTemplate.update(String, Map)
指定SQL语句以创建预编译执行SQL和绑定更新参数java.lang.Longupdate(java.lang.String tableName, com.alibaba.fastjson.JSONObject paramJson, java.lang.String[] conditions)绝对条件更新优化SQL
相对条件更新优化SQL可参照如下编写:
UPDATE table
SET paramNumber1 = paramNumber1 - 1, ...
WHERE
id = :id
AND
paramNumber1 > 0
AND ...java.lang.Longupdate(java.lang.String tableName, com.alibaba.fastjson.JSONObject paramJson, java.lang.String[] conditions, DBUpdateEnum dBUpdateEnum)绝对条件更新优化SQLvoidupdate(java.lang.String tableName, com.alibaba.fastjson.JSONObject paramJson, java.lang.String[] conditions, DBUpdateEnum dBUpdateEnum, int expectedValue, DBExpectedValueModeEnum dBExpectedValueModeEnum)绝对条件更新优化SQLvoidupdateAndExpectedEqual(long updateRowsNumber, int expectedValue)判断更新所影响的行数是否 等于 预期值voidupdateAndExpectedGreaterThanEqual(long updateRowsNumber, int expectedValue)判断更新所影响的行数是否 大于等于 预期值int[]updateBatch(java.lang.String sql, com.alibaba.fastjson.JSONObject[] paramJsons)同 NamedParameterJdbcTemplate.batchUpdate(String, Map[])
指定SQL语句以创建预编译执行SQL和绑定更新参数voidupdateBatch(java.lang.String tableName, com.alibaba.fastjson.JSONObject[] paramJsons, java.lang.String[] conditions, DBUpdateEnum dBUpdateEnum)更新-批量voidupdateBatchAndExpectedEqual(int[] updateRowsNumberArray, int expectedValue)确认批量更新每组参数所影响的行数,是否 全部都等于 同一个预期值voidupdateById(java.lang.String tableName, com.alibaba.fastjson.JSONObject paramJson)更新-ByIdvoidupdateById(java.lang.String tableName, com.alibaba.fastjson.JSONObject[] paramJsons, DBUpdateEnum dBUpdateEnum)批量更新-ByIdvoidupdateById(java.lang.String tableName, com.alibaba.fastjson.JSONObject paramJson, DBUpdateEnum dBUpdateEnum)更新-ByIdvoidupdateSort(java.lang.String tableName, java.lang.Long id, java.lang.Integer move, java.lang.String... uniqueKeys)更新-排序
-
-
-
方法详细资料
-
insert
@Transactional public java.lang.Long insert(java.lang.String tableName, com.alibaba.fastjson.JSONObject paramJson)向表中插入一条数据,主键默认为id时使用。- 参数:
tableName- 表名paramJson- 参数- 返回:
- 返回主键值
-
insertWithSortIdxAutoIncrement
@Transactional public java.lang.Long insertWithSortIdxAutoIncrement(java.lang.String tableName, com.alibaba.fastjson.JSONObject paramJson, @Nullable java.lang.String... uniqueKeys)向表中插入一条数据,并自动递增 sort_idx
使用条件:
1. id 默认为主键
2. sort_idx 默认为排序字段
- 参数:
tableName- 表名paramJson- 插入数据uniqueKeys- 同sort_idx字段组合的唯一约束keys(表中不建议建立sort_idx字段的唯一约束,但可以建立普通索引,以便于提高查询性能),可选参数- 返回:
- 返回主键值
-
insertBatch
@Transactional public void insertBatch(java.lang.String tableName, com.alibaba.fastjson.JSONObject[] paramJsons)向表中批量插入数据,主键默认为id时使用。- 参数:
tableName- 表名paramJsons- 参数
-
insertOrUpdate
@Transactional public java.lang.Long insertOrUpdate(java.lang.String tableName, com.alibaba.fastjson.JSONObject paramJson, java.lang.String[] conditions, DBUpdateEnum dBUpdateEnum)插入或更新
表中必须存在数据唯一性约束更新触发条件:此数据若存在唯一性约束则更新,否则便执行插入数据
SQL示例:
INSERT INTO table (param1, param2, ...)
VALUES
(:param1, :param2, ...)
ON DUPLICATE KEY UPDATE
condition = condition + :condition, ...- 参数:
tableName- 表名paramJson- 插入或更新所用到的参数conditions- 更新条件(对应paramJson内的key值)dBUpdateEnum- 更新类型 DBUpdateEnum- 返回:
- 受影响的行数
-
delete
@Transactional public void delete(java.lang.String tableName, java.lang.Long id)删除- 参数:
tableName- 表名id- 主键id
-
delete
@Transactional public long delete(java.lang.String tableName, com.alibaba.fastjson.JSONObject paramJson)删除- 参数:
tableName- 表名paramJson- 条件- 返回:
- 删除所影响的行数
-
deleteBatch
@Transactional public void deleteBatch(java.lang.String tableName, com.alibaba.fastjson.JSONObject[] paramJsons)删除-批量一组条件对应一条数据,并且每组条件都采用相同的key
- 参数:
tableName- 表名paramJsons- 条件数组
-
deleteBatch2
@Transactional public int[] deleteBatch2(java.lang.String sql, com.alibaba.fastjson.JSONObject[] paramJsons)同 NamedParameterJdbcTemplate.batchUpdate(String, Map[])
指定SQL语句以创建预编译执行SQL和绑定删除参数
示例:
DELETE FROM table WHERE id = :id- 参数:
sql- 要执行的删除SQLparamJsons- 删除所用到的条件数组- 返回:
- 一个数组,其中包含受批处理中每个更新影响的行数
-
update
@Transactional public java.lang.Long update(java.lang.String tableName, com.alibaba.fastjson.JSONObject paramJson, java.lang.String[] conditions)绝对条件更新优化SQL
相对条件更新优化SQL可参照如下编写:
UPDATE table
SET paramNumber1 = paramNumber1 - 1, ...
WHERE
id = :id
AND
paramNumber1 > 0
AND ...- 参数:
tableName- 表名paramJson- 更新所用到的参数(where条件参数不会用于set值的更新)conditions- 作为更新条件的参数名,对应paramJson内的key(注意:作为条件的参数,将不会用于字段值的更新)- 返回:
- 受影响的行数
-
update
@Transactional public java.lang.Long update(java.lang.String tableName, com.alibaba.fastjson.JSONObject paramJson, java.lang.String[] conditions, DBUpdateEnum dBUpdateEnum)绝对条件更新优化SQL- 参数:
tableName- 表名paramJson- 更新所用到的参数conditions- 作为更新条件的参数名,对应paramJson内的key(注意:作为条件的参数,将不会用于字段值的更新)dBUpdateEnum- 更新类型 DBUpdateEnum- 返回:
- 受影响的行数
-
update
@Transactional public void update(java.lang.String tableName, com.alibaba.fastjson.JSONObject paramJson, java.lang.String[] conditions, DBUpdateEnum dBUpdateEnum, int expectedValue, DBExpectedValueModeEnum dBExpectedValueModeEnum)绝对条件更新优化SQL- 参数:
tableName- 表名paramJson- 更新所用到的参数conditions- 作为更新条件的参数名,对应paramJson内的key(注意:作为条件的参数,将不会用于字段值的更新)dBUpdateEnum- 更新类型 DBUpdateEnumexpectedValue- 更新所影响的行数预期值dBExpectedValueModeEnum- 预期值确认方式
-
update
@Transactional public long update(java.lang.String sql, com.alibaba.fastjson.JSONObject paramJson)同 NamedParameterJdbcTemplate.update(String, Map)
指定SQL语句以创建预编译执行SQL和绑定更新参数- 参数:
sql- 要执行的更新SQLparamJson- 更新所用到的参数- 返回:
- 受影响的行数
-
update
@Transactional public void update(java.lang.String sql, com.alibaba.fastjson.JSONObject paramJson, int expectedValue, DBExpectedValueModeEnum dBExpectedValueModeEnum)同 NamedParameterJdbcTemplate.update(String, Map)
指定SQL语句以创建预编译执行SQL和绑定更新参数将会对更新所影响的行数进行预期判断,若结果不符合预期值:expectedValue,那么此处便会抛出一个 DBException
- 参数:
sql- 要执行的更新SQLparamJson- 更新所用到的参数expectedValue- 更新所影响的行数预期值dBExpectedValueModeEnum- 预期值确认方式
-
updateById
@Transactional public void updateById(java.lang.String tableName, com.alibaba.fastjson.JSONObject paramJson)更新-ById根据表中主键ID进行更新
- 参数:
tableName- 表名paramJson- 更新所用到的参数(包含主键ID字段)
-
updateById
@Transactional public void updateById(java.lang.String tableName, com.alibaba.fastjson.JSONObject paramJson, DBUpdateEnum dBUpdateEnum)更新-ById根据表中主键ID进行更新
- 参数:
tableName- 表名paramJson- 更新所用到的参数(包含主键ID字段)dBUpdateEnum- 更新类型 DBUpdateEnum
-
updateById
@Transactional public void updateById(java.lang.String tableName, com.alibaba.fastjson.JSONObject[] paramJsons, DBUpdateEnum dBUpdateEnum)批量更新-ById根据表中主键ID进行批量更新
- 参数:
tableName- 表名paramJsons- 更新所用到的参数数组(包含主键ID字段)dBUpdateEnum- 更新类型 DBUpdateEnum
-
updateSort
@Transactional public void updateSort(java.lang.String tableName, java.lang.Long id, java.lang.Integer move, @Nullable java.lang.String... uniqueKeys)更新-排序
使用限制:见 DBInsert.insertWithSortIdxAutoIncrement(String, JSONObject, String...)- 参数:
tableName- 表名id- 主键IDmove- sort_idx移动位数(值不可等于零,正整数表示:向后移动几位,负整数表示:向前移动几位)uniqueKeys- 同sort_idx字段组合的唯一约束keys(表中不建议建立sort_idx字段的唯一约束,但可以建立普通索引,以便于提高查询性能),可选参数
-
updateBatch
@Transactional public void updateBatch(java.lang.String tableName, com.alibaba.fastjson.JSONObject[] paramJsons, java.lang.String[] conditions, DBUpdateEnum dBUpdateEnum)更新-批量一组条件对应一条数据,并且每组条件都采用相同的key
- 参数:
tableName- 表名paramJsons- 更新所用到的参数数组conditions- 作为更新条件的参数名,对应paramJson内的key(注意:作为条件的参数,将不会用于字段值的更新)dBUpdateEnum- 更新类型 DBUpdateEnum
-
updateBatch
@Transactional public int[] updateBatch(java.lang.String sql, com.alibaba.fastjson.JSONObject[] paramJsons)同 NamedParameterJdbcTemplate.batchUpdate(String, Map[])
指定SQL语句以创建预编译执行SQL和绑定更新参数- 参数:
sql- 要执行的更新SQLparamJsons- 更新所用到的参数数组- 返回:
- 一个数组,其中包含受批处理中每个更新影响的行数
-
query
public java.util.List<com.alibaba.fastjson.JSONObject> query(java.lang.String tableName, com.alibaba.fastjson.JSONObject paramJson)绝对条件查询- 参数:
tableName- 表名paramJson- 查询参数- 返回:
- 列表数据
-
query
public <T> java.util.List<T> query(java.lang.String tableName, com.alibaba.fastjson.JSONObject paramJson, java.lang.Class<T> mappedClass)绝对条件查询- 类型参数:
T- 泛型- 参数:
tableName- 表名paramJson- 查询参数mappedClass- 映射类- 返回:
- 列表数据
-
query
public java.util.List<com.alibaba.fastjson.JSONObject> query(java.lang.String tableName, com.alibaba.fastjson.JSONObject paramJson, DBSortEnum dBSortEnum)绝对条件查询- 参数:
tableName- 表名paramJson- 查询参数dBSortEnum- 排序方式- 返回:
- 列表数据
-
query
public <T> java.util.List<T> query(java.lang.String tableName, com.alibaba.fastjson.JSONObject paramJson, java.lang.Class<T> mappedClass, DBSortEnum dBSortEnum)绝对条件查询- 类型参数:
T- 泛型- 参数:
tableName- 表名paramJson- 查询参数mappedClass- 映射类dBSortEnum- 排序方式- 返回:
- 列表数据
-
queryById
public com.alibaba.fastjson.JSONObject queryById(java.lang.String tableName, long id)通过表主键ID查询- 参数:
tableName- 表名id- 表自增ID- 返回:
- JSON数据
-
queryById
public <T> T queryById(java.lang.String tableName, java.lang.Long id, java.lang.Class<T> mappedClass)通过表ID查询(字段名=id,一般为表自增ID-主键)- 类型参数:
T- 泛型- 参数:
tableName- 表名id- 主键IDmappedClass- 映射类- 返回:
- POJO对象
-
queryById
public com.alibaba.fastjson.JSONObject queryById(java.lang.String tableName, java.lang.Long id, java.lang.String... fieldName)通过表主键ID动态查询字段- 参数:
tableName- 表名id- 表自增IDfieldName- 字段名- 返回:
- JSON对象
-
queryAll
public java.util.List<com.alibaba.fastjson.JSONObject> queryAll(java.lang.String tableName)
查询表中所有数据- 参数:
tableName- 表名- 返回:
- 列表数据
-
queryAll
public <T> java.util.List<T> queryAll(java.lang.String tableName, java.lang.Class<T> mappedClass)查询表中所有数据- 类型参数:
T- 泛型- 参数:
tableName- 表名mappedClass- 映射类- 返回:
- 列表数据
-
queryForJson
public com.alibaba.fastjson.JSONObject queryForJson(java.lang.String sql, com.alibaba.fastjson.JSONObject paramJson)NamedParameterJdbcTemplate.queryForMap(String, Map) 的安全查询方式
指定SQL语句以创建预编译执行SQL和绑定查询参数,结果映射应该是一个单行查询否则结果为null。- 参数:
sql- 要执行的SQL查询paramJson- 要绑定到查询的参数映射- 返回:
- JSON对象
-
queryForObject
public <T> T queryForObject(java.lang.String sql, com.alibaba.fastjson.JSONObject paramJson, java.lang.Class<T> mappedClass)同NamedParameterJdbcTemplate.queryForObject(String, Map, Class)
指定SQL语句以创建预编译执行SQL和绑定查询参数,结果映射应该是一个单行查询否则结果为null。- 类型参数:
T- 泛型- 参数:
sql- 要执行的SQL查询paramJson- 要绑定到查询的参数映射mappedClass- 映射类- 返回:
- POJO对象
-
queryForList
public java.util.List<com.alibaba.fastjson.JSONObject> queryForList(java.lang.String sql, com.alibaba.fastjson.JSONObject paramJson)同NamedParameterJdbcTemplate.queryForList(String, Map)
指定SQL语句以创建预编译执行SQL和绑定查询参数,结果映射应该是一个多行查询。- 参数:
sql- 要执行的查询SQLparamJson- 要绑定到查询的参数映射- 返回:
- 列表数据
-
queryForList
public <T> java.util.List<T> queryForList(java.lang.String sql, com.alibaba.fastjson.JSONObject paramJson, java.lang.Class<T> mappedClass)同 NamedParameterJdbcTemplate.queryForList(String, Map, Class)
指定SQL语句以创建预编译执行SQL和绑定查询参数,结果映射应该是一个多行查询。- 类型参数:
T- 泛型- 参数:
sql- 要执行的查询SQLparamJson- 要绑定到查询的参数映射mappedClass- 映射类- 返回:
- 列表数据
-
page
public PageVO page(java.lang.String tableName, PageIPO pageIPO)
单表分页查询
阿里最优SQL示例:
SELECT a.* FROM 表 1 a, (select id from 表 1 where 条件 LIMIT 100000,20 ) b where a.id=b.id- 参数:
tableName- 表名pageIPO- 分页查询参数 PageIPO,所有的条件参数,都将以等于的形式进行SQL拼接- 返回:
- count(总数),data(分页列表数据)
-
page
public <T> PageTVO<T> page(java.lang.String tableName, PageIPO pageIPO, java.lang.Class<T> mappedClass)
单表分页查询
阿里最优SQL示例:
SELECT a.* FROM 表 1 a, (select id from 表 1 where 条件 LIMIT 100000,20 ) b where a.id=b.id- 类型参数:
T- 泛型- 参数:
tableName- 表名pageIPO- 分页查询参数 PageIPO,所有的条件参数,都将以等于的形式进行SQL拼接mappedClass- 映射类- 返回:
- count(总数),data(分页列表数据)
-
page
public PageVO page(java.lang.String tableName, PageIPO pageIPO, DBSortEnum dBSortEnum)
单表分页查询
阿里最优SQL示例:
SELECT a.* FROM 表 1 a, (select id from 表 1 where 条件 ORDER BY id LIMIT 100000,20 ) b where a.id=b.id- 参数:
tableName- 表名pageIPO- 分页查询参数 PageIPO,所有的条件参数,都将以等于的形式进行SQL拼接dBSortEnum- 排序方式 DBSortEnum- 返回:
- count(总数),data(分页列表数据)
-
page
public <T> PageTVO<T> page(java.lang.String tableName, PageIPO pageIPO, java.lang.Class<T> mappedClass, DBSortEnum dBSortEnum)
单表分页查询
阿里最优SQL示例:
SELECT a.* FROM 表 1 a, (select id from 表 1 where 条件 ORDER BY id LIMIT 100000,20 ) b where a.id=b.id- 类型参数:
T- 泛型- 参数:
tableName- 表名pageIPO- 分页查询参数 PageIPO,所有的条件参数,都将以等于的形式进行SQL拼接mappedClass- 映射类dBSortEnum- 排序方式 DBSortEnum- 返回:
- count(总数),data(分页列表数据)
-
pageWhere
public PageVO pageWhere(java.lang.String tableName, java.lang.String whereSql, PageIPO pageIPO)
单表分页查询
阿里最优SQL示例:
SELECT a.* FROM 表 1 a, (select id from 表 1 where 条件 LIMIT 100000,20 ) b where a.id=b.id- 参数:
tableName- 表名whereSql- 自定义WHERE语句,若此参数为空,那么所有的条件参数,都将以等于的形式进行SQL拼接。
SQL示例:WHERE 条件pageIPO- 分页查询参数 PageIPO- 返回:
- count(总数),data(分页列表数据)
-
pageWhere
public <T> PageTVO<T> pageWhere(java.lang.String tableName, java.lang.String whereSql, PageIPO pageIPO, java.lang.Class<T> mappedClass)
单表分页查询
阿里最优SQL示例:
SELECT a.* FROM 表 1 a, (select id from 表 1 where 条件 LIMIT 100000,20 ) b where a.id=b.id- 类型参数:
T- 泛型- 参数:
tableName- 表名whereSql- 自定义WHERE语句,若此参数为空,那么所有的条件参数,都将以等于的形式进行SQL拼接。
SQL示例:WHERE 条件pageIPO- 分页查询参数 PageIPOmappedClass- 映射类- 返回:
- count(总数),data(分页列表数据)
-
pageSql
public PageVO pageSql(java.lang.String querySql, PageIPO pageIPO)
复杂SQL分页查询
阿里最优查询SQL示例:
SELECT a.* FROM 表 1 a, (select id from 表 1 where 条件 LIMIT :page, :limit) b where a.id=b.id- 参数:
querySql- 用于查询数据的sql语句pageIPO- 分页查询参数 PageIPO- 返回:
- count(总数),data(分页列表数据)
-
pageSql
public <T> PageTVO<T> pageSql(java.lang.String querySql, PageIPO pageIPO, java.lang.Class<T> mappedClass)
复杂SQL分页查询
阿里最优查询SQL示例:
SELECT a.* FROM 表 1 a, (select id from 表 1 where 条件 LIMIT :page, :limit) b where a.id=b.id- 类型参数:
T- 泛型- 参数:
querySql- 用于查询数据的sql语句pageIPO- 分页查询参数 PageIPOmappedClass- 映射类- 返回:
- count(总数),data(分页列表数据)
-
pageSql
public PageVO pageSql(@Nullable java.lang.String countSql, java.lang.String querySql, PageIPO pageIPO)
复杂SQL分页查询
统计SQL示例:
SELECT count(*) count FROM 表 1 a, (select id from 表 1 where 条件) b where a.id=b.id
阿里最优查询SQL示例:
SELECT a.* FROM 表 1 a, (select id from 表 1 where 条件 LIMIT :page, :limit) b where a.id=b.id- 参数:
countSql- 用于统计总数的sql语句 (注意:count(*)必须拥有count别名) 同时countSql可以为null表示不统计 可选参数querySql- 用于查询数据的sql语句pageIPO- 分页查询参数 PageIPO- 返回:
- count(总数),data(分页列表数据)
-
pageSql
public <T> PageTVO<T> pageSql(@Nullable java.lang.String countSql, java.lang.String querySql, PageIPO pageIPO, java.lang.Class<T> mappedClass)
复杂SQL分页查询
统计SQL示例:
SELECT count(*) count FROM 表 1 a, (select id from 表 1 where 条件) b where a.id=b.id
阿里最优查询SQL示例:
SELECT a.* FROM 表 1 a, (select id from 表 1 where 条件 LIMIT :page, :limit) b where a.id=b.id- 类型参数:
T- 泛型- 参数:
countSql- 用于统计总数的sql语句 (注意:count(*)必须拥有count别名) 同时countSql可以为null表示不统计 可选参数querySql- 用于查询数据的sql语句pageIPO- 分页查询参数 PageIPOmappedClass- 映射类- 返回:
- count(总数),data(分页列表数据)
-
pageBeforeAndAfter
public PageBeforeAndAfterVO pageBeforeAndAfter(java.lang.String querySql, PageIPO pageIPO, java.lang.Long equalsId)
根据相同的列表条件,获得上一条与下一条数据- 参数:
querySql- 用于查询数据的sql语句pageIPO- 分页查询参数 PageIPOequalsId- 做比较的条件ID(将与查询结果的主键ID做比较)- 返回:
- PageBeforeAndAfterVO
-
isDataSize
public boolean isDataSize(long dataSize)
是否有数据- 参数:
dataSize- 数据大小- 返回:
- 是否 <= 0
-
isUpdateAndExpectedEqual
public boolean isUpdateAndExpectedEqual(long updateRowsNumber, int expectedValue)判断更新所影响的行数是否 等于 预期值若不是预期值,同时 updateRowsNumber > 0 那么将会抛出一个 DBException
- 参数:
updateRowsNumber- 更新所影响的行数expectedValue- 预期值- 返回:
- 是否 等于 预期值
-
isUpdateAndExpectedGreaterThanEqual
public boolean isUpdateAndExpectedGreaterThanEqual(long updateRowsNumber, int expectedValue)判断更新所影响的行数是否 大于等于 预期值若不是预期结果,同时 updateRowsNumber < expectedValue 那么将会抛出一个DBException
- 参数:
updateRowsNumber- 更新所影响的行数expectedValue- 预期值- 返回:
- 是否 大于等于 预期值
-
updateAndExpectedEqual
public void updateAndExpectedEqual(long updateRowsNumber, int expectedValue)判断更新所影响的行数是否 等于 预期值若不是预期值,那么将会抛出一个DBException
- 参数:
updateRowsNumber- 更新所影响的行数expectedValue- 预期值
-
updateAndExpectedGreaterThanEqual
public void updateAndExpectedGreaterThanEqual(long updateRowsNumber, int expectedValue)判断更新所影响的行数是否 大于等于 预期值若不是预期结果,那么将会抛出一个DBException
- 参数:
updateRowsNumber- 更新所影响的行数expectedValue- 预期值
-
updateBatchAndExpectedEqual
public void updateBatchAndExpectedEqual(int[] updateRowsNumberArray, int expectedValue)确认批量更新每组参数所影响的行数,是否 全部都等于 同一个预期值若不是预期值,那么将会抛出一个DBException
- 参数:
updateRowsNumberArray- 每组参数更新所影响的行数数组expectedValue- 预期值
-
resultToJson
public com.alibaba.fastjson.JSONObject resultToJson(java.util.List<com.alibaba.fastjson.JSONObject> list)
同 DBQuery.queryForJson(String, JSONObject) 的安全查询结果获取- 参数:
list- DBQuery.queryForList(String, JSONObject) 查询结果- 返回:
- JSON数据
-
resultToObject
public <T> T resultToObject(java.util.List<T> list)
同 DBQuery.queryForObject(String, JSONObject, Class) 的安全查询结果获取- 类型参数:
T- 泛型- 参数:
list- DBQuery.queryForList(String, JSONObject, Class) 查询结果- 返回:
- POJO对象
-
paramToWhereSql
protected java.lang.String paramToWhereSql(com.alibaba.fastjson.JSONObject paramJson, java.lang.String... conditions)绝对条件查询参数whereSql化已对 NULL 值进行特殊处理(IS NULL)
已对 List 类型值进行特殊处理(IN (?, ?))
结果示例:
WHERE 1 = 1
AND
param1 = :param1
AND
param2 IS NULL :param2
AND
param3 IN :param3
AND ...- 参数:
paramJson- 参数conditions- where条件(对应paramJson key)- 返回:
- whereSql
-
paramToWhereSql
public java.lang.String paramToWhereSql(com.alibaba.fastjson.JSONObject paramJson)
绝对条件查询参数whereSql化已对 NULL 值进行特殊处理(IS NULL)
已对 List 类型值进行特殊处理(IN (?, ?))
结果示例:
WHERE 1 = 1
AND
param1 = :param1
AND
param2 IS NULL :param2
AND
param3 IN :param3
AND ...- 参数:
paramJson- 参数- 返回:
- whereSql
-
paramValidate
protected void paramValidate(java.lang.String tableName)
参数验证- 参数:
tableName- 表名
-
paramValidate
protected void paramValidate(java.lang.String tableName, java.lang.String whereSql)参数验证- 参数:
tableName- 表名whereSql- 条件sql
-
paramValidate
protected void paramValidate(java.lang.String tableName, java.lang.Long id)参数验证- 参数:
tableName- 表名id- 主键ID
-
paramValidate
protected void paramValidate(java.lang.String tableName, java.lang.Long id, java.lang.String[] fieldName)参数验证- 参数:
tableName- 表名id- 主键IDfieldName- 字段名称
-
paramValidate
protected void paramValidate(java.lang.String tableName, com.alibaba.fastjson.JSONObject paramJson)参数验证- 参数:
tableName- 表名paramJson- 参数
-
paramValidate
protected void paramValidate(java.lang.String tableName, com.alibaba.fastjson.JSONObject[] paramJsons)参数验证- 参数:
tableName- 表名paramJsons- 参数数组
-
paramValidate
protected void paramValidate(java.lang.String tableName, com.alibaba.fastjson.JSONObject paramJson, java.lang.String[] conditions)参数验证- 参数:
tableName- 表名paramJson- 参数conditions- 条件(对应paramJson key)
-
-