Merge pull request #41 from font-C/main

fixed:  Db+Row supports Schema。
This commit is contained in:
Michael Yang 2023-06-05 18:18:41 +08:00 committed by GitHub
commit 6bb3a4d360
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 664 additions and 175 deletions

View File

@ -26,6 +26,7 @@ public class FlexConsts {
public static final String SQL = "$$sql";
public static final String SQL_ARGS = "$$sql_args";
public static final String SCHEMA_NAME = "$$schemaName";
public static final String TABLE_NAME = "$$tableName";
public static final String FIELD_NAME = "$$fieldName";
public static final String PRIMARY_KEY = "$$primaryKey";

View File

@ -36,9 +36,9 @@ public interface IDialect {
String forHint(String hintString);
String forInsertRow(String tableName, Row row);
String forInsertRow(String schema,String tableName, Row row);
String forInsertBatchWithFirstRowColumns(String tableName, List<Row> rows);
String forInsertBatchWithFirstRowColumns(String schema, String tableName, List<Row> rows);
String forDeleteById(String schema, String tableName, String[] primaryKeys);
@ -46,13 +46,13 @@ public interface IDialect {
String forDeleteByQuery(QueryWrapper queryWrapper);
String forUpdateById(String tableName, Row row);
String forUpdateById(String schema, String tableName, Row row);
String forUpdateByQuery(QueryWrapper queryWrapper, Row data);
String forUpdateBatchById(String tableName, List<Row> rows);
String forUpdateBatchById(String schema, String tableName, List<Row> rows);
String forSelectOneById(String tableName, String[] primaryKeys, Object[] primaryValues);
String forSelectOneById(String schema, String tableName, String[] primaryKeys, Object[] primaryValues);
String forSelectByQuery(QueryWrapper queryWrapper);

View File

@ -66,7 +66,7 @@ public class CommonsDialectImpl implements IDialect {
}
@Override
public String forInsertRow(String tableName, Row row) {
public String forInsertRow(String schema, String tableName, Row row) {
StringBuilder fields = new StringBuilder();
StringBuilder questions = new StringBuilder();
@ -81,16 +81,20 @@ public class CommonsDialectImpl implements IDialect {
}
index++;
}
String sql = "INSERT INTO " + wrap(getRealTable(tableName)) +
"(" + fields + ") VALUES " +
"(" + questions + ")";
return sql;
StringBuilder sql = new StringBuilder();
sql.append("INSERT INTO ");
if (StringUtil.isNotBlank(schema)) {
sql.append(wrap(getRealSchema(schema))).append(".");
}
sql.append(wrap(getRealTable(tableName)));
sql.append("(").append(fields).append(") ");
sql.append(" VALUES ").append("(").append(questions).append(")");
return sql.toString();
}
@Override
public String forInsertBatchWithFirstRowColumns(String tableName, List<Row> rows) {
public String forInsertBatchWithFirstRowColumns(String schema, String tableName, List<Row> rows) {
StringBuilder fields = new StringBuilder();
StringBuilder questions = new StringBuilder();
@ -112,9 +116,16 @@ public class CommonsDialectImpl implements IDialect {
}
}
String sql = "INSERT INTO " + wrap(getRealTable(tableName)) +
"(" + fields + ") VALUES " + questions;
return sql;
StringBuilder sql = new StringBuilder();
sql.append("INSERT INTO ");
if (StringUtil.isNotBlank(schema)) {
sql.append(wrap(getRealSchema(schema))).append(".");
}
sql.append(wrap(getRealTable(tableName)));
sql.append(" (").append(fields).append(") ");
sql.append(" VALUES ").append(questions);
return sql.toString();
}
@ -181,13 +192,17 @@ public class CommonsDialectImpl implements IDialect {
}
@Override
public String forUpdateById(String tableName, Row row) {
public String forUpdateById(String schema,String tableName, Row row) {
StringBuilder sql = new StringBuilder();
Set<String> modifyAttrs = row.obtainModifyAttrs();
String[] primaryKeys = RowCPI.obtainsPrimaryKeyStrings(row);
sql.append("UPDATE ").append(wrap(getRealTable(tableName))).append(" SET ");
sql.append("UPDATE ");
if (StringUtil.isNotBlank(schema)) {
sql.append(wrap(getRealSchema(schema))).append(".");
}
sql.append(wrap(getRealTable(tableName))).append(" SET ");
int index = 0;
for (Map.Entry<String, Object> e : row.entrySet()) {
String colName = e.getKey();
@ -221,8 +236,10 @@ public class CommonsDialectImpl implements IDialect {
throw FlexExceptions.wrap("update sql must need 1 table.");
}
String tableName = queryTables.get(0).getName();
sql.append("UPDATE ").append(wrap(getRealTable(tableName))).append(" SET ");
//fix: support schema
QueryTable queryTable = queryTables.get(0);
// String tableName = queryTables.get(0).getName();
sql.append("UPDATE ").append(queryTable.toSql(this)).append(" SET ");
int index = 0;
for (String modifyAttr : modifyAttrs) {
if (index > 0) {
@ -241,21 +258,24 @@ public class CommonsDialectImpl implements IDialect {
}
@Override
public String forUpdateBatchById(String tableName, List<Row> rows) {
public String forUpdateBatchById(String schema,String tableName, List<Row> rows) {
if (rows.size() == 1) {
return forUpdateById(tableName, rows.get(0));
return forUpdateById(schema, tableName, rows.get(0));
}
StringBuilder sql = new StringBuilder();
for (Row row : rows) {
sql.append(forUpdateById(tableName, row)).append("; ");
sql.append(forUpdateById(schema, tableName, row)).append("; ");
}
return sql.toString();
}
@Override
public String forSelectOneById(String tableName, String[] primaryKeys, Object[] primaryValues) {
public String forSelectOneById(String schema, String tableName, String[] primaryKeys, Object[] primaryValues) {
StringBuilder sql = new StringBuilder("SELECT * FROM ");
if (StringUtil.isNotBlank(schema)) {
sql.append(wrap(getRealSchema(schema))).append(".");
}
sql.append(wrap(getRealTable(tableName))).append(" WHERE ");
for (int i = 0; i < primaryKeys.length; i++) {
if (i > 0) {

View File

@ -40,6 +40,10 @@ class ProviderUtil {
params.put(FlexConsts.SQL_ARGS, args);
}
public static String getSchemaName(Map params) {
Object schemaNameObj = params.get(FlexConsts.SCHEMA_NAME);
return schemaNameObj != null ? schemaNameObj.toString().trim() : null;
}
public static String getTableName(Map params) {
Object tableNameObj = params.get(FlexConsts.TABLE_NAME);
return tableNameObj != null ? tableNameObj.toString().trim() : null;

View File

@ -59,13 +59,14 @@ public class RowSqlProvider {
*
* @param params
* @return sql
* @see RowMapper#insert(String, Row)
* @see RowMapper#insert(String,String, Row)
*/
public static String insert(Map params) {
String tableName = ProviderUtil.getTableName(params);
String schema = ProviderUtil.getSchemaName(params);
Row row = ProviderUtil.getRow(params);
ProviderUtil.setSqlArgs(params, RowCPI.obtainModifyValues(row));
return DialectFactory.getDialect().forInsertRow(tableName, row);
return DialectFactory.getDialect().forInsertRow(schema,tableName, row);
}
/**
@ -73,10 +74,11 @@ public class RowSqlProvider {
*
* @param params
* @return sql
* @see RowMapper#insertBatchWithFirstRowColumns(String, List)
* @see RowMapper#insertBatchWithFirstRowColumns(String, String, List)
*/
public static String insertBatchWithFirstRowColumns(Map params) {
String tableName = ProviderUtil.getTableName(params);
String schema = ProviderUtil.getSchemaName(params);
List<Row> rows = ProviderUtil.getRows(params);
if (rows == null || rows.isEmpty()) {
throw FlexExceptions.wrap("rows can not be null or empty.");
@ -95,7 +97,7 @@ public class RowSqlProvider {
ProviderUtil.setSqlArgs(params, values);
//sql: INSERT INTO `tb_table`(`name`, `sex`) VALUES (?, ?),(?, ?),(?, ?)
return DialectFactory.getDialect().forInsertBatchWithFirstRowColumns(tableName, rows);
return DialectFactory.getDialect().forInsertBatchWithFirstRowColumns(schema,tableName, rows);
}
/**
@ -103,9 +105,10 @@ public class RowSqlProvider {
*
* @param params
* @return sql
* @see RowMapper#deleteById(String, String, Object)
* @see RowMapper#deleteById(String,String, String, Object)
*/
public static String deleteById(Map params) {
String schema = ProviderUtil.getSchemaName(params);
String tableName = ProviderUtil.getTableName(params);
String[] primaryKeys = ProviderUtil.getPrimaryKeys(params);
Object[] primaryValues = ProviderUtil.getPrimaryValues(params);
@ -116,7 +119,7 @@ public class RowSqlProvider {
ProviderUtil.setSqlArgs(params, primaryValues);
}
return DialectFactory.getDialect().forDeleteById(null, tableName, primaryKeys);
return DialectFactory.getDialect().forDeleteById(schema, tableName, primaryKeys);
}
/**
@ -124,15 +127,16 @@ public class RowSqlProvider {
*
* @param params
* @return sql
* @see RowMapper#deleteBatchByIds(String, String, Collection)
* @see RowMapper#deleteBatchByIds(String, String, String, Collection)
*/
public static String deleteBatchByIds(Map params) {
String schema = ProviderUtil.getSchemaName(params);
String tableName = ProviderUtil.getTableName(params);
String[] primaryKeys = ProviderUtil.getPrimaryKeys(params);
Object[] primaryValues = ProviderUtil.getPrimaryValues(params);
ProviderUtil.setSqlArgs(params, primaryValues);
return DialectFactory.getDialect().forDeleteBatchByIds(null, tableName, primaryKeys, primaryValues);
return DialectFactory.getDialect().forDeleteBatchByIds(schema, tableName, primaryKeys, primaryValues);
}
@ -141,12 +145,13 @@ public class RowSqlProvider {
*
* @param params
* @return sql
* @see RowMapper#deleteByQuery(String, QueryWrapper)
* @see RowMapper#deleteByQuery(String,String, QueryWrapper)
*/
public static String deleteByQuery(Map params) {
String schema = ProviderUtil.getSchemaName(params);
String tableName = ProviderUtil.getTableName(params);
QueryWrapper queryWrapper = ProviderUtil.getQueryWrapper(params);
CPI.setFromIfNecessary(queryWrapper, tableName);
CPI.setFromIfNecessary(queryWrapper, schema,tableName);
Object[] valueArray = CPI.getValueArray(queryWrapper);
ProviderUtil.setSqlArgs(params, valueArray);
@ -159,13 +164,14 @@ public class RowSqlProvider {
*
* @param params
* @return sql
* @see RowMapper#updateById(String, Row)
* @see RowMapper#updateById(String, String, Row)
*/
public static String updateById(Map params) {
String schema = ProviderUtil.getSchemaName(params);
String tableName = ProviderUtil.getTableName(params);
Row row = ProviderUtil.getRow(params);
ProviderUtil.setSqlArgs(params, RowCPI.obtainAllModifyValues(row));
return DialectFactory.getDialect().forUpdateById(tableName, row);
return DialectFactory.getDialect().forUpdateById(schema, tableName, row);
}
@ -174,14 +180,15 @@ public class RowSqlProvider {
*
* @param params
* @return sql
* @see RowMapper#updateByQuery(String, Row, QueryWrapper)
* @see RowMapper#updateByQuery(String, String, Row, QueryWrapper)
*/
public static String updateByQuery(Map params) {
String schema = ProviderUtil.getSchemaName(params);
String tableName = ProviderUtil.getTableName(params);
Row data = ProviderUtil.getRow(params);
QueryWrapper queryWrapper = ProviderUtil.getQueryWrapper(params);
CPI.setFromIfNecessary(queryWrapper, tableName);
CPI.setFromIfNecessary(queryWrapper,schema, tableName);
Object[] modifyValues = RowCPI.obtainModifyValues(data);
Object[] valueArray = CPI.getValueArray(queryWrapper);
@ -198,9 +205,10 @@ public class RowSqlProvider {
*
* @param params
* @return sql
* @see RowMapper#updateBatchById(String, List)
* @see RowMapper#updateBatchById(String, String, List)
*/
public static String updateBatchById(Map params) {
String schema = ProviderUtil.getSchemaName(params);
String tableName = ProviderUtil.getTableName(params);
List<Row> rows = ProviderUtil.getRows(params);
if (CollectionUtil.isEmpty(rows)) {
@ -212,7 +220,7 @@ public class RowSqlProvider {
values = ArrayUtil.concat(values, RowCPI.obtainAllModifyValues(row));
}
ProviderUtil.setSqlArgs(params, values);
return DialectFactory.getDialect().forUpdateBatchById(tableName, rows);
return DialectFactory.getDialect().forUpdateBatchById(schema,tableName, rows);
}
/**
@ -250,12 +258,12 @@ public class RowSqlProvider {
*
* @param params
* @return sql
* @see RowMapper#updateNumberAddByQuery(String, String, Number, QueryWrapper)
* @see RowMapper#updateNumberAddByQuery(String, String, String, Number, QueryWrapper)
*/
public static String updateNumberAddByQuery(Map params) {
QueryWrapper queryWrapper = ProviderUtil.getQueryWrapper(params);
String schema = ProviderUtil.getSchemaName(params);
String tableName = ProviderUtil.getTableName(params);
String fieldName = ProviderUtil.getFieldName(params);
Number value = (Number) ProviderUtil.getValue(params);
@ -265,7 +273,7 @@ public class RowSqlProvider {
ProviderUtil.setSqlArgs(params, queryParams);
return DialectFactory.getDialect().forUpdateNumberAddByQuery(null, tableName, fieldName, value, queryWrapper);
return DialectFactory.getDialect().forUpdateNumberAddByQuery(schema, tableName, fieldName, value, queryWrapper);
}
@ -274,16 +282,17 @@ public class RowSqlProvider {
*
* @param params
* @return sql
* @see RowMapper#selectOneById(String, String, Object)
* @see RowMapper#selectOneById(String, String, String, Object)
*/
public static String selectOneById(Map params) {
String schema = ProviderUtil.getSchemaName(params);
String tableName = ProviderUtil.getTableName(params);
String[] primaryKeys = ProviderUtil.getPrimaryKeys(params);
Object[] primaryValues = ProviderUtil.getPrimaryValues(params);
ProviderUtil.setSqlArgs(params, primaryValues);
return DialectFactory.getDialect().forSelectOneById(tableName, primaryKeys, primaryValues);
return DialectFactory.getDialect().forSelectOneById(schema,tableName, primaryKeys, primaryValues);
}
@ -292,12 +301,13 @@ public class RowSqlProvider {
*
* @param params
* @return sql
* @see RowMapper#selectListByQuery(String, QueryWrapper)
* @see RowMapper#selectListByQuery(String, String, QueryWrapper)
*/
public static String selectListByQuery(Map params) {
String schema = ProviderUtil.getSchemaName(params);
String tableName = ProviderUtil.getTableName(params);
QueryWrapper queryWrapper = ProviderUtil.getQueryWrapper(params);
CPI.setFromIfNecessary(queryWrapper, tableName);
CPI.setFromIfNecessary(queryWrapper,schema, tableName);
Object[] valueArray = CPI.getValueArray(queryWrapper);
ProviderUtil.setSqlArgs(params, valueArray);
@ -311,13 +321,14 @@ public class RowSqlProvider {
*
* @param params
* @return sql
* @see RowMapper#selectCountByQuery(String, QueryWrapper)
* @see RowMapper#selectCountByQuery(String, String, QueryWrapper)
*/
public static String selectObjectByQuery(Map params) {
String schema = ProviderUtil.getSchemaName(params);
String tableName = ProviderUtil.getTableName(params);
QueryWrapper queryWrapper = ProviderUtil.getQueryWrapper(params);
CPI.setFromIfNecessary(queryWrapper, tableName);
CPI.setFromIfNecessary(queryWrapper,schema,tableName);
Object[] valueArray = CPI.getValueArray(queryWrapper);
ProviderUtil.setSqlArgs(params, valueArray);

View File

@ -62,13 +62,23 @@ public class Db {
/**
* tableName 插入一条 row 数据
* schema.tableName 插入一条 row 数据
*
* @param schema 模式
* @param tableName 表名
* @param row 数据
*/
public static int insert(String schema,String tableName, Row row) {
return invoker().insert(schema,tableName, row);
}
/**
* tableName 插入一条 row 数据
*
* @param tableName 表名
* @param row 数据
*/
public static int insert(String tableName, Row row) {
return invoker().insert(tableName, row);
return invoker().insert(null,tableName, row);
}
@ -83,6 +93,17 @@ public class Db {
}
/**
* 批量插入数据
*
* @param schema 模式
* @param tableName 表名
* @param rows 数据
*/
public static int[] insertBatch(String schema,String tableName, Collection<Row> rows) {
return insertBatch(schema,tableName, rows, rows.size());
}
/**
* 批量插入数据
*
@ -90,9 +111,24 @@ public class Db {
* @param rows 数据
*/
public static int[] insertBatch(String tableName, Collection<Row> rows) {
return insertBatch(tableName, rows, rows.size());
return insertBatch(null,tableName, rows, rows.size());
}
/**
* 批量插入数据
*
* @param schema 模式
* @param tableName 表名
* @param rows 数据
* @param batchSize 每次提交的数据量
*/
public static int[] insertBatch(String schema,String tableName, Collection<Row> rows, int batchSize) {
List<Row> list = CollectionUtil.toList(rows);
return executeBatch(rows.size(), batchSize, RowMapper.class, (mapper, index) -> {
Row row = list.get(index);
mapper.insert(schema,tableName, row);
});
}
/**
* 批量插入数据
*
@ -104,18 +140,29 @@ public class Db {
List<Row> list = CollectionUtil.toList(rows);
return executeBatch(rows.size(), batchSize, RowMapper.class, (mapper, index) -> {
Row row = list.get(index);
mapper.insert(tableName, row);
mapper.insert(null,tableName, row);
});
}
/**
* 批量插入数据根据第一条内容来构建插入的字段效率比 {@link #insertBatch(String, Collection, int)}
* 批量插入数据根据第一条内容来构建插入的字段效率比 {@link #insertBatch(String ,String, Collection, int)}
*
* @param schema 模式
* @param tableName 表名
* @param rows 数据
*/
public static int insertBatchWithFirstRowColumns(String schema,String tableName, List<Row> rows) {
return invoker().insertBatchWithFirstRowColumns(schema,tableName, rows);
}
/**
* 批量插入数据根据第一条内容来构建插入的字段效率比 {@link #insertBatch(String ,String, Collection, int)}
*
* @param tableName 表名
* @param rows 数据
*/
public static int insertBatchWithFirstRowColumns(String tableName, List<Row> rows) {
return invoker().insertBatchWithFirstRowColumns(tableName, rows);
return invoker().insertBatchWithFirstRowColumns(null,tableName, rows);
}
/**
@ -128,6 +175,17 @@ public class Db {
return invoker().deleteBySql(sql, args);
}
/**
* 根据主键来删除数据其中 row 是通过 {@link Row#ofKey(RowKey, Object)} 来进行构建的
*
* @param schema 模式
* @param tableName 表名
* @param row 主键 id值
*/
public static int deleteById(String schema,String tableName, Row row) {
return invoker().deleteById(schema,tableName, row);
}
/**
* 根据主键来删除数据其中 row 是通过 {@link Row#ofKey(RowKey, Object)} 来进行构建的
*
@ -135,7 +193,20 @@ public class Db {
* @param row 主键 id值
*/
public static int deleteById(String tableName, Row row) {
return invoker().deleteById(tableName, row);
return invoker().deleteById(null,tableName, row);
}
/**
* 根据主键来删除 1 条数据
*
* @param schema 模式
* @param tableName 表名
* @param primaryKey 主键字段名称
* @param id 主键值
*/
public static int deleteById(String schema,String tableName, String primaryKey, Object id) {
return invoker().deleteById(schema,tableName, primaryKey, id);
}
/**
@ -146,7 +217,20 @@ public class Db {
* @param id 主键值
*/
public static int deleteById(String tableName, String primaryKey, Object id) {
return invoker().deleteById(tableName, primaryKey, id);
return invoker().deleteById(null,tableName, primaryKey, id);
}
/**
* 根据 id 集合来批量删除数据
*
* @param schema 模式
* @param tableName 表名
* @param primaryKey 主键字段名称
* @param ids id 集合
*/
public static int deleteBatchByIds(String schema,String tableName, String primaryKey, Collection<?> ids) {
return invoker().deleteBatchByIds(schema,tableName, primaryKey, ids);
}
/**
@ -157,7 +241,18 @@ public class Db {
* @param ids id 集合
*/
public static int deleteBatchByIds(String tableName, String primaryKey, Collection<?> ids) {
return invoker().deleteBatchByIds(tableName, primaryKey, ids);
return invoker().deleteBatchByIds(null,tableName, primaryKey, ids);
}
/**
* 根据 map 构建的 where 条件来删除数据
*
* @param schema 模式
* @param tableName 表名
* @param whereColumns where 条件
*/
public static int deleteByMap(String schema,String tableName, Map<String, Object> whereColumns) {
return invoker().deleteByQuery(schema,tableName, new QueryWrapper().where(whereColumns));
}
/**
@ -167,9 +262,19 @@ public class Db {
* @param whereColumns where 条件
*/
public static int deleteByMap(String tableName, Map<String, Object> whereColumns) {
return invoker().deleteByQuery(tableName, new QueryWrapper().where(whereColumns));
return invoker().deleteByQuery(null,tableName, new QueryWrapper().where(whereColumns));
}
/**
* 根据 condition 条件删除数据
*
* @param schema 模式
* @param tableName 表名
* @param condition 条件内容
*/
public static int deleteByCondition(String schema,String tableName, QueryCondition condition) {
return invoker().deleteByQuery(schema,tableName, new QueryWrapper().where(condition));
}
/**
* 根据 condition 条件删除数据
@ -178,7 +283,19 @@ public class Db {
* @param condition 条件内容
*/
public static int deleteByCondition(String tableName, QueryCondition condition) {
return invoker().deleteByQuery(tableName, new QueryWrapper().where(condition));
return invoker().deleteByQuery(null,tableName, new QueryWrapper().where(condition));
}
/**
* 根据 query 构建的条件来删除数据
*
* @param schema 模式
* @param tableName 表名
* @param queryWrapper query
*/
public static int deleteByQuery(String schema,String tableName, QueryWrapper queryWrapper) {
return invoker().deleteByQuery(schema,tableName, queryWrapper);
}
/**
@ -188,10 +305,9 @@ public class Db {
* @param queryWrapper query
*/
public static int deleteByQuery(String tableName, QueryWrapper queryWrapper) {
return invoker().deleteByQuery(tableName, queryWrapper);
return invoker().deleteByQuery(null,tableName, queryWrapper);
}
/**
* 根据原生 sql 来更新数据
*
@ -218,13 +334,38 @@ public class Db {
/**
* 根据 id 来更新数据
*
* @param tableName 表情
* @param schema 模式
* @param tableName 表名
* @param row id 及其内容
*/
public static int updateById(String schema,String tableName, Row row) {
return invoker().updateById(schema,tableName, row);
}
/**
* 根据 id 来更新数据
*
* @param tableName 表名
* @param row id 及其内容
*/
public static int updateById(String tableName, Row row) {
return invoker().updateById(tableName, row);
return invoker().updateById(null,tableName, row);
}
/**
* 根据 map 构建的条件来更新数据
*
* @param schema 模式
* @param tableName 表名
* @param data 数据内容
* @param whereColumns where 条件
*/
public static int updateByMap(String schema,String tableName, Row data, Map<String, Object> whereColumns) {
return invoker().updateByQuery(schema,tableName, data, new QueryWrapper().where(whereColumns));
}
/**
* 根据 map 构建的条件来更新数据
*
@ -233,7 +374,19 @@ public class Db {
* @param whereColumns where 条件
*/
public static int updateByMap(String tableName, Row data, Map<String, Object> whereColumns) {
return invoker().updateByQuery(tableName, data, new QueryWrapper().where(whereColumns));
return invoker().updateByQuery(null,tableName, data, new QueryWrapper().where(whereColumns));
}
/**
* 根据 condition 来更新数据
*
* @param schema 模式
* @param tableName 表名
* @param data 数据
* @param condition 条件
*/
public static int updateByCondition(String schema,String tableName, Row data, QueryCondition condition) {
return invoker().updateByQuery(schema,tableName, data, new QueryWrapper().where(condition));
}
/**
@ -244,10 +397,22 @@ public class Db {
* @param condition 条件
*/
public static int updateByCondition(String tableName, Row data, QueryCondition condition) {
return invoker().updateByQuery(tableName, data, new QueryWrapper().where(condition));
return invoker().updateByQuery(null,tableName, data, new QueryWrapper().where(condition));
}
/**
* 根据 query 构建的条件来更新数据
*
* @param schema 模式
* @param tableName 表名
* @param data 数据内容
* @param queryWrapper queryWrapper 条件
*/
public static int updateByQuery(String schema,String tableName, Row data, QueryWrapper queryWrapper) {
return invoker().updateByQuery(schema,tableName, data, queryWrapper);
}
/**
* 根据 query 构建的条件来更新数据
*
@ -256,10 +421,21 @@ public class Db {
* @param queryWrapper queryWrapper 条件
*/
public static int updateByQuery(String tableName, Row data, QueryWrapper queryWrapper) {
return invoker().updateByQuery(tableName, data, queryWrapper);
return invoker().updateByQuery(null,tableName, data, queryWrapper);
}
/**
* 根据主键来批量更新数据
*
* @param schema 模式
* @param tableName 表名
* @param rows 还有主键的数据
*/
public static int updateBatchById(String schema,String tableName, List<Row> rows) {
return invoker().updateBatchById(schema,tableName, rows);
}
/**
* 根据主键来批量更新数据
*
@ -267,7 +443,7 @@ public class Db {
* @param rows 还有主键的数据
*/
public static int updateBatchById(String tableName, List<Row> rows) {
return invoker().updateBatchById(tableName, rows);
return invoker().updateBatchById(null,tableName, rows);
}
@ -298,8 +474,32 @@ public class Db {
}
/**
* 通过 update schema.table set field = field + 1 where ... 的这种方向更新数据库某个字段内容
*
*
* @param schema 模式
* @param tableName 表名
* @param fieldName 字段名
* @param value 递增值
* @param queryWrapper 条件
* @return 受影响行数
*/
public static int updateNumberAddByQuery(String schema,String tableName, String fieldName, Number value, QueryWrapper queryWrapper){
return invoker().updateNumberAddByQuery(schema,tableName, fieldName, value, queryWrapper);
}
/**
* 通过 update table set field = field + 1 where ... 的这种方向更新数据库某个字段内容
*
* @param tableName
* @param fieldName
* @param value
* @param queryWrapper
* @return
*/
public static int updateNumberAddByQuery(String tableName, String fieldName, Number value, QueryWrapper queryWrapper){
return invoker().updateNumberAddByQuery(tableName, fieldName, value, queryWrapper);
return invoker().updateNumberAddByQuery(null,tableName, fieldName, value, queryWrapper);
}
@ -328,6 +528,17 @@ public class Db {
}
/**
* 根据 id 来查询 1 条数据
*
* @param schema 模式
* @param tableName 表名
* @param row 主键和 id
*/
public static Row selectOneById(String schema,String tableName, Row row) {
return invoker().selectOneById(schema,tableName, row);
}
/**
* 根据 id 来查询 1 条数据
*
@ -335,10 +546,22 @@ public class Db {
* @param row 主键和 id
*/
public static Row selectOneById(String tableName, Row row) {
return invoker().selectOneById(tableName, row);
return invoker().selectOneById(null,tableName, row);
}
/**
* 根据主键来查询 1 条数据
*
* @param schema 模式
* @param tableName 表名
* @param primaryKey 主键字段名称
* @param id 主键值
*/
public static Row selectOneById(String schema,String tableName, String primaryKey, Object id) {
return invoker().selectOneById(schema,tableName, primaryKey, id);
}
/**
* 根据主键来查询 1 条数据
*
@ -347,9 +570,21 @@ public class Db {
* @param id 主键值
*/
public static Row selectOneById(String tableName, String primaryKey, Object id) {
return invoker().selectOneById(tableName, primaryKey, id);
return invoker().selectOneById(null,tableName, primaryKey, id);
}
/**
* 根据 map 来查询 1 条数据
*
* @param schema 模式
* @param tableName 表名
* @param whereColumns where条件
*/
public static Row selectOneByMap(String schema,String tableName, Map whereColumns) {
return invoker().selectOneByQuery(schema,tableName, new QueryWrapper().where(whereColumns));
}
/**
* 根据 map 来查询 1 条数据
@ -358,7 +593,18 @@ public class Db {
* @param whereColumns where条件
*/
public static Row selectOneByMap(String tableName, Map whereColumns) {
return invoker().selectOneByQuery(tableName, new QueryWrapper().where(whereColumns));
return invoker().selectOneByQuery(null,tableName, new QueryWrapper().where(whereColumns));
}
/**
* 根据 condition 来查询数据
*
* @param schema 模式
* @param tableName 表名
* @param condition 条件
*/
public static Row selectOneByCondition(String schema,String tableName, QueryCondition condition) {
return invoker().selectOneByQuery(schema,tableName, new QueryWrapper().where(condition));
}
/**
@ -368,10 +614,21 @@ public class Db {
* @param condition 条件
*/
public static Row selectOneByCondition(String tableName, QueryCondition condition) {
return invoker().selectOneByQuery(tableName, new QueryWrapper().where(condition));
return invoker().selectOneByQuery(null,tableName, new QueryWrapper().where(condition));
}
/**
* 根据 queryWrapper 来查询 1 条数据
*
* @param schema 模式
* @param tableName 表名
* @param queryWrapper queryWrapper
*/
public static Row selectOneByQuery(String schema,String tableName, QueryWrapper queryWrapper) {
return invoker().selectOneByQuery(schema,tableName, queryWrapper);
}
/**
* 根据 queryWrapper 来查询 1 条数据
*
@ -379,7 +636,7 @@ public class Db {
* @param queryWrapper queryWrapper
*/
public static Row selectOneByQuery(String tableName, QueryWrapper queryWrapper) {
return invoker().selectOneByQuery(tableName, queryWrapper);
return invoker().selectOneByQuery(null,tableName, queryWrapper);
}
@ -393,7 +650,7 @@ public class Db {
if (queryTables == null || queryTables.isEmpty()) {
throw FlexExceptions.wrap("table must not be null or empty in Db.selectOneByQuery");
}
return invoker().selectOneByQuery(null, queryWrapper);
return invoker().selectOneByQuery(null,null, queryWrapper);
}
@ -408,6 +665,17 @@ public class Db {
}
/**
* 通过 map 构建的条件来查询数据列表
*
* @param schema 模式
* @param tableName 表名
* @param whereColumns where 条件
*/
public static List<Row> selectListByMap(String schema,String tableName, Map<String, Object> whereColumns) {
return invoker().selectListByQuery(schema,tableName, new QueryWrapper().where(whereColumns));
}
/**
* 通过 map 构建的条件来查询数据列表
*
@ -415,7 +683,20 @@ public class Db {
* @param whereColumns where 条件
*/
public static List<Row> selectListByMap(String tableName, Map<String, Object> whereColumns) {
return invoker().selectListByQuery(tableName, new QueryWrapper().where(whereColumns));
return invoker().selectListByQuery(null,tableName, new QueryWrapper().where(whereColumns));
}
/**
* 根据 map 构建的条件来查询数据列表
*
* @param schema 模式
* @param tableName 表名
* @param whereColumns 条件
* @param count 数据量
*/
public static List<Row> selectListByMap(String schema,String tableName, Map<String, Object> whereColumns, int count) {
return invoker().selectListByQuery(schema,tableName, new QueryWrapper().where(whereColumns).limit(count));
}
/**
@ -426,7 +707,19 @@ public class Db {
* @param count 数据量
*/
public static List<Row> selectListByMap(String tableName, Map<String, Object> whereColumns, int count) {
return invoker().selectListByQuery(tableName, new QueryWrapper().where(whereColumns).limit(count));
return invoker().selectListByQuery(null,tableName, new QueryWrapper().where(whereColumns).limit(count));
}
/**
* 通过 condition 条件来查询数据列表
*
* @param schema 模式
* @param tableName 表名
* @param condition where 条件
*/
public static List<Row> selectListByCondition(String schema,String tableName, QueryCondition condition) {
return invoker().selectListByQuery(schema,tableName, new QueryWrapper().where(condition));
}
@ -437,7 +730,18 @@ public class Db {
* @param condition where 条件
*/
public static List<Row> selectListByCondition(String tableName, QueryCondition condition) {
return invoker().selectListByQuery(tableName, new QueryWrapper().where(condition));
return invoker().selectListByQuery(null,tableName, new QueryWrapper().where(condition));
}
/**
* 根据 condition 条件来查询数据列表
*
* @param schema 模式
* @param tableName 表名
* @param condition 条件
* @param count 数据量
*/
public static List<Row> selectListByCondition(String schema,String tableName, QueryCondition condition, int count) {
return invoker().selectListByQuery(schema,tableName, new QueryWrapper().where(condition).limit(count));
}
/**
@ -448,7 +752,19 @@ public class Db {
* @param count 数据量
*/
public static List<Row> selectListByCondition(String tableName, QueryCondition condition, int count) {
return invoker().selectListByQuery(tableName, new QueryWrapper().where(condition).limit(count));
return invoker().selectListByQuery(null,tableName, new QueryWrapper().where(condition).limit(count));
}
/**
* 通过 query 来查询数据列表
*
* @param schema 模式
* @param tableName 表名
* @param queryWrapper query 条件
*/
public static List<Row> selectListByQuery(String schema,String tableName, QueryWrapper queryWrapper) {
return invoker().selectListByQuery(schema,tableName, queryWrapper);
}
@ -459,7 +775,7 @@ public class Db {
* @param queryWrapper query 条件
*/
public static List<Row> selectListByQuery(String tableName, QueryWrapper queryWrapper) {
return invoker().selectListByQuery(tableName, queryWrapper);
return invoker().selectListByQuery(null,tableName, queryWrapper);
}
@ -473,7 +789,17 @@ public class Db {
if (queryTables == null || queryTables.isEmpty()) {
throw FlexExceptions.wrap("table must not be null or empty in Db.selectListByQuery");
}
return invoker().selectListByQuery(null, queryWrapper);
return invoker().selectListByQuery(null,null, queryWrapper);
}
/**
* 查询某张表的所有数据
*
* @param schema 模式
* @param tableName 表名
*/
public static List<Row> selectAll(String schema,String tableName) {
return invoker().selectAll(schema,tableName);
}
/**
@ -482,7 +808,7 @@ public class Db {
* @param tableName 表名
*/
public static List<Row> selectAll(String tableName) {
return invoker().selectAll(tableName);
return invoker().selectAll(null,tableName);
}
/**
@ -496,6 +822,18 @@ public class Db {
}
/**
* 根据 queryWrapper 查询内容数据返回的应该只有 1 1
*
* @param schema 模式
* @param tableName 表名
* @param queryWrapper query 封装
* @return 数据内容
*/
public static Object selectObject(String schema,String tableName, QueryWrapper queryWrapper) {
return invoker().selectObjectByQuery(schema,tableName, queryWrapper);
}
/**
* 根据 queryWrapper 查询内容数据返回的应该只有 1 1
*
@ -504,7 +842,7 @@ public class Db {
* @return 数据内容
*/
public static Object selectObject(String tableName, QueryWrapper queryWrapper) {
return invoker().selectObjectByQuery(tableName, queryWrapper);
return invoker().selectObjectByQuery(null,tableName, queryWrapper);
}
@ -515,10 +853,11 @@ public class Db {
* @return 数据内容
*/
public static Object selectObject(QueryWrapper queryWrapper) {
return invoker().selectObjectByQuery(null, queryWrapper);
return invoker().selectObjectByQuery(null, null, queryWrapper);
}
/**
* 查询某列内容数据返回应该有 多行 1
*
@ -530,6 +869,18 @@ public class Db {
}
/**
* 根据 queryWrapper 查询内容数据返回的应该只有 1 1
*
* @param schema 模式
* @param tableName 表名
* @param queryWrapper query 封装
* @return 数据内容
*/
public static Object selectObjectList(String schema,String tableName, QueryWrapper queryWrapper) {
return invoker().selectObjectListByQuery(schema,tableName, queryWrapper);
}
/**
* 根据 queryWrapper 查询内容数据返回的应该只有 1 1
*
@ -538,7 +889,7 @@ public class Db {
* @return 数据内容
*/
public static Object selectObjectList(String tableName, QueryWrapper queryWrapper) {
return invoker().selectObjectListByQuery(tableName, queryWrapper);
return invoker().selectObjectListByQuery(null,tableName, queryWrapper);
}
@ -549,7 +900,7 @@ public class Db {
* @return 数据内容
*/
public static Object selectObjectList(QueryWrapper queryWrapper) {
return invoker().selectObjectListByQuery(null, queryWrapper);
return invoker().selectObjectListByQuery(null, null, queryWrapper);
}
@ -565,6 +916,17 @@ public class Db {
}
/**
* 根据 condition 条件来查询数量
*
* @param schema 模式
* @param tableName 表名
* @param condition 条件
*/
public static long selectCountByCondition(String schema,String tableName, QueryCondition condition) {
return invoker().selectCountByQuery(schema,tableName, new QueryWrapper().where(condition));
}
/**
* 根据 condition 条件来查询数量
*
@ -572,10 +934,21 @@ public class Db {
* @param condition 条件
*/
public static long selectCountByCondition(String tableName, QueryCondition condition) {
return invoker().selectCountByQuery(tableName, new QueryWrapper().where(condition));
return invoker().selectCountByQuery(null,tableName, new QueryWrapper().where(condition));
}
/**
* 根据 query 构建的条件来查询数据量
*
* @param schema 模式
* @param tableName 表名
* @param queryWrapper query 条件
*/
public static long selectCountByQuery(String schema,String tableName, QueryWrapper queryWrapper) {
return invoker().selectCountByQuery(schema,tableName, queryWrapper);
}
/**
* 根据 query 构建的条件来查询数据量
*
@ -583,7 +956,7 @@ public class Db {
* @param queryWrapper query 条件
*/
public static long selectCountByQuery(String tableName, QueryWrapper queryWrapper) {
return invoker().selectCountByQuery(tableName, queryWrapper);
return invoker().selectCountByQuery(null,tableName, queryWrapper);
}
@ -598,7 +971,21 @@ public class Db {
if (queryTables == null || queryTables.isEmpty()) {
throw FlexExceptions.wrap("Query tables must not be null or empty in Db.selectCountByQuery");
}
return invoker().selectCountByQuery(null, queryWrapper);
return invoker().selectCountByQuery(null,null, queryWrapper);
}
/**
* 分页查询
*
* @param schema 模式
* @param tableName 表名
* @param pageNumber 当前的页码
* @param pageSize 每页的数据量
* @param condition 条件
*/
public static Page<Row> paginate(String schema,String tableName, int pageNumber, int pageSize, QueryCondition condition) {
return invoker().paginate(schema,tableName, new Page<>(pageNumber, pageSize), QueryWrapper.create().where(condition));
}
@ -611,10 +998,24 @@ public class Db {
* @param condition 条件
*/
public static Page<Row> paginate(String tableName, int pageNumber, int pageSize, QueryCondition condition) {
return invoker().paginate(tableName, new Page<>(pageNumber, pageSize), QueryWrapper.create().where(condition));
return invoker().paginate(null,tableName, new Page<>(pageNumber, pageSize), QueryWrapper.create().where(condition));
}
/**
* 分页查询
*
* @param schema 模式
* @param tableName 表名
* @param pageNumber 当前的页码
* @param pageSize 每页的数据量
* @param totalRow 数据总量
* @param condition 条件
*/
public static Page<Row> paginate(String schema,String tableName, int pageNumber, int pageSize, int totalRow, QueryCondition condition) {
return invoker().paginate(schema,tableName, new Page<>(pageNumber, pageSize, totalRow), QueryWrapper.create().where(condition));
}
/**
* 分页查询
*
@ -625,10 +1026,23 @@ public class Db {
* @param condition 条件
*/
public static Page<Row> paginate(String tableName, int pageNumber, int pageSize, int totalRow, QueryCondition condition) {
return invoker().paginate(tableName, new Page<>(pageNumber, pageSize, totalRow), QueryWrapper.create().where(condition));
return invoker().paginate(null,tableName, new Page<>(pageNumber, pageSize, totalRow), QueryWrapper.create().where(condition));
}
/**
* 分页查询
*
* @param schema 模式
* @param tableName 表名
* @param pageNumber 当前的页码
* @param pageSize 每页的数据量
* @param queryWrapper 条件
*/
public static Page<Row> paginate(String schema,String tableName, int pageNumber, int pageSize, QueryWrapper queryWrapper) {
return invoker().paginate(schema,tableName, new Page<>(pageNumber, pageSize), queryWrapper);
}
/**
* 分页查询
*
@ -638,10 +1052,24 @@ public class Db {
* @param queryWrapper 条件
*/
public static Page<Row> paginate(String tableName, int pageNumber, int pageSize, QueryWrapper queryWrapper) {
return invoker().paginate(tableName, new Page<>(pageNumber, pageSize), queryWrapper);
return invoker().paginate(null,tableName, new Page<>(pageNumber, pageSize), queryWrapper);
}
/**
* 分页查询
*
* @param schema 模式
* @param tableName 表名
* @param pageNumber 当前的页码
* @param pageSize 每页的数据量
* @param totalRow 数据总量
* @param queryWrapper 条件
*/
public static Page<Row> paginate(String schema,String tableName, int pageNumber, int pageSize, int totalRow, QueryWrapper queryWrapper) {
return invoker().paginate(schema,tableName, new Page<>(pageNumber, pageSize, totalRow), queryWrapper);
}
/**
* 分页查询
*
@ -652,10 +1080,22 @@ public class Db {
* @param queryWrapper 条件
*/
public static Page<Row> paginate(String tableName, int pageNumber, int pageSize, int totalRow, QueryWrapper queryWrapper) {
return invoker().paginate(tableName, new Page<>(pageNumber, pageSize, totalRow), queryWrapper);
return invoker().paginate(null,tableName, new Page<>(pageNumber, pageSize, totalRow), queryWrapper);
}
/**
* 分页查询
*
* @param schema 模式
* @param tableName 表名
* @param page page 对象 page totalCount 则不会再去查询分类的数据总量
* @param queryWrapper 条件
*/
public static Page<Row> paginate(String schema,String tableName, Page<Row> page, QueryWrapper queryWrapper) {
return invoker().paginate(schema,tableName, page, queryWrapper);
}
/**
* 分页查询
*
@ -664,7 +1104,7 @@ public class Db {
* @param queryWrapper 条件
*/
public static Page<Row> paginate(String tableName, Page<Row> page, QueryWrapper queryWrapper) {
return invoker().paginate(tableName, page, queryWrapper);
return invoker().paginate(null,tableName, page, queryWrapper);
}

View File

@ -45,7 +45,7 @@ public interface RowMapper {
* @see RowSqlProvider#insert(Map)
*/
@InsertProvider(value = RowSqlProvider.class, method = "insert")
int insert(@Param(FlexConsts.TABLE_NAME) String tableName, @Param(FlexConsts.ROW) Row row);
int insert(@Param(FlexConsts.SCHEMA_NAME) String schema,@Param(FlexConsts.TABLE_NAME) String tableName, @Param(FlexConsts.ROW) Row row);
/**
@ -71,7 +71,7 @@ public interface RowMapper {
* @see RowSqlProvider#insertBatchWithFirstRowColumns(Map)
*/
@InsertProvider(value = RowSqlProvider.class, method = "insertBatchWithFirstRowColumns")
int insertBatchWithFirstRowColumns(@Param(FlexConsts.TABLE_NAME) String tableName, @Param(FlexConsts.ROWS) List<Row> rows);
int insertBatchWithFirstRowColumns(@Param(FlexConsts.SCHEMA_NAME) String schema,@Param(FlexConsts.TABLE_NAME) String tableName, @Param(FlexConsts.ROWS) List<Row> rows);
/////// delete /////
@ -89,17 +89,19 @@ public interface RowMapper {
/**
* 根据 id 删除数据
*
* @param schema 模式
* @param tableName 表名
* @param row id 值的数据可以通过 {@link Row#ofKey(String, Object)} 来创建
* @return 执行影响的行数
*/
default int deleteById(String tableName, Row row) {
return deleteById(tableName, StringUtil.join(",", row.obtainsPrimaryKeyStrings()), row.obtainsPrimaryValues());
default int deleteById(String schema,String tableName, Row row) {
return deleteById(schema,tableName, StringUtil.join(",", row.obtainsPrimaryKeyStrings()), row.obtainsPrimaryValues());
}
/**
* 根据 id 删除数据
*
* @param schema 模式
* @param tableName 表名
* @param primaryKey 主键多个主键用英文逗号隔开
* @param id 数据多个主键时传入数组例如 new Object[]{1,2}
@ -107,12 +109,13 @@ public interface RowMapper {
* @see RowSqlProvider#deleteById(Map)
*/
@DeleteProvider(value = RowSqlProvider.class, method = "deleteById")
int deleteById(@Param(FlexConsts.TABLE_NAME) String tableName, @Param(FlexConsts.PRIMARY_KEY) String primaryKey, @Param(FlexConsts.PRIMARY_VALUE) Object id);
int deleteById(@Param(FlexConsts.SCHEMA_NAME) String schema,@Param(FlexConsts.TABLE_NAME) String tableName, @Param(FlexConsts.PRIMARY_KEY) String primaryKey, @Param(FlexConsts.PRIMARY_VALUE) Object id);
/**
* 根据 多个 id 值删除多条数据
*
* @param schema 模式
* @param tableName 表名
* @param primaryKey 主键
* @param ids id 的集合
@ -120,19 +123,20 @@ public interface RowMapper {
* @see RowSqlProvider#deleteBatchByIds(Map)
*/
@DeleteProvider(value = RowSqlProvider.class, method = "deleteBatchByIds")
int deleteBatchByIds(@Param(FlexConsts.TABLE_NAME) String tableName, @Param(FlexConsts.PRIMARY_KEY) String primaryKey, @Param(FlexConsts.PRIMARY_VALUE) Collection<?> ids);
int deleteBatchByIds(@Param(FlexConsts.SCHEMA_NAME) String schema,@Param(FlexConsts.TABLE_NAME) String tableName, @Param(FlexConsts.PRIMARY_KEY) String primaryKey, @Param(FlexConsts.PRIMARY_VALUE) Collection<?> ids);
/**
* 根据 queryWrapper 构建 where 条件来删除数据
*
* @param schema 模式
* @param tableName 表名
* @param queryWrapper queryWrapper
* @return 执行影响的行数
* @see RowSqlProvider#deleteByQuery(Map)
*/
@DeleteProvider(value = RowSqlProvider.class, method = "deleteByQuery")
int deleteByQuery(@Param(FlexConsts.TABLE_NAME) String tableName, @Param(FlexConsts.QUERY) QueryWrapper queryWrapper);
int deleteByQuery(@Param(FlexConsts.SCHEMA_NAME) String schema,@Param(FlexConsts.TABLE_NAME) String tableName, @Param(FlexConsts.QUERY) QueryWrapper queryWrapper);
////////update ////
@ -151,18 +155,20 @@ public interface RowMapper {
/**
* 根据主键来更新数据
*
* @param schema 模式
* @param tableName 表名
* @param row 数据其必须包含主键数据列名和值
* @return 执行影响的行数
* @see RowSqlProvider#updateById(Map)
*/
@UpdateProvider(value = RowSqlProvider.class, method = "updateById")
int updateById(@Param(FlexConsts.TABLE_NAME) String tableName, @Param(FlexConsts.ROW) Row row);
int updateById(@Param(FlexConsts.SCHEMA_NAME) String schema,@Param(FlexConsts.TABLE_NAME) String tableName, @Param(FlexConsts.ROW) Row row);
/**
* 根据 queryWrapper 来构建 where 条件更新数据
*
* @param schema 模式
* @param tableName 表名
* @param data 更新数据
* @param queryWrapper queryWrapper
@ -170,7 +176,7 @@ public interface RowMapper {
* @see RowSqlProvider#updateByQuery(Map)
*/
@UpdateProvider(value = RowSqlProvider.class, method = "updateByQuery")
int updateByQuery(@Param(FlexConsts.TABLE_NAME) String tableName, @Param(FlexConsts.ROW) Row data, @Param(FlexConsts.QUERY) QueryWrapper queryWrapper);
int updateByQuery(@Param(FlexConsts.SCHEMA_NAME) String schema,@Param(FlexConsts.TABLE_NAME) String tableName, @Param(FlexConsts.ROW) Row data, @Param(FlexConsts.QUERY) QueryWrapper queryWrapper);
/**
@ -179,13 +185,14 @@ public interface RowMapper {
* 1此方法需要在 mysql 等链接配置需要开启 allowMultiQueries=true
* 2更新成功返回的结果也可能为 0
*
* @param schema 模式
* @param tableName 表名
* @param rows 数据其必须包含主键数据列名和值
* @return 执行影响的行数
* @see RowSqlProvider#updateBatchById(Map)
*/
@UpdateProvider(value = RowSqlProvider.class, method = "updateBatchById")
int updateBatchById(@Param(FlexConsts.TABLE_NAME) String tableName, @Param(FlexConsts.ROWS) List<Row> rows);
int updateBatchById(@Param(FlexConsts.SCHEMA_NAME) String schema,@Param(FlexConsts.TABLE_NAME) String tableName, @Param(FlexConsts.ROWS) List<Row> rows);
/**
@ -208,7 +215,7 @@ public interface RowMapper {
* @see RowSqlProvider#updateNumberAddByQuery(Map)
*/
@UpdateProvider(type = RowSqlProvider.class, method = "updateNumberAddByQuery")
int updateNumberAddByQuery(@Param(FlexConsts.TABLE_NAME) String tableName, @Param(FlexConsts.FIELD_NAME) String fieldName
int updateNumberAddByQuery(@Param(FlexConsts.SCHEMA_NAME) String schema,@Param(FlexConsts.TABLE_NAME) String tableName, @Param(FlexConsts.FIELD_NAME) String fieldName
, @Param(FlexConsts.VALUE) Number value, @Param(FlexConsts.QUERY) QueryWrapper queryWrapper);
@ -237,18 +244,18 @@ public interface RowMapper {
/**
* 通过主键来查询数据
*
* @param schema 模式
* @param tableName 表名
* @param row 主键和ID的描述通过 {@link Row#ofKey(String, Object)} 来进行构建
* @return 返回一条数据或者 null
*/
default Row selectOneById(String tableName, Row row) {
return selectOneById(tableName, StringUtil.join(",", row.obtainsPrimaryKeyStrings()), row.obtainsPrimaryValues());
default Row selectOneById(String schema,String tableName, Row row) {
return selectOneById(schema,tableName, StringUtil.join(",", row.obtainsPrimaryKeyStrings()), row.obtainsPrimaryValues());
}
/**
* 根据主键来查询数据
*
* @param schema 模式
* @param tableName 表名
* @param primaryKey 主键
* @param id id
@ -256,18 +263,19 @@ public interface RowMapper {
* @see RowSqlProvider#selectOneById(Map)
*/
@SelectProvider(value = RowSqlProvider.class, method = "selectOneById")
Row selectOneById(@Param(FlexConsts.TABLE_NAME) String tableName, @Param(FlexConsts.PRIMARY_KEY) String primaryKey, @Param(FlexConsts.PRIMARY_VALUE) Object id);
Row selectOneById(@Param(FlexConsts.SCHEMA_NAME) String schema,@Param(FlexConsts.TABLE_NAME) String tableName, @Param(FlexConsts.PRIMARY_KEY) String primaryKey, @Param(FlexConsts.PRIMARY_VALUE) Object id);
/**
* 根据 queryWrapper 来查询 1 条数据
*
* @param schema 模式
* @param tableName 表名
* @param queryWrapper queryWrapper
* @return row or null
*/
default Row selectOneByQuery(String tableName, QueryWrapper queryWrapper) {
List<Row> rows = selectListByQuery(tableName, queryWrapper.limit(1));
default Row selectOneByQuery(String schema,String tableName, QueryWrapper queryWrapper) {
List<Row> rows = selectListByQuery(schema,tableName, queryWrapper.limit(1));
if (rows == null || rows.isEmpty()) {
return null;
} else {
@ -289,23 +297,25 @@ public interface RowMapper {
/**
* 根据 queryWrapper 来查询一个 row 列表
*
* @param schema 模式
* @param tableName 表名
* @param queryWrapper queryWrapper
* @return row 列表
* @see RowSqlProvider#selectListByQuery(Map)
*/
@SelectProvider(value = RowSqlProvider.class, method = "selectListByQuery")
List<Row> selectListByQuery(@Param(FlexConsts.TABLE_NAME) String tableName, @Param(FlexConsts.QUERY) QueryWrapper queryWrapper);
List<Row> selectListByQuery(@Param(FlexConsts.SCHEMA_NAME) String schema,@Param(FlexConsts.TABLE_NAME) String tableName, @Param(FlexConsts.QUERY) QueryWrapper queryWrapper);
/**
* 查询某张表的全部数据
*
* @param schema 模式
* @param tableName 表名
* @return row 列表
*/
default List<Row> selectAll(String tableName) {
return selectListByQuery(tableName, QueryWrapper.create());
default List<Row> selectAll(String schema,String tableName) {
return selectListByQuery(schema,tableName, QueryWrapper.create());
}
/**
@ -354,13 +364,14 @@ public interface RowMapper {
* 根据 queryWrapper 1 条数据
* queryWrapper 执行的结果应该只有 1 例如 QueryWrapper.create().select(ACCOUNT.id).where...
*
* @param schema 模式
* @param tableName 表名
* @param queryWrapper queryWrapper
* @return 数据
*/
default Object selectObjectByQuery(String tableName, QueryWrapper queryWrapper) {
default Object selectObjectByQuery(String schema,String tableName, QueryWrapper queryWrapper) {
queryWrapper.limit(1);
List<Object> objects = selectObjectListByQuery(tableName, queryWrapper);
List<Object> objects = selectObjectListByQuery(schema,tableName, queryWrapper);
if (objects == null || objects.isEmpty()) {
return null;
}
@ -377,23 +388,24 @@ public interface RowMapper {
* @see RowSqlProvider#selectObjectByQuery(Map)
*/
@SelectProvider(type = RowSqlProvider.class, method = "selectObjectByQuery")
List<Object> selectObjectListByQuery(@Param(FlexConsts.TABLE_NAME) String tableName, @Param(FlexConsts.QUERY) QueryWrapper queryWrapper);
List<Object> selectObjectListByQuery(@Param(FlexConsts.SCHEMA_NAME) String schema,@Param(FlexConsts.TABLE_NAME) String tableName, @Param(FlexConsts.QUERY) QueryWrapper queryWrapper);
/**
* 查询数据量
*
* @param schema 模式
* @param tableName 表名
* @param queryWrapper 查询包装器
* @return 数据量
*/
default long selectCountByQuery(String tableName, QueryWrapper queryWrapper) {
default long selectCountByQuery(String schema,String tableName, QueryWrapper queryWrapper) {
List<QueryColumn> selectColumns = CPI.getSelectColumns(queryWrapper);
if (CollectionUtil.isEmpty(selectColumns)) {
queryWrapper.select(count());
}
List<Object> objects = selectObjectListByQuery(tableName, queryWrapper);
List<Object> objects = selectObjectListByQuery(schema,tableName, queryWrapper);
Object object = objects == null || objects.isEmpty() ? null : objects.get(0);
if (object == null) {
return 0;
@ -408,14 +420,15 @@ public interface RowMapper {
/**
* 分页查询数据
*
* @param schema 模式
* @param tableName 表名
* @param page page 封装类
* @param queryWrapper 条件
* @return
*/
default Page<Row> paginate(String tableName, Page<Row> page, QueryWrapper queryWrapper) {
default Page<Row> paginate(String schema,String tableName, Page<Row> page, QueryWrapper queryWrapper) {
CPI.setFromIfNecessary(queryWrapper, tableName);
CPI.setFromIfNecessary(queryWrapper,schema, tableName);
List<QueryColumn> selectColumns = CPI.getSelectColumns(queryWrapper);
@ -468,7 +481,7 @@ public interface RowMapper {
CPI.setJoins(queryWrapper, null);
}
long count = selectCountByQuery(tableName, queryWrapper);
long count = selectCountByQuery(schema,tableName, queryWrapper);
page.setTotalRow(count);
}
@ -492,7 +505,7 @@ public interface RowMapper {
int offset = page.getPageSize() * (page.getPageNumber() - 1);
queryWrapper.limit(offset, page.getPageSize());
List<Row> records = selectListByQuery(tableName, queryWrapper);
List<Row> records = selectListByQuery(schema,tableName, queryWrapper);
page.setRecords(records);
return page;

View File

@ -42,8 +42,8 @@ public class RowMapperInvoker {
}
}
public int insert(String tableName, Row row) {
return execute(mapper -> mapper.insert(tableName, row));
public int insert(String schema,String tableName, Row row) {
return execute(mapper -> mapper.insert(schema,tableName, row));
}
@ -51,29 +51,29 @@ public class RowMapperInvoker {
return execute(mapper -> mapper.insertBySql(sql, args));
}
public int insertBatchWithFirstRowColumns(String tableName, List<Row> rows) {
return execute(mapper -> mapper.insertBatchWithFirstRowColumns(tableName, rows));
public int insertBatchWithFirstRowColumns(String schema,String tableName, List<Row> rows) {
return execute(mapper -> mapper.insertBatchWithFirstRowColumns(schema,tableName, rows));
}
public int deleteBySql(String sql, Object... args) {
return execute(mapper -> mapper.deleteBySql(sql, args));
}
public int deleteById(String tableName, Row row) {
return execute(mapper -> mapper.deleteById(tableName, row));
public int deleteById(String schema,String tableName, Row row) {
return execute(mapper -> mapper.deleteById(schema,tableName, row));
}
public int deleteById(String tableName, String primaryKey, Object id) {
return execute(mapper -> mapper.deleteById(tableName, primaryKey, id));
public int deleteById(String schema,String tableName, String primaryKey, Object id) {
return execute(mapper -> mapper.deleteById(schema,tableName, primaryKey, id));
}
public int deleteBatchByIds(String tableName, String primaryKey, Collection<?> ids) {
return execute(mapper -> mapper.deleteBatchByIds(tableName, primaryKey, ids));
public int deleteBatchByIds(String schema,String tableName, String primaryKey, Collection<?> ids) {
return execute(mapper -> mapper.deleteBatchByIds(schema,tableName, primaryKey, ids));
}
public int deleteByQuery(String tableName, QueryWrapper queryWrapper) {
return execute(mapper -> mapper.deleteByQuery(tableName, queryWrapper));
public int deleteByQuery(String schema,String tableName, QueryWrapper queryWrapper) {
return execute(mapper -> mapper.deleteByQuery(schema,tableName, queryWrapper));
}
public int updateBySql(String sql, Object... args) {
@ -115,52 +115,52 @@ public class RowMapperInvoker {
return results;
}
public int updateById(String tableName, Row row) {
return execute(mapper -> mapper.updateById(tableName, row));
public int updateById(String schema,String tableName, Row row) {
return execute(mapper -> mapper.updateById(schema,tableName, row));
}
public int updateByQuery(String tableName, Row data, QueryWrapper queryWrapper) {
return execute(mapper -> mapper.updateByQuery(tableName, data, queryWrapper));
public int updateByQuery(String schema,String tableName, Row data, QueryWrapper queryWrapper) {
return execute(mapper -> mapper.updateByQuery(schema,tableName, data, queryWrapper));
}
public int updateBatchById(String tableName, List<Row> rows) {
return execute(mapper -> mapper.updateBatchById(tableName, rows));
public int updateBatchById(String schema,String tableName, List<Row> rows) {
return execute(mapper -> mapper.updateBatchById(schema,tableName, rows));
}
public Row selectOneBySql(String sql, Object... args) {
return execute(mapper -> mapper.selectOneBySql(sql, args));
}
public Row selectOneById(String tableName, Row row) {
return execute(mapper -> mapper.selectOneById(tableName, row));
public Row selectOneById(String schema,String tableName, Row row) {
return execute(mapper -> mapper.selectOneById(schema,tableName, row));
}
public Row selectOneById(String tableName, String primaryKey, Object id) {
return execute(mapper -> mapper.selectOneById(tableName, primaryKey, id));
public Row selectOneById(String schema,String tableName, String primaryKey, Object id) {
return execute(mapper -> mapper.selectOneById(schema,tableName, primaryKey, id));
}
public Row selectOneByQuery(String tableName, QueryWrapper queryWrapper) {
return execute(mapper -> mapper.selectOneByQuery(tableName, queryWrapper));
public Row selectOneByQuery(String schema,String tableName, QueryWrapper queryWrapper) {
return execute(mapper -> mapper.selectOneByQuery(schema,tableName, queryWrapper));
}
public List<Row> selectListBySql(String sql, Object... args) {
return execute(mapper -> mapper.selectListBySql(sql, args));
}
public List<Row> selectListByQuery(String tableName, QueryWrapper queryWrapper) {
return execute(mapper -> mapper.selectListByQuery(tableName, queryWrapper));
public List<Row> selectListByQuery(String schema,String tableName, QueryWrapper queryWrapper) {
return execute(mapper -> mapper.selectListByQuery(schema,tableName, queryWrapper));
}
public List<Row> selectAll(String tableName) {
return execute(mapper -> mapper.selectAll(tableName));
public List<Row> selectAll(String schema,String tableName) {
return execute(mapper -> mapper.selectAll(schema,tableName));
}
public Object selectObjectByQuery(String tableName, QueryWrapper queryWrapper) {
return execute(mapper -> mapper.selectObjectByQuery(tableName, queryWrapper));
public Object selectObjectByQuery(String schema,String tableName, QueryWrapper queryWrapper) {
return execute(mapper -> mapper.selectObjectByQuery(schema,tableName, queryWrapper));
}
public List<Object> selectObjectListByQuery(String tableName, QueryWrapper queryWrapper) {
return execute(mapper -> mapper.selectObjectListByQuery(tableName, queryWrapper));
public List<Object> selectObjectListByQuery(String schema,String tableName, QueryWrapper queryWrapper) {
return execute(mapper -> mapper.selectObjectListByQuery(schema,tableName, queryWrapper));
}
public Object selectObject(String sql, Object... args) {
@ -176,16 +176,16 @@ public class RowMapperInvoker {
}
public long selectCountByQuery(String tableName, QueryWrapper queryWrapper) {
return execute(mapper -> mapper.selectCountByQuery(tableName, queryWrapper));
public long selectCountByQuery(String schema,String tableName, QueryWrapper queryWrapper) {
return execute(mapper -> mapper.selectCountByQuery(schema,tableName, queryWrapper));
}
public Page<Row> paginate(String tableName, Page<Row> page, QueryWrapper queryWrapper) {
return execute(mapper -> mapper.paginate(tableName, page, queryWrapper));
public Page<Row> paginate(String schema,String tableName, Page<Row> page, QueryWrapper queryWrapper) {
return execute(mapper -> mapper.paginate(schema,tableName, page, queryWrapper));
}
public int updateNumberAddByQuery(String tableName, String fieldName, Number value, QueryWrapper queryWrapper) {
return execute(mapper -> mapper.updateNumberAddByQuery(tableName, fieldName, value, queryWrapper));
public int updateNumberAddByQuery(String schema,String tableName, String fieldName, Number value, QueryWrapper queryWrapper) {
return execute(mapper -> mapper.updateNumberAddByQuery(schema,tableName, fieldName, value, queryWrapper));
}
}

View File

@ -37,11 +37,11 @@ public class DbTestStarter {
.setDataSource(dataSource)
.start();
Row row1 = Db.selectOneById("tb_account", "id", 1);
Row row1 = Db.selectOneById(null,"tb_account", "id", 1);
RowUtil.printPretty(row1);
//查询全部
List<Row> rows = Db.selectAll("tb_account");
List<Row> rows = Db.selectAll(null,"tb_account");
RowUtil.printPretty(rows);
@ -53,7 +53,7 @@ public class DbTestStarter {
row.set("user_name", "michael yang");
row.set("age", 18);
row.set("birthday", new Date());
Db.insert("tb_account", row);
Db.insert(null,"tb_account", row);
//查看刚刚插入数据的主键 id
System.out.println(">>>>>>>>>id: " + row.get("id"));
@ -79,7 +79,7 @@ public class DbTestStarter {
//再次查询全部数据
rows = Db.selectAll("tb_account");
rows = Db.selectAll(null,"tb_account");
RowUtil.printPretty(rows);
// for (Row row2 : rows) {
@ -96,10 +96,10 @@ public class DbTestStarter {
r.prepareAttrsByKeySet();
r.setPrimaryKeys(RowKey.AUTO);
});
Db.insertBatch("tb_account", rows, 100);
Db.insertBatch(null,"tb_account", rows, 100);
//再次查询全部数据
rows = Db.selectAll("tb_account");
rows = Db.selectAll(null,"tb_account");
RowUtil.printPretty(rows);
}
}

View File

@ -61,7 +61,7 @@ public class MultiDataSourceTester {
//默认查询 db1
System.out.println("\n------ds1");
List<Row> rows1 = Db.selectAll("tb_account");
List<Row> rows1 = Db.selectAll(null,"tb_account");
RowUtil.printPretty(rows1);
@ -74,7 +74,7 @@ public class MultiDataSourceTester {
// //查询数据源 ds2
System.out.println("\n------ds2");
DataSourceKey.use("ds2");
List<Row> rows = Db.selectAll("tb_account");
List<Row> rows = Db.selectAll(null,"tb_account");
RowUtil.printPretty(rows);
//
// boolean success = Db.tx(() -> {

View File

@ -50,7 +50,7 @@ public class RowTestStarter {
AuditManager.setAuditEnable(true);
AuditManager.setMessageCollector(new ConsoleMessageCollector());
Page<Row> rowPage = Db.paginate("tb_account", 1, 10, QueryWrapper.create().hint("USE_MERGE"));
Page<Row> rowPage = Db.paginate("flex","tb_account", 1, 10, QueryWrapper.create().hint("USE_MERGE"));
System.out.println(rowPage);
@ -83,13 +83,13 @@ public class RowTestStarter {
rowList.add(row);
}
Db.insertBatch("tb_account",rowList);
Db.insertBatch(null,"tb_account",rowList);
for (Row row : rowList) {
System.out.println(">>>>>>>id: " + row.get("id"));
}
List<Row> rows1 = Db.selectAll("tb_account");
List<Row> rows1 = Db.selectAll(null,"tb_account");
RowUtil.printPretty(rows1);
// //新增一条数据自增

View File

@ -73,10 +73,10 @@ public class AccountController {
// account.setUserName("heihei");
// accountMapper.update(account);
Row row1 = Db.selectOneById("tb_account", "id", 1);
Row row1 = Db.selectOneById(null,"tb_account", "id", 1);
System.out.println(">>>>>>> row1: " + row1);
Row row2 = Db.selectOneById("tb_account", "id", 2);
Row row2 = Db.selectOneById(null,"tb_account", "id", 2);
System.out.println(">>>>>>> row2: " + row2);
// Account account1 = accountMapper.selectOneById(1L);

View File

@ -41,7 +41,7 @@ public class AccountTest implements WithAssertions {
@Test
public void testSelectOneByRow() {
Row row = Db.selectOneById("tb_account", "id", 1);
Row row = Db.selectOneById(null,"tb_account", "id", 1);
System.out.println(row);
}