类 Db
- java.lang.Object
-
- ai.yue.library.data.jdbc.client.DbBase
-
- ai.yue.library.data.jdbc.client.Db
-
-
字段概要
-
从类继承的字段 ai.yue.library.data.jdbc.client.DbBase
dialect, jdbcTemplate, namedParameterJdbcTemplate
-
-
构造器概要
构造器 构造器 说明 Db(DataSource dataSource)Db(org.springframework.jdbc.core.JdbcTemplate jdbcTemplate, org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate namedParameterJdbcTemplate, Dialect dialect)Db(org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate namedParameterJdbcTemplate)
-
方法概要
所有方法 实例方法 具体方法 已过时的方法 修饰符和类型 方法 说明 Dbclone()克隆Dblongdelete(String tableName, com.alibaba.fastjson.JSONObject paramJson)删除voiddelete(String tableName, Long id)删除voiddeleteBatch(String tableName, com.alibaba.fastjson.JSONObject[] paramJsons)删除-批量int[]deleteBatch2(String sql, com.alibaba.fastjson.JSONObject[] paramJsons)同 NamedParameterJdbcTemplate.batchUpdate(String, Map[])voiddeleteBatchLogic(String tableName, com.alibaba.fastjson.JSONObject[] paramJsons)删除-批量-逻辑的longdeleteLogic(String tableName, com.alibaba.fastjson.JSONObject paramJson)删除-逻辑的voiddeleteLogic(String tableName, Long id)删除-逻辑的voiddeleteSafe(String tableName, Long id)删除-安全的com.alibaba.fastjson.JSONObjectget(String tableName, com.alibaba.fastjson.JSONObject paramJson)绝对条件查询<T> Tget(String tableName, com.alibaba.fastjson.JSONObject paramJson, Class<T> mappedClass)绝对条件查询com.alibaba.fastjson.JSONObjectgetByBusinessUk(String tableName, Object businessUkValue)通过表业务键查询<T> TgetByBusinessUk(String tableName, Object businessUkValue, Class<T> mappedClass)通过表业务键查询com.alibaba.fastjson.JSONObjectgetById(String tableName, long id)通过表主键ID查询<T> TgetById(String tableName, Long id, Class<T> mappedClass)通过表ID查询(字段名=id,一般为表自增ID-主键)org.springframework.jdbc.support.rowset.SqlRowSetMetaDatagetMetaData(String tableName)获得表的元数据Longinsert(String tableName, com.alibaba.fastjson.JSONObject paramJson)向表中插入一条数据,主键默认为id时使用。voidinsertBatch(String tableName, com.alibaba.fastjson.JSONObject[] paramJsons)向表中批量插入数据,主键默认为id时使用。voidinsertNotReturn(String tableName, com.alibaba.fastjson.JSONObject paramJson)向表中插入一条数据LonginsertOrUpdate(String tableName, com.alibaba.fastjson.JSONObject paramJson, String[] conditions, DbUpdateEnum dBUpdateEnum)插入或更新LonginsertWithSortIdxAutoIncrement(String tableName, com.alibaba.fastjson.JSONObject paramJson, String... uniqueKeys)向表中插入一条数据,并自动递增 sort_idxbooleanisDataSize(String tableName, com.alibaba.fastjson.JSONObject paramJson)是否有数据BigDecimaljdbcQueryBigDecimal(String sql, Object... args)LongjdbcQueryBoolean(String sql, Object... args)DatejdbcQueryDate(String sql, Object... args)DoublejdbcQueryDouble(String sql, Object... args)com.alibaba.fastjson.JSONObjectjdbcQueryForJson(String sql, Object... args)JdbcTemplate.queryForMap(String, Object...)的安全查询方式List<com.alibaba.fastjson.JSONObject>jdbcQueryForList(String sql, Object... args)同JdbcTemplate.queryForList(String, Object...)IntegerjdbcQueryInt(String sql, Object... args)LocalDatejdbcQueryLocalDate(String sql, Object... args)LocalDateTimejdbcQueryLocalDateTime(String sql, Object... args)LongjdbcQueryLong(String sql, Object... args)NumberjdbcQueryNumber(String sql, Object... args)<T> TjdbcQueryObj(String sql, Class<T> requiredType, Object... args)执行以 '?'StringjdbcQueryStr(String sql, Object... args)List<com.alibaba.fastjson.JSONObject>list(String tableName, com.alibaba.fastjson.JSONObject paramJson)绝对条件查询List<com.alibaba.fastjson.JSONObject>list(String tableName, com.alibaba.fastjson.JSONObject paramJson, SortEnum sortEnum)绝对条件查询List<com.alibaba.fastjson.JSONObject>list(String tableName, com.alibaba.fastjson.JSONObject paramJson, DbSortEnum dBSortEnum)已过时。请使用:SortEnum<T> List<T>list(String tableName, com.alibaba.fastjson.JSONObject paramJson, Class<T> mappedClass)绝对条件查询<T> List<T>list(String tableName, com.alibaba.fastjson.JSONObject paramJson, Class<T> mappedClass, SortEnum sortEnum)绝对条件查询<T> List<T>list(String tableName, com.alibaba.fastjson.JSONObject paramJson, Class<T> mappedClass, DbSortEnum dBSortEnum)已过时。请使用:SortEnumList<com.alibaba.fastjson.JSONObject>listAll(String tableName)查询表中所有数据<T> List<T>listAll(String tableName, Class<T> mappedClass)查询表中所有数据PageVOpage(String tableName, PageIPO pageIPO)单表分页查询PageVOpage(String tableName, PageIPO pageIPO, SortEnum sortEnum)单表分页查询PageVOpage(String tableName, PageIPO pageIPO, DbSortEnum dBSortEnum)已过时。请使用:SortEnum<T> PageTVO<T>page(String tableName, PageIPO pageIPO, Class<T> mappedClass)单表分页查询<T> PageTVO<T>page(String tableName, PageIPO pageIPO, Class<T> mappedClass, SortEnum sortEnum)单表分页查询<T> PageTVO<T>page(String tableName, PageIPO pageIPO, Class<T> mappedClass, DbSortEnum dBSortEnum)已过时。请使用:SortEnumPageBeforeAndAfterVOpageBeforeAndAfter(String querySql, PageIPO pageIPO, Long equalsId)根据相同的列表条件,获得上一条与下一条数据PageVOpageSql(String querySql, PageIPO pageIPO)复杂SQL分页查询<T> PageTVO<T>pageSql(String querySql, PageIPO pageIPO, Class<T> mappedClass)复杂SQL分页查询PageVOpageSql(String countSql, String querySql, PageIPO pageIPO)复杂SQL分页查询<T> PageTVO<T>pageSql(String countSql, String querySql, PageIPO pageIPO, Class<T> mappedClass)复杂SQL分页查询PageVOpageWhere(String tableName, String whereSql, PageIPO pageIPO)单表分页查询<T> PageTVO<T>pageWhere(String tableName, String whereSql, PageIPO pageIPO, Class<T> mappedClass)单表分页查询com.alibaba.fastjson.JSONObjectqueryForJson(String sql, com.alibaba.fastjson.JSONObject paramJson)NamedParameterJdbcTemplate.queryForMap(String, Map) 的安全查询方式
指定SQL语句以创建预编译执行SQL和绑定查询参数,结果映射应该是一个单行查询否则结果为null。List<com.alibaba.fastjson.JSONObject>queryForList(String sql, com.alibaba.fastjson.JSONObject paramJson)同NamedParameterJdbcTemplate.queryForList(String, Map)
指定SQL语句以创建预编译执行SQL和绑定查询参数,结果映射应该是一个多行查询。<T> List<T>queryForList(String sql, com.alibaba.fastjson.JSONObject paramJson, Class<T> mappedClass)同 NamedParameterJdbcTemplate.queryForList(String, Map, Class)
指定SQL语句以创建预编译执行SQL和绑定查询参数,结果映射应该是一个多行查询。<T> TqueryForObject(String sql, com.alibaba.fastjson.JSONObject paramJson, Class<T> mappedClass)同 NamedParameterJdbcTemplate.queryForObject(String, Map, org.springframework.jdbc.core.RowMapper)org.springframework.jdbc.support.rowset.SqlRowSetqueryForRowSet(String sql, com.alibaba.fastjson.JSONObject paramJson)同 NamedParameterJdbcTemplate.queryForRowSet(String, Map)<T> TqueryObject(String sql, com.alibaba.fastjson.JSONObject paramJson, Class<T> mappedClass)同 NamedParameterJdbcTemplate.queryForObject(String, Map, Class)protected <T> PageTVO<T>toPageTVO(PageDTO pageDTO, Class<T> mappedClass)protected PageVOtoPageVO(PageDTO pageDTO)longupdate(String sql, com.alibaba.fastjson.JSONObject paramJson)同 NamedParameterJdbcTemplate.update(String, Map)
指定SQL语句以创建预编译执行SQL和绑定更新参数voidupdate(String sql, com.alibaba.fastjson.JSONObject paramJson, int expectedValue, DbExpectedEnum dBExpectedEnum)同 NamedParameterJdbcTemplate.update(String, Map)
指定SQL语句以创建预编译执行SQL和绑定更新参数voidupdate(String sql, com.alibaba.fastjson.JSONObject paramJson, int expectedValue, DbExpectedValueModeEnum dBExpectedValueModeEnum)已过时。请使用:DbExpectedEnumLongupdate(String tableName, com.alibaba.fastjson.JSONObject paramJson, String[] conditions)绝对条件更新优化SQL
相对条件更新优化SQL可参照如下编写:
UPDATE table
SET paramNumber1 = paramNumber1 - 1, ...
WHERE
id = :id
AND
paramNumber1 > 0
AND ...Longupdate(String tableName, com.alibaba.fastjson.JSONObject paramJson, String[] conditions, DbUpdateEnum dBUpdateEnum)绝对条件更新优化SQLvoidupdate(String tableName, com.alibaba.fastjson.JSONObject paramJson, String[] conditions, DbUpdateEnum dBUpdateEnum, int expectedValue, DbExpectedEnum dBExpectedEnum)绝对条件更新优化SQLvoidupdate(String tableName, com.alibaba.fastjson.JSONObject paramJson, String[] conditions, DbUpdateEnum dBUpdateEnum, int expectedValue, DbExpectedValueModeEnum dBExpectedValueModeEnum)已过时。请使用:DbExpectedEnumLongupdate(String sql, org.springframework.jdbc.core.namedparam.SqlParameterSource paramSource)更新或插入一条数据,主键默认为id时使用。org.springframework.jdbc.support.KeyHolderupdate(String sql, org.springframework.jdbc.core.namedparam.SqlParameterSource paramSource, org.springframework.jdbc.support.KeyHolder generatedKeyHolder)同 NamedParameterJdbcTemplate.update(String, SqlParameterSource, KeyHolder)
指定SQL语句以创建预编译执行SQL和绑定更新参数int[]updateBatch(String sql, com.alibaba.fastjson.JSONObject[] paramJsons)同 NamedParameterJdbcTemplate.batchUpdate(String, Map[])
指定SQL语句以创建预编译执行SQL和绑定更新参数voidupdateBatch(String tableName, com.alibaba.fastjson.JSONObject[] paramJsons, String[] conditions, DbUpdateEnum dBUpdateEnum)更新-批量voidupdateByBusinessUk(String tableName, com.alibaba.fastjson.JSONObject paramJson)更新-By业务键voidupdateByBusinessUk(String tableName, com.alibaba.fastjson.JSONObject[] paramJsons, DbUpdateEnum dBUpdateEnum)批量更新-By业务键voidupdateByBusinessUk(String tableName, com.alibaba.fastjson.JSONObject paramJson, DbUpdateEnum dBUpdateEnum)更新-By业务键voidupdateById(String tableName, com.alibaba.fastjson.JSONObject paramJson)更新-ByIdvoidupdateById(String tableName, com.alibaba.fastjson.JSONObject[] paramJsons, DbUpdateEnum dBUpdateEnum)批量更新-ByIdvoidupdateById(String tableName, com.alibaba.fastjson.JSONObject paramJson, DbUpdateEnum dBUpdateEnum)更新-ByIdvoidupdateSort(String tableName, Long id, Integer move, String... uniqueKeys)更新-排序-
从类继承的方法 ai.yue.library.data.jdbc.client.DbBase
isDataSize, isUpdateAndExpectedEqual, isUpdateAndExpectedGreaterThanEqual, paramToWhereSql, paramToWhereSql, paramValidate, paramValidate, paramValidate, paramValidate, paramValidate, paramValidate, paramValidate, paramValidate, resultToJson, resultToObject, updateAndExpectedEqual, updateAndExpectedGreaterThanEqual, updateBatchAndExpectedEqual
-
-
-
-
构造器详细资料
-
Db
public Db(DataSource dataSource)
-
Db
public Db(org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate namedParameterJdbcTemplate)
-
Db
public Db(org.springframework.jdbc.core.JdbcTemplate jdbcTemplate, org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate namedParameterJdbcTemplate, Dialect dialect)
-
-
方法详细资料
-
clone
public Db clone()
克隆Db适用于需要复制原有Db配置,并创建新的Db对象以进行修改配置等场景。
如:需要对操作的某个DAO单独配置
#setEnableDeleteQueryFilter(boolean)属性
-
insert
@Transactional public Long insert(String tableName, com.alibaba.fastjson.JSONObject paramJson)
向表中插入一条数据,主键默认为id时使用。- 参数:
tableName- 表名paramJson- 参数- 返回:
- 返回主键值
-
insertNotReturn
@Transactional public void insertNotReturn(String tableName, com.alibaba.fastjson.JSONObject paramJson)
向表中插入一条数据- 参数:
tableName- 表名paramJson- 参数
-
insertWithSortIdxAutoIncrement
@Transactional public Long insertWithSortIdxAutoIncrement(String tableName, com.alibaba.fastjson.JSONObject paramJson, @Nullable String... uniqueKeys)
向表中插入一条数据,并自动递增 sort_idx
使用条件:
1. id 默认为主键
2. sort_idx 默认为排序字段,类型为 int unsigned 。DDL示例:
`sort_idx` tinyint(2) UNSIGNED NOT NULL COMMENT '排序-索引'- 参数:
tableName- 表名paramJson- 插入数据uniqueKeys- 同sort_idx字段组合的唯一约束keys(表中不建议建立sort_idx字段的唯一约束,但可以建立普通索引,以便于提高查询性能),可选参数- 返回:
- 返回主键值
-
insertBatch
@Transactional public void insertBatch(String tableName, com.alibaba.fastjson.JSONObject[] paramJsons)
向表中批量插入数据,主键默认为id时使用。- 参数:
tableName- 表名paramJsons- 参数
-
insertOrUpdate
@Transactional public Long insertOrUpdate(String tableName, com.alibaba.fastjson.JSONObject paramJson, String[] conditions, DbUpdateEnum dBUpdateEnum)
插入或更新
表中必须存在数据唯一性约束更新触发条件:此数据若存在唯一性约束则更新,否则便执行插入数据
MySQL执行示例:
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(String tableName, Long id)
删除- 参数:
tableName- 表名id- 主键id
-
deleteSafe
public void deleteSafe(String tableName, Long id)
删除-安全的数据删除前会先进行条数确认
- 参数:
tableName- 表名id- 主键id
-
delete
@Transactional public long delete(String tableName, com.alibaba.fastjson.JSONObject paramJson)
删除- 参数:
tableName- 表名paramJson- 条件- 返回:
- 删除所影响的行数
-
deleteBatch
@Transactional public void deleteBatch(String tableName, com.alibaba.fastjson.JSONObject[] paramJsons)
删除-批量一组条件对应一条数据,并且每组条件都采用相同的key
- 参数:
tableName- 表名paramJsons- 条件数组
-
deleteBatch2
@Transactional public int[] deleteBatch2(String sql, com.alibaba.fastjson.JSONObject[] paramJsons)
同 NamedParameterJdbcTemplate.batchUpdate(String, Map[])
指定SQL语句以创建预编译执行SQL和绑定删除参数
示例:
DELETE FROM table WHERE id = :id- 参数:
sql- 要执行的删除SQLparamJsons- 删除所用到的条件数组- 返回:
- 一个数组,其中包含受批处理中每个更新影响的行数
-
deleteLogic
@Transactional public void deleteLogic(String tableName, Long id)
删除-逻辑的数据非真实删除,而是更改 "delete_time" 字段值为 true,代表数据已删除
- 参数:
tableName- 表名id- 主键id
-
deleteLogic
@Transactional public long deleteLogic(String tableName, com.alibaba.fastjson.JSONObject paramJson)
删除-逻辑的数据非真实删除,而是更改 "delete_time" 字段值为 true,代表数据已删除
- 参数:
tableName- 表名paramJson- 条件- 返回:
- 删除所影响的行数
-
deleteBatchLogic
@Transactional public void deleteBatchLogic(String tableName, com.alibaba.fastjson.JSONObject[] paramJsons)
删除-批量-逻辑的数据非真实删除,而是更改 "delete_time" 字段值为 true,代表数据已删除
一组条件对应一条数据,并且每组条件都采用相同的key
- 参数:
tableName- 表名paramJsons- 条件数组
-
update
@Transactional public org.springframework.jdbc.support.KeyHolder update(String sql, org.springframework.jdbc.core.namedparam.SqlParameterSource paramSource, org.springframework.jdbc.support.KeyHolder generatedKeyHolder)
同 NamedParameterJdbcTemplate.update(String, SqlParameterSource, KeyHolder)
指定SQL语句以创建预编译执行SQL和绑定更新参数- 参数:
sql- 要执行的更新SQLparamSource- 更新所用到的参数:MapSqlParameterSource,BeanPropertySqlParameterSource- 返回:
- 自动生成的键(可能由JDBC insert语句返回)。
-
update
@Transactional public Long update(String sql, org.springframework.jdbc.core.namedparam.SqlParameterSource paramSource)
更新或插入一条数据,主键默认为id时使用。- 参数:
sql- 更新或插入SQLparamSource- 更新所用到的参数:MapSqlParameterSource,BeanPropertySqlParameterSource- 返回:
- 更新的主键id值
-
update
@Transactional public long update(String sql, com.alibaba.fastjson.JSONObject paramJson)
同 NamedParameterJdbcTemplate.update(String, Map)
指定SQL语句以创建预编译执行SQL和绑定更新参数- 参数:
sql- 要执行的更新SQLparamJson- 更新所用到的参数- 返回:
- 受影响的行数
-
update
@Transactional public void update(String sql, com.alibaba.fastjson.JSONObject paramJson, int expectedValue, DbExpectedEnum dBExpectedEnum)
同 NamedParameterJdbcTemplate.update(String, Map)
指定SQL语句以创建预编译执行SQL和绑定更新参数将会对更新所影响的行数进行预期判断,若结果不符合预期值:expectedValue,那么此处便会抛出一个 DbException
- 参数:
sql- 要执行的更新SQLparamJson- 更新所用到的参数expectedValue- 更新所影响的行数预期值dBExpectedEnum- 预期值确认方式
-
update
@Deprecated @Transactional public void update(String sql, com.alibaba.fastjson.JSONObject paramJson, int expectedValue, DbExpectedValueModeEnum dBExpectedValueModeEnum)
已过时。请使用:DbExpectedEnum
-
updateBatch
@Transactional public int[] updateBatch(String sql, com.alibaba.fastjson.JSONObject[] paramJsons)
同 NamedParameterJdbcTemplate.batchUpdate(String, Map[])
指定SQL语句以创建预编译执行SQL和绑定更新参数- 参数:
sql- 要执行的更新SQLparamJsons- 更新所用到的参数数组- 返回:
- 一个数组,其中包含受批处理中每个更新影响的行数
-
update
@Transactional public Long update(String tableName, com.alibaba.fastjson.JSONObject paramJson, 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 Long update(String tableName, com.alibaba.fastjson.JSONObject paramJson, String[] conditions, DbUpdateEnum dBUpdateEnum)
绝对条件更新优化SQL- 参数:
tableName- 表名paramJson- 更新所用到的参数conditions- 作为更新条件的参数名,对应paramJson内的key(注意:作为条件的参数,将不会用于字段值的更新)dBUpdateEnum- 更新类型 DbUpdateEnum- 返回:
- 受影响的行数
-
update
@Transactional public void update(String tableName, com.alibaba.fastjson.JSONObject paramJson, String[] conditions, DbUpdateEnum dBUpdateEnum, int expectedValue, DbExpectedEnum dBExpectedEnum)
绝对条件更新优化SQL- 参数:
tableName- 表名paramJson- 更新所用到的参数conditions- 作为更新条件的参数名,对应paramJson内的key(注意:作为条件的参数,将不会用于字段值的更新)dBUpdateEnum- 更新类型 DbUpdateEnumexpectedValue- 更新所影响的行数预期值dBExpectedEnum- 预期值确认方式
-
update
@Deprecated @Transactional public void update(String tableName, com.alibaba.fastjson.JSONObject paramJson, String[] conditions, DbUpdateEnum dBUpdateEnum, int expectedValue, DbExpectedValueModeEnum dBExpectedValueModeEnum)
已过时。请使用:DbExpectedEnum
-
updateById
@Transactional public void updateById(String tableName, com.alibaba.fastjson.JSONObject paramJson)
更新-ById根据表中主键ID进行更新
- 参数:
tableName- 表名paramJson- 更新所用到的参数(包含主键ID字段)
-
updateById
@Transactional public void updateById(String tableName, com.alibaba.fastjson.JSONObject paramJson, DbUpdateEnum dBUpdateEnum)
更新-ById根据表中主键ID进行更新
- 参数:
tableName- 表名paramJson- 更新所用到的参数(包含主键ID字段)dBUpdateEnum- 更新类型 DbUpdateEnum
-
updateById
@Transactional public void updateById(String tableName, com.alibaba.fastjson.JSONObject[] paramJsons, DbUpdateEnum dBUpdateEnum)
批量更新-ById根据表中主键ID进行批量更新
- 参数:
tableName- 表名paramJsons- 更新所用到的参数数组(包含主键ID字段)dBUpdateEnum- 更新类型 DbUpdateEnum
-
updateByBusinessUk
@Transactional public void updateByBusinessUk(String tableName, com.alibaba.fastjson.JSONObject paramJson)
更新-By业务键根据表中业务键进行更新
默认业务键为key
业务键值推荐使用UUID5
- 参数:
tableName- 表名paramJson- 更新所用到的参数(包含业务键字段)
-
updateByBusinessUk
@Transactional public void updateByBusinessUk(String tableName, com.alibaba.fastjson.JSONObject paramJson, DbUpdateEnum dBUpdateEnum)
更新-By业务键根据表中业务键进行更新
默认业务键为key
业务键值推荐使用UUID5
- 参数:
tableName- 表名paramJson- 更新所用到的参数(包含业务键字段)dBUpdateEnum- 更新类型 DbUpdateEnum
-
updateByBusinessUk
@Transactional public void updateByBusinessUk(String tableName, com.alibaba.fastjson.JSONObject[] paramJsons, DbUpdateEnum dBUpdateEnum)
批量更新-By业务键根据表中业务键进行批量更新
默认业务键为key
业务键值推荐使用UUID5
- 参数:
tableName- 表名paramJsons- 更新所用到的参数数组(包含业务键字段)dBUpdateEnum- 更新类型 DbUpdateEnum
-
updateSort
@Transactional public void updateSort(String tableName, Long id, Integer move, @Nullable String... uniqueKeys)
更新-排序
使用限制:见 DbInsert.insertWithSortIdxAutoIncrement(String, JSONObject, String...)- 参数:
tableName- 表名id- 主键IDmove- sort_idx移动位数(值不可等于零,正整数表示:向后移动几位,负整数表示:向前移动几位)uniqueKeys- 同sort_idx字段组合的唯一约束keys(表中不建议建立sort_idx字段的唯一约束,但可以建立普通索引,以便于提高查询性能),可选参数
-
updateBatch
@Transactional public void updateBatch(String tableName, com.alibaba.fastjson.JSONObject[] paramJsons, String[] conditions, DbUpdateEnum dBUpdateEnum)
更新-批量一组条件对应一条数据,并且每组条件都采用相同的key
- 参数:
tableName- 表名paramJsons- 更新所用到的参数数组conditions- 作为更新条件的参数名,对应paramJson内的key(注意:作为条件的参数,将不会用于字段值的更新)dBUpdateEnum- 更新类型 DbUpdateEnum
-
queryObject
public <T> T queryObject(String sql, com.alibaba.fastjson.JSONObject paramJson, Class<T> mappedClass)
同 NamedParameterJdbcTemplate.queryForObject(String, Map, Class)指定SQL语句以创建预编译执行SQL和绑定查询参数,结果映射应该是一个单行查询否则结果为null。
- 类型参数:
T- 普通类型泛型- 参数:
sql- 要执行的SQL查询paramJson- 要绑定到查询的参数映射mappedClass- 结果对象期望匹配的普通类型- 返回:
- 所需普通类型的结果对象(如:Long, String, Boolean)或null
-
queryForJson
public com.alibaba.fastjson.JSONObject queryForJson(String sql, com.alibaba.fastjson.JSONObject paramJson)
NamedParameterJdbcTemplate.queryForMap(String, Map) 的安全查询方式
指定SQL语句以创建预编译执行SQL和绑定查询参数,结果映射应该是一个单行查询否则结果为null。- 参数:
sql- 要执行的SQL查询paramJson- 要绑定到查询的参数映射- 返回:
- JSON对象
-
queryForObject
public <T> T queryForObject(String sql, com.alibaba.fastjson.JSONObject paramJson, Class<T> mappedClass)
同 NamedParameterJdbcTemplate.queryForObject(String, Map, org.springframework.jdbc.core.RowMapper)
注:RowMapper 的实现为 BeanPropertyRowMapper指定SQL语句以创建预编译执行SQL和绑定查询参数,结果映射应该是一个单行查询否则结果为null。
- 类型参数:
T- JavaBean的泛型- 参数:
sql- 要执行的SQL查询paramJson- 要绑定到查询的参数映射mappedClass- POJO映射类- 返回:
- POJO对象
-
queryForRowSet
public org.springframework.jdbc.support.rowset.SqlRowSet queryForRowSet(String sql, com.alibaba.fastjson.JSONObject paramJson)
同 NamedParameterJdbcTemplate.queryForRowSet(String, Map)指定SQL语句以创建预编译执行SQL和绑定查询参数,结果集可用于方便的获取各种类型的数据。
- 参数:
sql- 要执行的SQL查询paramJson- 要绑定到查询的参数映射- 返回:
- 结果集可用于方便的获取各种类型的数据
-
queryForList
public List<com.alibaba.fastjson.JSONObject> queryForList(String sql, com.alibaba.fastjson.JSONObject paramJson)
同NamedParameterJdbcTemplate.queryForList(String, Map)
指定SQL语句以创建预编译执行SQL和绑定查询参数,结果映射应该是一个多行查询。- 参数:
sql- 要执行的查询SQLparamJson- 要绑定到查询的参数映射- 返回:
- 列表数据
-
queryForList
public <T> List<T> queryForList(String sql, com.alibaba.fastjson.JSONObject paramJson, Class<T> mappedClass)
同 NamedParameterJdbcTemplate.queryForList(String, Map, Class)
指定SQL语句以创建预编译执行SQL和绑定查询参数,结果映射应该是一个多行查询。- 类型参数:
T- 泛型- 参数:
sql- 要执行的查询SQLparamJson- 要绑定到查询的参数映射mappedClass- 映射类- 返回:
- 列表数据
-
isDataSize
public boolean isDataSize(String tableName, com.alibaba.fastjson.JSONObject paramJson)
是否有数据- 参数:
tableName- 表名paramJson- 查询参数- 返回:
- 是否有数据
-
getMetaData
public org.springframework.jdbc.support.rowset.SqlRowSetMetaData getMetaData(String tableName)
获得表的元数据检索元数据,即此行集合的列的数字、类型和属性。
- 参数:
tableName-- 返回:
-
getById
public com.alibaba.fastjson.JSONObject getById(String tableName, long id)
通过表主键ID查询- 参数:
tableName- 表名id- 表自增ID- 返回:
- JSON数据
-
getById
public <T> T getById(String tableName, Long id, Class<T> mappedClass)
通过表ID查询(字段名=id,一般为表自增ID-主键)- 类型参数:
T- 泛型- 参数:
tableName- 表名id- 主键IDmappedClass- 映射类- 返回:
- POJO对象
-
getByBusinessUk
public com.alibaba.fastjson.JSONObject getByBusinessUk(String tableName, Object businessUkValue)
通过表业务键查询默认业务键为key
业务键值推荐使用UUID5
- 参数:
tableName- 表名businessUkValue- 业务键的唯一值- 返回:
- JSON数据
-
getByBusinessUk
public <T> T getByBusinessUk(String tableName, Object businessUkValue, Class<T> mappedClass)
通过表业务键查询默认业务键为key
业务键值推荐使用UUID5
- 类型参数:
T- 泛型- 参数:
tableName- 表名businessUkValue- 业务键的唯一值mappedClass- 映射类- 返回:
- POJO对象
-
get
public com.alibaba.fastjson.JSONObject get(String tableName, com.alibaba.fastjson.JSONObject paramJson)
绝对条件查询- 参数:
tableName- 表名paramJson- 查询参数- 返回:
- JSON数据
-
get
public <T> T get(String tableName, com.alibaba.fastjson.JSONObject paramJson, Class<T> mappedClass)
绝对条件查询- 类型参数:
T- 泛型- 参数:
tableName- 表名paramJson- 查询参数mappedClass- 映射类- 返回:
- POJO对象
-
list
public List<com.alibaba.fastjson.JSONObject> list(String tableName, com.alibaba.fastjson.JSONObject paramJson)
绝对条件查询- 参数:
tableName- 表名paramJson- 查询参数- 返回:
- 列表数据
-
list
public <T> List<T> list(String tableName, com.alibaba.fastjson.JSONObject paramJson, Class<T> mappedClass)
绝对条件查询- 类型参数:
T- 泛型- 参数:
tableName- 表名paramJson- 查询参数mappedClass- 映射类- 返回:
- 列表数据
-
list
public List<com.alibaba.fastjson.JSONObject> list(String tableName, com.alibaba.fastjson.JSONObject paramJson, SortEnum sortEnum)
绝对条件查询- 参数:
tableName- 表名paramJson- 查询参数sortEnum- 排序方式- 返回:
- 列表数据
-
list
@Deprecated public List<com.alibaba.fastjson.JSONObject> list(String tableName, com.alibaba.fastjson.JSONObject paramJson, DbSortEnum dBSortEnum)
已过时。请使用:SortEnum
-
list
public <T> List<T> list(String tableName, com.alibaba.fastjson.JSONObject paramJson, Class<T> mappedClass, SortEnum sortEnum)
绝对条件查询- 类型参数:
T- 泛型- 参数:
tableName- 表名paramJson- 查询参数mappedClass- 映射类sortEnum- 排序方式- 返回:
- 列表数据
-
list
@Deprecated public <T> List<T> list(String tableName, com.alibaba.fastjson.JSONObject paramJson, Class<T> mappedClass, DbSortEnum dBSortEnum)
已过时。请使用:SortEnum
-
listAll
public List<com.alibaba.fastjson.JSONObject> listAll(String tableName)
查询表中所有数据- 参数:
tableName- 表名- 返回:
- 列表数据
-
listAll
public <T> List<T> listAll(String tableName, Class<T> mappedClass)
查询表中所有数据- 类型参数:
T- 泛型- 参数:
tableName- 表名mappedClass- 映射类- 返回:
- 列表数据
-
page
public PageVO page(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(String tableName, PageIPO pageIPO, 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(String tableName, PageIPO pageIPO, SortEnum sortEnum)
单表分页查询
阿里最优SQL示例:
SELECT a.* FROM 表 1 a, (select id from 表 1 where 条件 ORDER BY id LIMIT 100000,20 ) b where a.id=b.id
-
page
public PageVO page(String tableName, PageIPO pageIPO, DbSortEnum dBSortEnum)
已过时。请使用:SortEnum
-
page
public <T> PageTVO<T> page(String tableName, PageIPO pageIPO, Class<T> mappedClass, SortEnum sortEnum)
单表分页查询
阿里最优SQL示例:
SELECT a.* FROM 表 1 a, (select id from 表 1 where 条件 ORDER BY id LIMIT 100000,20 ) b where a.id=b.id
-
page
public <T> PageTVO<T> page(String tableName, PageIPO pageIPO, Class<T> mappedClass, DbSortEnum dBSortEnum)
已过时。请使用:SortEnum
-
pageWhere
public PageVO pageWhere(String tableName, 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(String tableName, String whereSql, PageIPO pageIPO, 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(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(String querySql, PageIPO pageIPO, 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 String countSql, 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 String countSql, String querySql, PageIPO pageIPO, 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(String querySql, PageIPO pageIPO, Long equalsId)
根据相同的列表条件,获得上一条与下一条数据- 参数:
querySql- 用于查询数据的sql语句pageIPO- 分页查询参数 PageIPOequalsId- 做比较的条件ID(将与查询结果的主键ID做比较)- 返回:
- PageBeforeAndAfterVO
-
jdbcQueryObj
public <T> T jdbcQueryObj(String sql, Class<T> requiredType, @Nullable Object... args)
执行以 '?' 作为参数占位符的SQL语句进行预期对象查询查询预期为单行/单列查询
返回的结果将直接映射到相应的对象类型
- 类型参数:
T- SQL语句中SELECT参数列的类型- 参数:
sql- SQL语句中可以包含一个或多个 '?' 参数占位符requiredType- 结果对象期望匹配的类型args- 查询参数,有序的对应SQL语句中的 '?' 参数占位符- 返回:
- 所需普通类型的结果对象(如:Long, String, Boolean)或null
-
jdbcQueryBigDecimal
public BigDecimal jdbcQueryBigDecimal(String sql, @Nullable Object... args)
-
jdbcQueryLocalDateTime
public LocalDateTime jdbcQueryLocalDateTime(String sql, @Nullable Object... args)
-
jdbcQueryForJson
public com.alibaba.fastjson.JSONObject jdbcQueryForJson(String sql, @Nullable Object... args)
JdbcTemplate.queryForMap(String, Object...)的安全查询方式执行以 '?' 作为参数占位符的SQL语句进行单行查询
查询预期应该是一个单行查询否则结果为null。
- 参数:
sql- SQL语句中可以包含一个或多个 '?' 参数占位符args- 查询参数,有序的对应SQL语句中的 '?' 参数占位符- 返回:
- Json对象
-
-