Constructor and Description |
---|
Db(DataSource dataSource) |
Db(Dialect dialect) |
Modifier and Type | Method and Description |
---|---|
Db |
clone()
克隆Db
适用于需要复制原有Db配置,并创建新的Db对象以进行修改配置等场景
如:需要对操作的某个DAO单独配置
DbBase.getJdbcProperties() JdbcProperties#setEnableDeleteQueryFilter(boolean) 属性
|
long |
delete(String tableName,
com.alibaba.fastjson.JSONObject paramJson)
删除
|
void |
delete(String tableName,
Long id)
删除
|
void |
deleteBatch(String tableName,
com.alibaba.fastjson.JSONObject[] paramJsons)
删除-批量
|
int[] |
deleteBatch2(String sql,
com.alibaba.fastjson.JSONObject[] paramJsons)
删除-批量
|
void |
deleteBatchLogic(String tableName,
com.alibaba.fastjson.JSONObject[] paramJsons)
删除-批量-逻辑的
|
void |
deleteBatchLogicNotParamFormat(String tableName,
com.alibaba.fastjson.JSONObject[] paramJsons)
删除-批量-逻辑的(不调用
DbBase.paramFormat(JSONObject) 方法) |
void |
deleteBatchNotParamFormat(String tableName,
com.alibaba.fastjson.JSONObject[] paramJsons)
删除-批量
|
int[] |
deleteBatchNotParamFormat2(String sql,
com.alibaba.fastjson.JSONObject[] paramJsons)
删除-批量
|
void |
deleteByBusinessUk(String tableName,
String businessUkValue)
删除-通过表业务键
|
long |
deleteLogic(String tableName,
com.alibaba.fastjson.JSONObject paramJson)
删除-逻辑的
|
void |
deleteLogic(String tableName,
Long id)
删除-逻辑的
|
void |
deleteLogicByBusinessUk(String tableName,
String businessUkValue)
删除-逻辑的
|
void |
deleteSafe(String tableName,
Long id)
Deprecated.
|
com.alibaba.fastjson.JSONObject |
get(String tableName,
com.alibaba.fastjson.JSONObject paramJson)
单个-绝对条件查询
|
<T> T |
get(String tableName,
com.alibaba.fastjson.JSONObject paramJson,
Class<T> mappedClass)
单个-绝对条件查询
|
com.alibaba.fastjson.JSONObject |
getByBusinessUk(String tableName,
String businessUkValue)
单个-By业务键
|
<T> T |
getByBusinessUk(String tableName,
String businessUkValue,
Class<T> mappedClass)
单个-By业务键
|
com.alibaba.fastjson.JSONObject |
getById(String tableName,
long id)
单个-ById
|
<T> T |
getById(String tableName,
Long id,
Class<T> mappedClass)
单个-ById
|
long |
getCount(String tableName)
获得总数
|
org.springframework.jdbc.support.rowset.SqlRowSetMetaData |
getMetaData(String tableName)
获得表的元数据
|
Long |
insert(String tableName,
com.alibaba.fastjson.JSONObject paramJson)
插入一条数据,主键必须为有序
|
void |
insertBatch(String tableName,
com.alibaba.fastjson.JSONObject[] paramJsons)
批量插入数据,主键必须为有序
|
void |
insertBatchNotParamFormat(String tableName,
com.alibaba.fastjson.JSONObject[] paramJsons)
批量插入数据,主键必须为有序 (不调用
DbBase.paramFormat(JSONObject) 方法)。 |
void |
insertNotReturn(String tableName,
com.alibaba.fastjson.JSONObject paramJson)
插入一条数据
|
Long |
insertOrUpdate(String tableName,
com.alibaba.fastjson.JSONObject paramJson,
String[] conditions,
DbUpdateEnum dBUpdateEnum)
插入或更新
表中必须存在数据唯一性约束 |
Long |
insertWithSortIdxAutoIncrement(String tableName,
com.alibaba.fastjson.JSONObject paramJson,
String... uniqueKeys)
插入一条数据,并自动递增 sort_idx
使用条件:
|
boolean |
isDataSize(String tableName,
com.alibaba.fastjson.JSONObject paramJson)
Deprecated.
|
boolean |
isExistData(String tableName,
com.alibaba.fastjson.JSONObject paramJson)
是否有数据
|
BigDecimal |
jdbcQueryBigDecimal(String sql,
Object... args) |
Boolean |
jdbcQueryBoolean(String sql,
Object... args) |
Date |
jdbcQueryDate(String sql,
Object... args) |
Double |
jdbcQueryDouble(String sql,
Object... args) |
com.alibaba.fastjson.JSONObject |
jdbcQueryForJson(String sql,
Object... args)
查询一行数据
|
<T> List<T> |
jdbcQueryForList(String sql,
Class<T> mappedClass,
Object... args)
查询多行数据
|
List<com.alibaba.fastjson.JSONObject> |
jdbcQueryForList(String sql,
Object... args)
查询多行数据
|
<T> T |
jdbcQueryForObj(String sql,
Class<T> mappedClass,
Object... args)
查询一行数据
|
Integer |
jdbcQueryInt(String sql,
Object... args) |
LocalDate |
jdbcQueryLocalDate(String sql,
Object... args) |
LocalDateTime |
jdbcQueryLocalDateTime(String sql,
Object... args) |
Long |
jdbcQueryLong(String sql,
Object... args) |
Number |
jdbcQueryNumber(String sql,
Object... args) |
String |
jdbcQueryStr(String sql,
Object... args) |
List<com.alibaba.fastjson.JSONObject> |
list(String tableName,
com.alibaba.fastjson.JSONObject paramJson)
列表-绝对条件查询
|
<T> List<T> |
list(String tableName,
com.alibaba.fastjson.JSONObject paramJson,
Class<T> mappedClass)
列表-绝对条件查询
|
List<com.alibaba.fastjson.JSONObject> |
list(String tableName,
com.alibaba.fastjson.JSONObject paramJson,
SortEnum sortEnum)
列表-绝对条件查询
|
<T> List<T> |
list(String tableName,
com.alibaba.fastjson.JSONObject paramJson,
SortEnum sortEnum,
Class<T> mappedClass)
列表-绝对条件查询
|
List<com.alibaba.fastjson.JSONObject> |
listAll(String tableName)
列表-查询表中所有数据
|
<T> List<T> |
listAll(String tableName,
Class<T> mappedClass)
列表-查询表中所有数据
|
PageVO<com.alibaba.fastjson.JSONObject> |
page(String tableName,
PageIPO pageIPO)
单表分页查询
|
<T> PageVO<T> |
page(String tableName,
PageIPO pageIPO,
Class<T> mappedClass)
单表分页查询
|
PageVO<com.alibaba.fastjson.JSONObject> |
page(String tableName,
PageIPO pageIPO,
SortEnum sortEnum)
单表分页查询
|
<T> PageVO<T> |
page(String tableName,
PageIPO pageIPO,
SortEnum sortEnum,
Class<T> mappedClass)
单表分页查询
|
PageBeforeAndAfterVO |
pageBeforeAndAfter(String querySql,
PageIPO pageIPO,
Long equalsId)
根据相同的列表条件,获得上一条与下一条数据
|
PageVO<com.alibaba.fastjson.JSONObject> |
pageSql(String querySql,
PageIPO pageIPO)
复杂SQL分页查询
|
<T> PageVO<T> |
pageSql(String querySql,
PageIPO pageIPO,
Class<T> mappedClass)
复杂SQL分页查询
|
PageVO<com.alibaba.fastjson.JSONObject> |
pageSql(String countSql,
String querySql,
PageIPO pageIPO)
复杂SQL分页查询
|
<T> PageVO<T> |
pageSql(String countSql,
String querySql,
PageIPO pageIPO,
Class<T> mappedClass)
复杂SQL分页查询
|
PageVO<com.alibaba.fastjson.JSONObject> |
pageWhere(String tableName,
String whereSql,
PageIPO pageIPO)
单表分页查询
|
<T> PageVO<T> |
pageWhere(String tableName,
String whereSql,
PageIPO pageIPO,
Class<T> mappedClass)
单表分页查询
|
<T> T |
queryObject(String sql,
com.alibaba.fastjson.JSONObject paramJson,
Class<T> mappedClass)
Deprecated.
|
long |
update(String sql,
com.alibaba.fastjson.JSONObject paramJson)
更新数据
同 NamedParameterJdbcTemplate.update(String, Map) |
void |
update(String sql,
com.alibaba.fastjson.JSONObject paramJson,
int expectedValue,
DbExpectedEnum dBExpectedEnum)
更新数据
对 NamedParameterJdbcTemplate.update(String, Map) 方法的增强实现 将会对更新所影响的行数进行预期判断,若结果不符合预期值:expectedValue,那么此处便会抛出一个 DbException |
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 ... |
Long |
update(String tableName,
com.alibaba.fastjson.JSONObject paramJson,
String[] conditions,
DbUpdateEnum dBUpdateEnum)
绝对条件更新优化SQL
|
void |
update(String tableName,
com.alibaba.fastjson.JSONObject paramJson,
String[] conditions,
DbUpdateEnum dBUpdateEnum,
int expectedValue,
DbExpectedEnum dBExpectedEnum)
绝对条件更新优化SQL
|
Long |
update(String sql,
org.springframework.jdbc.core.namedparam.SqlParameterSource paramSource)
更新或插入数据,主键默认为id时使用。
|
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) |
int[] |
updateBatch(String sql,
com.alibaba.fastjson.JSONObject[] paramJsons)
对多组参数进行批量更新处理
同 NamedParameterJdbcTemplate.batchUpdate(String, Map[]) |
void |
updateBatch(String tableName,
com.alibaba.fastjson.JSONObject[] paramJsons,
String[] conditions,
DbUpdateEnum dBUpdateEnum)
更新-批量
|
int[] |
updateBatchNotParamFormat(String sql,
com.alibaba.fastjson.JSONObject[] paramJsons)
对多组参数进行批量更新处理
同 NamedParameterJdbcTemplate.batchUpdate(String, Map[]) |
void |
updateBatchNotParamFormat(String tableName,
com.alibaba.fastjson.JSONObject[] paramJsons,
String[] conditions,
DbUpdateEnum dBUpdateEnum)
更新-批量(不调用
DbBase.paramFormat(JSONObject) 方法) |
void |
updateByBusinessUk(String tableName,
com.alibaba.fastjson.JSONObject paramJson)
更新-By业务键
|
void |
updateByBusinessUk(String tableName,
com.alibaba.fastjson.JSONObject[] paramJsons,
DbUpdateEnum dBUpdateEnum)
批量更新-By业务键
|
void |
updateByBusinessUk(String tableName,
com.alibaba.fastjson.JSONObject paramJson,
DbUpdateEnum dBUpdateEnum)
更新-By业务键
|
void |
updateByBusinessUkNotParamFormat(String tableName,
com.alibaba.fastjson.JSONObject[] paramJsons,
DbUpdateEnum dBUpdateEnum)
批量更新-By业务键(不调用
DbBase.paramFormat(JSONObject) 方法) |
void |
updateById(String tableName,
com.alibaba.fastjson.JSONObject paramJson)
更新-ById
|
void |
updateById(String tableName,
com.alibaba.fastjson.JSONObject[] paramJsons,
DbUpdateEnum dBUpdateEnum)
批量更新-ById
|
void |
updateById(String tableName,
com.alibaba.fastjson.JSONObject paramJson,
DbUpdateEnum dBUpdateEnum)
更新-ById
|
void |
updateByIdNotParamFormat(String tableName,
com.alibaba.fastjson.JSONObject[] paramJsons,
DbUpdateEnum dBUpdateEnum)
批量更新-ById(不调用
DbBase.paramFormat(JSONObject) 方法) |
void |
updateSort(String tableName,
Long id,
Integer move,
String... uniqueKeys)
更新-排序
使用限制:见 DbInsert.insertWithSortIdxAutoIncrement(String, JSONObject, String...) |
protected String |
updateSqlBuild(String tableName,
com.alibaba.fastjson.JSONObject paramJson,
String[] conditions,
DbUpdateEnum dBUpdateEnum)
构建绝对条件更新优化SQL
|
aopAfter, aopAfter, aopAfter, aopBefore, aopBefore, audit, extractTables, getDataSource, getDeleteWhereSql, getJdbcProperties, getJdbcTemplate, getNamedParameterJdbcTemplate, getRowMapper, isDataSize, isUpdateAndExpectedEqual, isUpdateAndExpectedGreaterThanEqual, listResultToGetResult, paramFormat, paramToWhereSql, paramToWhereSql, paramValidate, paramValidate, paramValidate, paramValidate, paramValidate, paramValidate, paramValidate, paramValidate, queryForJson, queryForList, queryForList, queryForObject, queryForRowSet, resultToJson, resultToObject, setDataSource, updateAndExpectedEqual, updateAndExpectedGreaterThanEqual, updateBatchAndExpectedEqual
public Db(DataSource dataSource)
public Db(Dialect dialect)
public Db clone()
DbBase.getJdbcProperties()
JdbcProperties#setEnableDeleteQueryFilter(boolean)
属性@Transactional public Long insert(String tableName, com.alibaba.fastjson.JSONObject paramJson)
tableName
- 表名paramJson
- 参数@Transactional public void insertNotReturn(String tableName, com.alibaba.fastjson.JSONObject paramJson)
tableName
- 表名paramJson
- 参数@Transactional public Long insertWithSortIdxAutoIncrement(String tableName, com.alibaba.fastjson.JSONObject paramJson, @Nullable String... uniqueKeys)
使用条件:1. id 默认为主键2. sort_idx 默认为排序字段,类型为 int unsigned 。DDL示例:`sort_idx` tinyint(2) UNSIGNED NOT NULL COMMENT '排序-索引'
tableName
- 表名paramJson
- 插入数据uniqueKeys
- 同sort_idx字段组合的唯一约束keys(表中不建议建立sort_idx字段的唯一约束,但可以建立普通索引,以便于提高查询性能),可选参数public void insertBatch(String tableName, com.alibaba.fastjson.JSONObject[] paramJsons)
tableName
- 表名paramJsons
- 参数@Transactional public void insertBatchNotParamFormat(String tableName, com.alibaba.fastjson.JSONObject[] paramJsons)
DbBase.paramFormat(JSONObject)
方法)。tableName
- 表名paramJsons
- 参数@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@Transactional(rollbackFor={java.lang.RuntimeException.class,java.lang.Error.class}) public void delete(String tableName, Long id)
数据删除前会先进行条数确认
依赖于接口传入 参数时慎用此方法
,避免有序主键被遍历风险,造成数据越权行为。推荐使用 deleteByBusinessUk(String, String)
tableName
- 表名id
- 主键id@Deprecated public void deleteSafe(String tableName, Long id)
delete(String, Long)
数据删除前会先进行条数确认
tableName
- 表名id
- 主键id@Transactional(rollbackFor={java.lang.RuntimeException.class,java.lang.Error.class}) public void deleteByBusinessUk(String tableName, String businessUkValue)
数据删除前会先进行条数确认
默认业务键为key
业务键值推荐使用UUID5
tableName
- 表名businessUkValue
- 业务键的唯一值@Transactional(rollbackFor={java.lang.RuntimeException.class,java.lang.Error.class}) public long delete(String tableName, com.alibaba.fastjson.JSONObject paramJson)
tableName
- 表名paramJson
- 条件@Transactional public void deleteBatch(String tableName, com.alibaba.fastjson.JSONObject[] paramJsons)
一组条件对应一条数据,并且每组条件都采用相同的key
tableName
- 表名paramJsons
- 条件数组@Transactional public void deleteBatchNotParamFormat(String tableName, com.alibaba.fastjson.JSONObject[] paramJsons)
不调用 DbBase.paramFormat(JSONObject)
方法
一组条件对应一条数据,并且每组条件都采用相同的key
tableName
- 表名paramJsons
- 条件数组@Transactional public int[] deleteBatch2(String sql, com.alibaba.fastjson.JSONObject[] paramJsons)
同 NamedParameterJdbcTemplate.batchUpdate(String, Map[])
示例:DELETE FROM table WHERE id = :id
sql
- 要执行的删除SQLparamJsons
- 删除所用到的条件数组@Transactional public int[] deleteBatchNotParamFormat2(String sql, com.alibaba.fastjson.JSONObject[] paramJsons)
不调用 DbBase.paramFormat(JSONObject)
方法
同 NamedParameterJdbcTemplate.batchUpdate(String, Map[])
示例:DELETE FROM table WHERE id = :id
sql
- 要执行的删除SQLparamJsons
- 删除所用到的条件数组@Transactional public void deleteLogic(String tableName, Long id)
数据非真实删除,而是更改 字段值为时间戳,代表数据已删除
依赖于接口传入 参数时慎用此方法
,避免有序主键被遍历风险,造成数据越权行为。推荐使用 deleteLogicByBusinessUk(String, String)
tableName
- 表名id
- 主键id@Transactional public void deleteLogicByBusinessUk(String tableName, String businessUkValue)
数据非真实删除,而是更改 字段值为时间戳,代表数据已删除
tableName
- 表名businessUkValue
- 业务键的唯一值@Transactional public long deleteLogic(String tableName, com.alibaba.fastjson.JSONObject paramJson)
数据非真实删除,而是更改 字段值为时间戳,代表数据已删除
tableName
- 表名paramJson
- 条件@Transactional public void deleteBatchLogic(String tableName, com.alibaba.fastjson.JSONObject[] paramJsons)
数据非真实删除,而是更改 字段值为时间戳,代表数据已删除
一组条件对应一条数据,并且每组条件都采用相同的key
tableName
- 表名paramJsons
- 条件数组@Transactional public void deleteBatchLogicNotParamFormat(String tableName, com.alibaba.fastjson.JSONObject[] paramJsons)
DbBase.paramFormat(JSONObject)
方法)
数据非真实删除,而是更改 字段值为时间戳,代表数据已删除
一组条件对应一条数据,并且每组条件都采用相同的key
tableName
- 表名paramJsons
- 条件数组@Transactional public org.springframework.jdbc.support.KeyHolder update(String sql, org.springframework.jdbc.core.namedparam.SqlParameterSource paramSource, org.springframework.jdbc.support.KeyHolder generatedKeyHolder)
sql
- 要执行的更新SQLparamSource
- 更新所用到的参数:MapSqlParameterSource,BeanPropertySqlParameterSource@Transactional public Long update(String sql, org.springframework.jdbc.core.namedparam.SqlParameterSource paramSource)
sql
- 更新或插入SQLparamSource
- 更新所用到的参数:MapSqlParameterSource,BeanPropertySqlParameterSource@Transactional public long update(String sql, com.alibaba.fastjson.JSONObject paramJson)
sql
- 要执行的更新SQLparamJson
- 更新所用到的参数@Transactional public void update(String sql, com.alibaba.fastjson.JSONObject paramJson, int expectedValue, DbExpectedEnum dBExpectedEnum)
sql
- 要执行的更新SQLparamJson
- 更新所用到的参数expectedValue
- 更新所影响的行数预期值dBExpectedEnum
- 预期值确认方式@Transactional public int[] updateBatch(String sql, com.alibaba.fastjson.JSONObject[] paramJsons)
sql
- 要执行的更新SQLparamJsons
- 更新所用到的参数数组@Transactional public int[] updateBatchNotParamFormat(String sql, com.alibaba.fastjson.JSONObject[] paramJsons)
sql
- 要执行的更新SQLparamJsons
- 更新所用到的参数数组(不调用 DbBase.paramFormat(JSONObject)
方法)protected String updateSqlBuild(String tableName, com.alibaba.fastjson.JSONObject paramJson, String[] conditions, DbUpdateEnum dBUpdateEnum)
tableName
- 表名paramJson
- 更新所用到的参数conditions
- 作为更新条件的参数名,对应paramJson内的key(注意:作为条件的参数,将不会用于字段值的更新)dBUpdateEnum
- 更新类型 DbUpdateEnum@Transactional public Long update(String tableName, com.alibaba.fastjson.JSONObject paramJson, String[] conditions)
UPDATE table
SET paramNumber1 = paramNumber1 - 1, ...
WHERE
id = :id
AND
paramNumber1 > 0
AND ...
tableName
- 表名paramJson
- 更新所用到的参数(where条件参数不会用于set值的更新)conditions
- 作为更新条件的参数名,对应paramJson内的key(注意:作为条件的参数,将不会用于字段值的更新)@Transactional public Long update(String tableName, com.alibaba.fastjson.JSONObject paramJson, String[] conditions, DbUpdateEnum dBUpdateEnum)
tableName
- 表名paramJson
- 更新所用到的参数conditions
- 作为更新条件的参数名,对应paramJson内的key(注意:作为条件的参数,将不会用于字段值的更新)dBUpdateEnum
- 更新类型 DbUpdateEnum@Transactional public void update(String tableName, com.alibaba.fastjson.JSONObject paramJson, String[] conditions, DbUpdateEnum dBUpdateEnum, int expectedValue, DbExpectedEnum dBExpectedEnum)
tableName
- 表名paramJson
- 更新所用到的参数conditions
- 作为更新条件的参数名,对应paramJson内的key(注意:作为条件的参数,将不会用于字段值的更新)dBUpdateEnum
- 更新类型 DbUpdateEnumexpectedValue
- 更新所影响的行数预期值dBExpectedEnum
- 预期值确认方式@Transactional public void updateById(String tableName, com.alibaba.fastjson.JSONObject paramJson)
根据表中主键ID进行更新
依赖于接口传入 参数时慎用此方法
,避免有序主键被遍历风险,造成数据越权行为。推荐使用 updateByBusinessUk(String, JSONObject)
tableName
- 表名paramJson
- 更新所用到的参数(包含主键ID字段)@Transactional public void updateById(String tableName, com.alibaba.fastjson.JSONObject paramJson, DbUpdateEnum dBUpdateEnum)
根据表中主键ID进行更新
依赖于接口传入 参数时慎用此方法
,避免有序主键被遍历风险,造成数据越权行为。推荐使用 updateByBusinessUk(String, JSONObject, DbUpdateEnum)
tableName
- 表名paramJson
- 更新所用到的参数(包含主键ID字段)dBUpdateEnum
- 更新类型 DbUpdateEnum@Transactional public void updateById(String tableName, com.alibaba.fastjson.JSONObject[] paramJsons, DbUpdateEnum dBUpdateEnum)
根据表中主键ID进行批量更新
依赖于接口传入 参数时慎用此方法
,避免有序主键被遍历风险,造成数据越权行为。推荐使用 updateByBusinessUk(String, JSONObject[], DbUpdateEnum)
tableName
- 表名paramJsons
- 更新所用到的参数数组(包含主键ID字段)dBUpdateEnum
- 更新类型 DbUpdateEnum@Transactional public void updateByIdNotParamFormat(String tableName, com.alibaba.fastjson.JSONObject[] paramJsons, DbUpdateEnum dBUpdateEnum)
DbBase.paramFormat(JSONObject)
方法)
根据表中主键ID进行批量更新
依赖于接口传入 参数时慎用此方法
,避免有序主键被遍历风险,造成数据越权行为。推荐使用 updateByBusinessUkNotParamFormat(String, JSONObject[], DbUpdateEnum)
tableName
- 表名paramJsons
- 更新所用到的参数数组(包含主键ID字段)dBUpdateEnum
- 更新类型 DbUpdateEnum@Transactional public void updateByBusinessUk(String tableName, com.alibaba.fastjson.JSONObject paramJson)
根据表中业务键进行更新
默认业务键为key
业务键值推荐使用UUID5
tableName
- 表名paramJson
- 更新所用到的参数(包含业务键字段)@Transactional public void updateByBusinessUk(String tableName, com.alibaba.fastjson.JSONObject paramJson, DbUpdateEnum dBUpdateEnum)
根据表中业务键进行更新
默认业务键为key
业务键值推荐使用UUID5
tableName
- 表名paramJson
- 更新所用到的参数(包含业务键字段)dBUpdateEnum
- 更新类型 DbUpdateEnum@Transactional public void updateByBusinessUk(String tableName, com.alibaba.fastjson.JSONObject[] paramJsons, DbUpdateEnum dBUpdateEnum)
根据表中业务键进行批量更新
默认业务键为key
业务键值推荐使用UUID5
tableName
- 表名paramJsons
- 更新所用到的参数数组(包含业务键字段)dBUpdateEnum
- 更新类型 DbUpdateEnum@Transactional public void updateByBusinessUkNotParamFormat(String tableName, com.alibaba.fastjson.JSONObject[] paramJsons, DbUpdateEnum dBUpdateEnum)
tableName
- 表名paramJsons
- 更新所用到的参数数组(包含业务键字段)dBUpdateEnum
- 更新类型 DbUpdateEnum@Transactional public void updateSort(String tableName, Long id, Integer move, @Nullable String... uniqueKeys)
tableName
- 表名id
- 主键IDmove
- sort_idx移动位数(值不可等于零,正整数表示:向后移动几位,负整数表示:向前移动几位)uniqueKeys
- 同sort_idx字段组合的唯一约束keys(表中不建议建立sort_idx字段的唯一约束,但可以建立普通索引,以便于提高查询性能),可选参数public void updateBatch(String tableName, com.alibaba.fastjson.JSONObject[] paramJsons, String[] conditions, DbUpdateEnum dBUpdateEnum)
一组条件对应一条数据,并且每组条件都采用相同的key
tableName
- 表名paramJsons
- 更新所用到的参数数组conditions
- 作为更新条件的参数名,对应paramJson内的key(注意:作为条件的参数,将不会用于字段值的更新)dBUpdateEnum
- 更新类型 DbUpdateEnum@Transactional(rollbackFor={java.lang.RuntimeException.class,java.lang.Error.class}) public void updateBatchNotParamFormat(String tableName, com.alibaba.fastjson.JSONObject[] paramJsons, String[] conditions, DbUpdateEnum dBUpdateEnum)
DbBase.paramFormat(JSONObject)
方法)
一组条件对应一条数据,并且每组条件都采用相同的key
tableName
- 表名paramJsons
- 更新所用到的参数数组conditions
- 作为更新条件的参数名,对应paramJson内的key(注意:作为条件的参数,将不会用于字段值的更新)dBUpdateEnum
- 更新类型 DbUpdateEnum@Deprecated public <T> T queryObject(String sql, com.alibaba.fastjson.JSONObject paramJson, Class<T> mappedClass)
指定SQL语句以创建预编译执行SQL和绑定查询参数,结果映射应该是一个单行查询否则结果为null。
sql
- 要执行的SQL查询paramJson
- 要绑定到查询的参数映射mappedClass
- 结果对象期望匹配的普通类型@Deprecated public boolean isDataSize(String tableName, com.alibaba.fastjson.JSONObject paramJson)
tableName
- 表名paramJson
- 查询参数public boolean isExistData(String tableName, com.alibaba.fastjson.JSONObject paramJson)
tableName
- 表名paramJson
- 查询参数public org.springframework.jdbc.support.rowset.SqlRowSetMetaData getMetaData(String tableName)
检索元数据,即此行集合的列的数字、类型和属性。
tableName
- 表名public long getCount(String tableName)
tableName
- 表名public com.alibaba.fastjson.JSONObject getById(String tableName, long id)
字段名=id,一般为表自增ID-主键
依赖于接口传入 参数时慎用此方法
,避免有序主键被遍历风险,造成数据越权行为。推荐使用 getByBusinessUk(String, String)
tableName
- 表名id
- 主键IDpublic <T> T getById(String tableName, Long id, Class<T> mappedClass)
字段名=id,一般为表自增ID-主键
依赖于接口传入 参数时慎用此方法
,避免有序主键被遍历风险,造成数据越权行为。推荐使用 getByBusinessUk(String, String, Class)
tableName
- 表名id
- 主键IDmappedClass
- 查询结果映射类型,支持JavaBean与简单类型(如:Long, String, Boolean)public com.alibaba.fastjson.JSONObject getByBusinessUk(String tableName, String businessUkValue)
默认业务键为key
业务键值推荐使用UUID5
tableName
- 表名businessUkValue
- 业务键的唯一值public <T> T getByBusinessUk(String tableName, String businessUkValue, Class<T> mappedClass)
默认业务键为key
业务键值推荐使用UUID5
tableName
- 表名businessUkValue
- 业务键的唯一值mappedClass
- 查询结果映射类型,支持JavaBean与简单类型(如:Long, String, Boolean)public com.alibaba.fastjson.JSONObject get(String tableName, com.alibaba.fastjson.JSONObject paramJson)
tableName
- 表名paramJson
- 查询参数public <T> T get(String tableName, com.alibaba.fastjson.JSONObject paramJson, Class<T> mappedClass)
tableName
- 表名paramJson
- 查询参数mappedClass
- 查询结果映射类型,支持JavaBean与简单类型(如:Long, String, Boolean)public List<com.alibaba.fastjson.JSONObject> list(String tableName, com.alibaba.fastjson.JSONObject paramJson)
tableName
- 表名paramJson
- 查询参数public <T> List<T> list(String tableName, com.alibaba.fastjson.JSONObject paramJson, Class<T> mappedClass)
T
- 泛型tableName
- 表名paramJson
- 查询参数mappedClass
- 映射类public List<com.alibaba.fastjson.JSONObject> list(String tableName, com.alibaba.fastjson.JSONObject paramJson, SortEnum sortEnum)
tableName
- 表名paramJson
- 查询参数sortEnum
- 排序方式public <T> List<T> list(String tableName, com.alibaba.fastjson.JSONObject paramJson, SortEnum sortEnum, Class<T> mappedClass)
T
- 泛型tableName
- 表名paramJson
- 查询参数sortEnum
- 排序方式mappedClass
- 映射类public List<com.alibaba.fastjson.JSONObject> listAll(String tableName)
tableName
- 表名public <T> List<T> listAll(String tableName, Class<T> mappedClass)
T
- 泛型tableName
- 表名mappedClass
- 映射类public PageVO<com.alibaba.fastjson.JSONObject> 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拼接public <T> PageVO<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
- 映射类public PageVO<com.alibaba.fastjson.JSONObject> 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
public <T> PageVO<T> page(String tableName, PageIPO pageIPO, SortEnum sortEnum, Class<T> mappedClass)
阿里最优SQL示例:
SELECT a.* FROM 表1 a, (select id from 表1 where 条件 ORDER BY id LIMIT 100000,20 ) b where a.id=b.id
public PageVO<com.alibaba.fastjson.JSONObject> 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拼接。 WHERE 条件
pageIPO
- 分页查询参数 PageIPOpublic <T> PageVO<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拼接。 WHERE 条件
pageIPO
- 分页查询参数 PageIPOmappedClass
- 映射类public PageVO<com.alibaba.fastjson.JSONObject> pageSql(String querySql, PageIPO pageIPO)
阿里最优查询SQL示例:
SELECT a.* FROM 表1 a, (select id from 表1 where 条件 LIMIT :page, :limit) b where a.id=b.id
querySql
- 用于查询数据的sql语句pageIPO
- 分页查询参数 PageIPOpublic <T> PageVO<T> pageSql(String querySql, PageIPO pageIPO, Class<T> mappedClass)
阿里最优查询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
- 映射类public PageVO<com.alibaba.fastjson.JSONObject> pageSql(@Nullable String countSql, String querySql, PageIPO pageIPO)
统计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
- 分页查询参数 PageIPOpublic <T> PageVO<T> pageSql(@Nullable String countSql, String querySql, PageIPO pageIPO, Class<T> mappedClass)
统计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
- 映射类public PageBeforeAndAfterVO pageBeforeAndAfter(String querySql, PageIPO pageIPO, Long equalsId)
querySql
- 用于查询数据的sql语句pageIPO
- 分页查询参数 PageIPOequalsId
- 做比较的条件ID(将与查询结果的主键ID做比较)public List<com.alibaba.fastjson.JSONObject> jdbcQueryForList(String sql, @Nullable Object... args)
同 JdbcTemplate.queryForList(String, Object...)
执行以 '?' 作为参数占位符的SQL语句进行列表查询
sql
- SQL语句中可以包含一个或多个 '?' 参数占位符args
- 查询参数,有序的对应SQL语句中的 '?' 参数占位符public <T> List<T> jdbcQueryForList(String sql, Class<T> mappedClass, @Nullable Object... args)
对 JdbcTemplate.queryForList(String, Class, Object...)
方法的优化实现
执行以 '?' 作为参数占位符的SQL语句进行列表查询
sql
- SQL语句中可以包含一个或多个 '?' 参数占位符mappedClass
- 查询结果映射类型,支持JavaBean与简单类型(如:Long, String, Boolean)args
- 查询参数,有序的对应SQL语句中的 '?' 参数占位符public com.alibaba.fastjson.JSONObject jdbcQueryForJson(String sql, @Nullable Object... args)
对 JdbcTemplate.queryForMap(String, Object...)
方法的优化实现
执行以 '?' 作为参数占位符的SQL语句进行单行查询
sql
- SQL语句中可以包含一个或多个 '?' 参数占位符args
- 查询参数,有序的对应SQL语句中的 '?' 参数占位符public <T> T jdbcQueryForObj(String sql, Class<T> mappedClass, @Nullable Object... args)
对 JdbcTemplate.queryForObject(String, Class, Object...)
方法的优化实现
执行以 '?' 作为参数占位符的SQL语句进行单行查询
sql
- SQL语句中可以包含一个或多个 '?' 参数占位符mappedClass
- 查询结果映射类型,支持JavaBean与简单类型(如:Long, String, Boolean)args
- 查询参数,有序的对应SQL语句中的 '?' 参数占位符public BigDecimal jdbcQueryBigDecimal(String sql, @Nullable Object... args)
public LocalDateTime jdbcQueryLocalDateTime(String sql, @Nullable Object... args)
Copyright © 2022 Pivotal Software, Inc.. All rights reserved.