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) |
| 限定符和类型 | 方法和说明 |
|---|---|
Db |
clone()
克隆Db
适用于需要复制原有Db配置,并创建新的Db对象以进行修改配置等场景。
|
long |
delete(String tableName,
com.alibaba.fastjson.JSONObject paramJson)
删除
|
void |
delete(String tableName,
Long id)
删除
|
void |
deleteBatch(String tableName,
com.alibaba.fastjson.JSONObject[] paramJsons)
删除-批量
一组条件对应一条数据,并且每组条件都采用相同的key
|
int[] |
deleteBatch2(String sql,
com.alibaba.fastjson.JSONObject[] paramJsons)
同 NamedParameterJdbcTemplate.batchUpdate(String, Map[])
指定SQL语句以创建预编译执行SQL和绑定删除参数 示例: DELETE FROM table WHERE id = :id |
void |
deleteBatchLogic(String tableName,
com.alibaba.fastjson.JSONObject[] paramJsons)
删除-批量-逻辑的
数据非真实删除,而是更改 字段值为 true,代表数据已删除
一组条件对应一条数据,并且每组条件都采用相同的key
|
long |
deleteLogic(String tableName,
com.alibaba.fastjson.JSONObject paramJson)
删除-逻辑的
数据非真实删除,而是更改 字段值为 true,代表数据已删除
|
void |
deleteLogic(String tableName,
Long id)
删除-逻辑的
数据非真实删除,而是更改 字段值为 true,代表数据已删除
|
void |
deleteSafe(String tableName,
Long id)
删除-安全的
数据删除前会先进行条数确认
|
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,
Object businessUkValue)
通过表业务键查询
默认业务键为key
业务键值推荐使用UUID5
|
<T> T |
getByBusinessUk(String tableName,
Object businessUkValue,
Class<T> mappedClass)
通过表业务键查询
默认业务键为key
业务键值推荐使用UUID5
|
com.alibaba.fastjson.JSONObject |
getById(String tableName,
long id)
通过表主键ID查询
|
<T> T |
getById(String tableName,
Long id,
Class<T> mappedClass)
通过表ID查询(字段名=id,一般为表自增ID-主键)
|
org.springframework.jdbc.support.rowset.SqlRowSetMetaData |
getMetaData(String tableName)
获得表的元数据
检索元数据,即此行集合的列的数字、类型和属性。
|
Long |
insert(String tableName,
com.alibaba.fastjson.JSONObject paramJson)
向表中插入一条数据,主键默认为id时使用。
|
void |
insertBatch(String tableName,
com.alibaba.fastjson.JSONObject[] paramJsons)
向表中批量插入数据,主键默认为id时使用。
|
void |
insertNotReturn(String tableName,
com.alibaba.fastjson.JSONObject paramJson)
向表中插入一条数据
|
Long |
insertOrUpdate(String tableName,
com.alibaba.fastjson.JSONObject paramJson,
String[] conditions,
DbUpdateEnum dBUpdateEnum)
插入或更新
表中必须存在数据唯一性约束
更新触发条件:此数据若存在唯一性约束则更新,否则便执行插入数据
MySQL执行示例:
INSERT INTO table (param1, param2, ...) |
Long |
insertWithSortIdxAutoIncrement(String tableName,
com.alibaba.fastjson.JSONObject paramJson,
String... uniqueKeys)
向表中插入一条数据,并自动递增 sort_idx
使用条件:
1. id 默认为主键
2. sort_idx 默认为排序字段,类型为 int unsigned 。
|
boolean |
isDataSize(String tableName,
com.alibaba.fastjson.JSONObject paramJson)
是否有数据
|
BigDecimal |
jdbcQueryBigDecimal(String sql,
Object... args) |
Long |
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)
JdbcTemplate.queryForMap(String, Object...) |
List<com.alibaba.fastjson.JSONObject> |
jdbcQueryForList(String sql,
Object... args)
同
JdbcTemplate.queryForList(String, Object...) |
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) |
<T> T |
jdbcQueryObj(String sql,
Class<T> requiredType,
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)
绝对条件查询
|
<T> List<T> |
list(String tableName,
com.alibaba.fastjson.JSONObject paramJson,
Class<T> mappedClass,
DbSortEnum dBSortEnum)
绝对条件查询
|
List<com.alibaba.fastjson.JSONObject> |
list(String tableName,
com.alibaba.fastjson.JSONObject paramJson,
DbSortEnum dBSortEnum)
绝对条件查询
|
List<com.alibaba.fastjson.JSONObject> |
listAll(String tableName)
查询表中所有数据
|
<T> List<T> |
listAll(String tableName,
Class<T> mappedClass)
查询表中所有数据
|
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 |
<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> PageTVO<T> |
page(String tableName,
PageIPO pageIPO,
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 |
PageVO |
page(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 |
PageBeforeAndAfterVO |
pageBeforeAndAfter(String querySql,
PageIPO pageIPO,
Long equalsId)
根据相同的列表条件,获得上一条与下一条数据
|
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 |
<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 |
PageVO |
pageSql(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 |
<T> PageTVO<T> |
pageSql(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 |
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 |
<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 |
com.alibaba.fastjson.JSONObject |
queryForJson(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> T |
queryForObject(String sql,
com.alibaba.fastjson.JSONObject paramJson,
Class<T> mappedClass)
同 NamedParameterJdbcTemplate#queryForObject(String, Map, ai.yue.library.data.jdbc.support.BeanPropertyRowMapper
|
org.springframework.jdbc.support.rowset.SqlRowSet |
queryForRowSet(String sql,
com.alibaba.fastjson.JSONObject paramJson)
同 NamedParameterJdbcTemplate.queryForRowSet(String, Map)
指定SQL语句以创建预编译执行SQL和绑定查询参数,结果集可用于方便的获取各种类型的数据。
|
<T> T |
queryObject(String sql,
com.alibaba.fastjson.JSONObject paramJson,
Class<T> mappedClass)
同 NamedParameterJdbcTemplate.queryForObject(String, Map, Class)
指定SQL语句以创建预编译执行SQL和绑定查询参数,结果映射应该是一个单行查询否则结果为null。
|
protected <T> PageTVO<T> |
toPageTVO(PageDTO pageDTO,
Class<T> mappedClass) |
protected PageVO |
toPageVO(PageDTO pageDTO) |
long |
update(String sql,
com.alibaba.fastjson.JSONObject paramJson)
同 NamedParameterJdbcTemplate.update(String, Map)
指定SQL语句以创建预编译执行SQL和绑定更新参数 |
void |
update(String sql,
com.alibaba.fastjson.JSONObject paramJson,
int expectedValue,
DbExpectedValueModeEnum dBExpectedValueModeEnum)
同 NamedParameterJdbcTemplate.update(String, Map)
指定SQL语句以创建预编译执行SQL和绑定更新参数 将会对更新所影响的行数进行预期判断,若结果不符合预期值:expectedValue,那么此处便会抛出一个 DbException |
Long |
update(String tableName,
com.alibaba.fastjson.JSONObject paramJson,
String[] conditions)
绝对条件更新优化SQL
相对条件更新优化SQL可参照如下编写: UPDATE tableSET paramNumber1 = paramNumber1 - 1, ... |
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,
DbExpectedValueModeEnum dBExpectedValueModeEnum)
绝对条件更新优化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)
指定SQL语句以创建预编译执行SQL和绑定更新参数 |
int[] |
updateBatch(String sql,
com.alibaba.fastjson.JSONObject[] paramJsons)
同 NamedParameterJdbcTemplate.batchUpdate(String, Map[])
指定SQL语句以创建预编译执行SQL和绑定更新参数 |
void |
updateBatch(String tableName,
com.alibaba.fastjson.JSONObject[] paramJsons,
String[] conditions,
DbUpdateEnum dBUpdateEnum)
更新-批量
一组条件对应一条数据,并且每组条件都采用相同的key
|
void |
updateByBusinessUk(String tableName,
com.alibaba.fastjson.JSONObject paramJson)
更新-By业务键
根据表中业务键进行更新
默认业务键为key
业务键值推荐使用UUID5
|
void |
updateByBusinessUk(String tableName,
com.alibaba.fastjson.JSONObject[] paramJsons,
DbUpdateEnum dBUpdateEnum)
批量更新-By业务键
根据表中业务键进行批量更新
默认业务键为key
业务键值推荐使用UUID5
|
void |
updateByBusinessUk(String tableName,
com.alibaba.fastjson.JSONObject paramJson,
DbUpdateEnum dBUpdateEnum)
更新-By业务键
根据表中业务键进行更新
默认业务键为key
业务键值推荐使用UUID5
|
void |
updateById(String tableName,
com.alibaba.fastjson.JSONObject paramJson)
更新-ById
根据表中主键ID进行更新
|
void |
updateById(String tableName,
com.alibaba.fastjson.JSONObject[] paramJsons,
DbUpdateEnum dBUpdateEnum)
批量更新-ById
根据表中主键ID进行批量更新
|
void |
updateById(String tableName,
com.alibaba.fastjson.JSONObject paramJson,
DbUpdateEnum dBUpdateEnum)
更新-ById
根据表中主键ID进行更新
|
void |
updateSort(String tableName,
Long id,
Integer move,
String... uniqueKeys)
更新-排序
使用限制:见 DbInsert.insertWithSortIdxAutoIncrement(String, JSONObject, String...) |
isDataSize, isUpdateAndExpectedEqual, isUpdateAndExpectedGreaterThanEqual, paramToWhereSql, paramToWhereSql, paramValidate, paramValidate, paramValidate, paramValidate, paramValidate, paramValidate, paramValidate, paramValidate, resultToJson, resultToObject, updateAndExpectedEqual, updateAndExpectedGreaterThanEqual, updateBatchAndExpectedEqualpublic Db(DataSource dataSource)
public Db(org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate namedParameterJdbcTemplate)
public Db(org.springframework.jdbc.core.JdbcTemplate jdbcTemplate,
org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate namedParameterJdbcTemplate,
Dialect dialect)
public Db clone()
适用于需要复制原有Db配置,并创建新的Db对象以进行修改配置等场景。
如:需要对操作的某个DAO单独配置 #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字段的唯一约束,但可以建立普通索引,以便于提高查询性能),可选参数@Transactional public void insertBatch(String tableName, com.alibaba.fastjson.JSONObject[] paramJsons)
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 - 更新类型 DbUpdateEnumpublic void deleteSafe(String tableName, Long id)
数据删除前会先进行条数确认
tableName - 表名id - 主键id@Transactional 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 int[] deleteBatch2(String sql, com.alibaba.fastjson.JSONObject[] paramJsons)
指定SQL语句以创建预编译执行SQL和绑定删除参数
示例:DELETE FROM table WHERE id = :id
sql - 要执行的删除SQLparamJsons - 删除所用到的条件数组@Transactional public void deleteLogic(String tableName, Long id)
数据非真实删除,而是更改 字段值为 true,代表数据已删除
tableName - 表名id - 主键id@Transactional public long deleteLogic(String tableName, com.alibaba.fastjson.JSONObject paramJson)
数据非真实删除,而是更改 字段值为 true,代表数据已删除
tableName - 表名paramJson - 条件@Transactional public void deleteBatchLogic(String tableName, com.alibaba.fastjson.JSONObject[] paramJsons)
数据非真实删除,而是更改 字段值为 true,代表数据已删除
一组条件对应一条数据,并且每组条件都采用相同的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, DbExpectedValueModeEnum dBExpectedValueModeEnum)
将会对更新所影响的行数进行预期判断,若结果不符合预期值:expectedValue,那么此处便会抛出一个 DbException
sql - 要执行的更新SQLparamJson - 更新所用到的参数expectedValue - 更新所影响的行数预期值dBExpectedValueModeEnum - 预期值确认方式@Transactional public int[] updateBatch(String sql, com.alibaba.fastjson.JSONObject[] paramJsons)
sql - 要执行的更新SQLparamJsons - 更新所用到的参数数组@Transactional public Long update(String tableName, com.alibaba.fastjson.JSONObject paramJson, String[] conditions)
UPDATE tableSET paramNumber1 = paramNumber1 - 1, ...WHEREid = :idANDparamNumber1 > 0AND ...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, DbExpectedValueModeEnum dBExpectedValueModeEnum)
tableName - 表名paramJson - 更新所用到的参数conditions - 作为更新条件的参数名,对应paramJson内的key(注意:作为条件的参数,将不会用于字段值的更新)dBUpdateEnum - 更新类型 DbUpdateEnumexpectedValue - 更新所影响的行数预期值dBExpectedValueModeEnum - 预期值确认方式@Transactional public void updateById(String tableName, com.alibaba.fastjson.JSONObject paramJson)
根据表中主键ID进行更新
tableName - 表名paramJson - 更新所用到的参数(包含主键ID字段)@Transactional public void updateById(String tableName, com.alibaba.fastjson.JSONObject paramJson, DbUpdateEnum dBUpdateEnum)
根据表中主键ID进行更新
tableName - 表名paramJson - 更新所用到的参数(包含主键ID字段)dBUpdateEnum - 更新类型 DbUpdateEnum@Transactional public void updateById(String tableName, com.alibaba.fastjson.JSONObject[] paramJsons, DbUpdateEnum dBUpdateEnum)
根据表中主键ID进行批量更新
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 updateSort(String tableName, Long id, Integer move, @Nullable String... uniqueKeys)
tableName - 表名id - 主键IDmove - sort_idx移动位数(值不可等于零,正整数表示:向后移动几位,负整数表示:向前移动几位)uniqueKeys - 同sort_idx字段组合的唯一约束keys(表中不建议建立sort_idx字段的唯一约束,但可以建立普通索引,以便于提高查询性能),可选参数@Transactional public void updateBatch(String tableName, com.alibaba.fastjson.JSONObject[] paramJsons, String[] conditions, DbUpdateEnum dBUpdateEnum)
一组条件对应一条数据,并且每组条件都采用相同的key
tableName - 表名paramJsons - 更新所用到的参数数组conditions - 作为更新条件的参数名,对应paramJson内的key(注意:作为条件的参数,将不会用于字段值的更新)dBUpdateEnum - 更新类型 DbUpdateEnumpublic <T> T queryObject(String sql, com.alibaba.fastjson.JSONObject paramJson, Class<T> mappedClass)
指定SQL语句以创建预编译执行SQL和绑定查询参数,结果映射应该是一个单行查询否则结果为null。
T - 普通类型泛型sql - 要执行的SQL查询paramJson - 要绑定到查询的参数映射mappedClass - 结果对象期望匹配的普通类型public com.alibaba.fastjson.JSONObject queryForJson(String sql, com.alibaba.fastjson.JSONObject paramJson)
sql - 要执行的SQL查询paramJson - 要绑定到查询的参数映射public <T> T queryForObject(String sql, com.alibaba.fastjson.JSONObject paramJson, Class<T> mappedClass)
指定SQL语句以创建预编译执行SQL和绑定查询参数,结果映射应该是一个单行查询否则结果为null。
T - JavaBean的泛型sql - 要执行的SQL查询paramJson - 要绑定到查询的参数映射mappedClass - POJO映射类public org.springframework.jdbc.support.rowset.SqlRowSet queryForRowSet(String sql, com.alibaba.fastjson.JSONObject paramJson)
指定SQL语句以创建预编译执行SQL和绑定查询参数,结果集可用于方便的获取各种类型的数据。
sql - 要执行的SQL查询paramJson - 要绑定到查询的参数映射public List<com.alibaba.fastjson.JSONObject> queryForList(String sql, com.alibaba.fastjson.JSONObject paramJson)
NamedParameterJdbcTemplate.queryForList(String, Map)sql - 要执行的查询SQLparamJson - 要绑定到查询的参数映射public <T> List<T> queryForList(String sql, com.alibaba.fastjson.JSONObject paramJson, Class<T> mappedClass)
T - 泛型sql - 要执行的查询SQLparamJson - 要绑定到查询的参数映射mappedClass - 映射类public boolean isDataSize(String tableName, com.alibaba.fastjson.JSONObject paramJson)
tableName - 表名paramJson - 查询参数public org.springframework.jdbc.support.rowset.SqlRowSetMetaData getMetaData(String tableName)
检索元数据,即此行集合的列的数字、类型和属性。
tableName - public com.alibaba.fastjson.JSONObject getById(String tableName, long id)
tableName - 表名id - 表自增IDpublic <T> T getById(String tableName, Long id, Class<T> mappedClass)
T - 泛型tableName - 表名id - 主键IDmappedClass - 映射类public com.alibaba.fastjson.JSONObject getByBusinessUk(String tableName, Object businessUkValue)
默认业务键为key
业务键值推荐使用UUID5
tableName - 表名businessUkValue - 业务键的唯一值public <T> T getByBusinessUk(String tableName, Object businessUkValue, Class<T> mappedClass)
默认业务键为key
业务键值推荐使用UUID5
T - 泛型tableName - 表名businessUkValue - 业务键的唯一值mappedClass - 映射类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)
T - 泛型tableName - 表名paramJson - 查询参数mappedClass - 映射类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, DbSortEnum dBSortEnum)
tableName - 表名paramJson - 查询参数dBSortEnum - 排序方式public <T> List<T> list(String tableName, com.alibaba.fastjson.JSONObject paramJson, Class<T> mappedClass, DbSortEnum dBSortEnum)
T - 泛型tableName - 表名paramJson - 查询参数mappedClass - 映射类dBSortEnum - 排序方式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 page(String tableName, PageIPO pageIPO)
阿里最优SQL示例:
SELECT a.* FROM 表 1 a, (select id from 表 1 where 条件 LIMIT 100000,20 ) b where a.id=b.idtableName - 表名pageIPO - 分页查询参数 PageIPO,所有的条件参数,都将以等于的形式进行SQL拼接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.idT - 泛型tableName - 表名pageIPO - 分页查询参数 PageIPO,所有的条件参数,都将以等于的形式进行SQL拼接mappedClass - 映射类public PageVO page(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.idtableName - 表名pageIPO - 分页查询参数 PageIPO,所有的条件参数,都将以等于的形式进行SQL拼接dBSortEnum - 排序方式 DbSortEnumpublic <T> PageTVO<T> page(String tableName, PageIPO pageIPO, 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.idT - 泛型tableName - 表名pageIPO - 分页查询参数 PageIPO,所有的条件参数,都将以等于的形式进行SQL拼接mappedClass - 映射类dBSortEnum - 排序方式 DbSortEnumpublic 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.idtableName - 表名whereSql - 自定义WHERE语句,若此参数为空,那么所有的条件参数,都将以等于的形式进行SQL拼接。 WHERE 条件pageIPO - 分页查询参数 PageIPOpublic <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.idT - 泛型tableName - 表名whereSql - 自定义WHERE语句,若此参数为空,那么所有的条件参数,都将以等于的形式进行SQL拼接。 WHERE 条件pageIPO - 分页查询参数 PageIPOmappedClass - 映射类public PageVO pageSql(String querySql, PageIPO pageIPO)
阿里最优查询SQL示例:
SELECT a.* FROM 表 1 a, (select id from 表 1 where 条件 LIMIT :page, :limit) b where a.id=b.idquerySql - 用于查询数据的sql语句pageIPO - 分页查询参数 PageIPOpublic <T> PageTVO<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.idT - 泛型querySql - 用于查询数据的sql语句pageIPO - 分页查询参数 PageIPOmappedClass - 映射类public PageVO 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.idcountSql - 用于统计总数的sql语句 (注意:count(*)必须拥有count别名) 同时countSql可以为null表示不统计 可选参数querySql - 用于查询数据的sql语句pageIPO - 分页查询参数 PageIPOpublic <T> PageTVO<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.idT - 泛型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 <T> T jdbcQueryObj(String sql, Class<T> requiredType, @Nullable Object... args)
查询预期为单行/单列查询
返回的结果将直接映射到相应的对象类型
T - SQL语句中SELECT参数列的类型sql - SQL语句中可以包含一个或多个 '?' 参数占位符requiredType - 结果对象期望匹配的类型args - 查询参数,有序的对应SQL语句中的 '?' 参数占位符public BigDecimal jdbcQueryBigDecimal(String sql, @Nullable Object... args)
public LocalDateTime jdbcQueryLocalDateTime(String sql, @Nullable Object... args)
public com.alibaba.fastjson.JSONObject jdbcQueryForJson(String sql, @Nullable Object... args)
JdbcTemplate.queryForMap(String, Object...) 的安全查询方式
执行以 '?' 作为参数占位符的SQL语句进行单行查询
查询预期应该是一个单行查询否则结果为null。
sql - SQL语句中可以包含一个或多个 '?' 参数占位符args - 查询参数,有序的对应SQL语句中的 '?' 参数占位符Copyright © 2020 Pivotal Software, Inc.. All rights reserved.