mirror of
https://gitee.com/mybatis-flex/mybatis-flex.git
synced 2025-12-07 00:58:24 +08:00
optimize: move SqlUtil.getSelectOneResult method to MapperUtil
This commit is contained in:
parent
f2439bd56d
commit
24e68a715b
@ -345,7 +345,7 @@ public interface BaseMapper<T> {
|
||||
* @return entity 数据
|
||||
*/
|
||||
default T selectOneByQuery(QueryWrapper queryWrapper) {
|
||||
return SqlUtil.getSelectOneResult(selectListByQuery(queryWrapper));
|
||||
return MapperUtil.getSelectOneResult(selectListByQuery(queryWrapper));
|
||||
}
|
||||
|
||||
|
||||
@ -357,7 +357,7 @@ public interface BaseMapper<T> {
|
||||
* @return 数据内容
|
||||
*/
|
||||
default <R> R selectOneByQueryAs(QueryWrapper queryWrapper, Class<R> asType) {
|
||||
return SqlUtil.getSelectOneResult(selectListByQueryAs(queryWrapper, asType));
|
||||
return MapperUtil.getSelectOneResult(selectListByQueryAs(queryWrapper, asType));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -503,7 +503,7 @@ public interface BaseMapper<T> {
|
||||
* @return 数据量
|
||||
*/
|
||||
default Object selectObjectByQuery(QueryWrapper queryWrapper) {
|
||||
return SqlUtil.getSelectOneResult(selectObjectListByQuery(queryWrapper));
|
||||
return MapperUtil.getSelectOneResult(selectObjectListByQuery(queryWrapper));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -19,6 +19,8 @@ import com.mybatisflex.core.BaseMapper;
|
||||
import com.mybatisflex.core.field.FieldQuery;
|
||||
import com.mybatisflex.core.field.FieldQueryBuilder;
|
||||
import com.mybatisflex.core.query.QueryWrapper;
|
||||
import org.apache.ibatis.exceptions.TooManyResultsException;
|
||||
import org.apache.ibatis.session.defaults.DefaultSqlSession;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
@ -60,4 +62,21 @@ public class MapperUtil {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 搬运加改造 {@link DefaultSqlSession#selectOne(String, Object)}
|
||||
*/
|
||||
public static <T> T getSelectOneResult(List<T> list) {
|
||||
if (list == null || list.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
int size = list.size();
|
||||
if (size == 1) {
|
||||
return list.get(0);
|
||||
}
|
||||
throw new TooManyResultsException(
|
||||
"Expected one result (or null) to be returned by selectOne(), but found: " + size);
|
||||
}
|
||||
}
|
||||
|
||||
@ -15,12 +15,8 @@
|
||||
*/
|
||||
package com.mybatisflex.core.util;
|
||||
|
||||
import org.apache.ibatis.exceptions.TooManyResultsException;
|
||||
import org.apache.ibatis.session.defaults.DefaultSqlSession;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.regex.Matcher;
|
||||
|
||||
public class SqlUtil {
|
||||
@ -83,6 +79,12 @@ public class SqlUtil {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 替换 sql 中的问号 ?
|
||||
* @param sql sql 内容
|
||||
* @param params 参数
|
||||
* @return 完整的 sql
|
||||
*/
|
||||
public static String replaceSqlParams(String sql, Object[] params) {
|
||||
if (params != null && params.length > 0) {
|
||||
for (Object value : params) {
|
||||
@ -113,19 +115,6 @@ public class SqlUtil {
|
||||
return sql;
|
||||
}
|
||||
|
||||
/**
|
||||
* 搬运加改造 {@link DefaultSqlSession#selectOne(String, Object)}
|
||||
*/
|
||||
public static <T> T getSelectOneResult(List<T> list) {
|
||||
if (list == null || list.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
int size = list.size();
|
||||
if (size == 1) {
|
||||
return list.get(0);
|
||||
}
|
||||
throw new TooManyResultsException(
|
||||
"Expected one result (or null) to be returned by selectOne(), but found: " + size);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user