optimize: move SqlUtil.getSelectOneResult method to MapperUtil

This commit is contained in:
开源海哥 2023-06-08 14:52:22 +08:00
parent f2439bd56d
commit 24e68a715b
3 changed files with 29 additions and 21 deletions

View File

@ -345,7 +345,7 @@ public interface BaseMapper<T> {
* @return entity 数据 * @return entity 数据
*/ */
default T selectOneByQuery(QueryWrapper queryWrapper) { default T selectOneByQuery(QueryWrapper queryWrapper) {
return SqlUtil.getSelectOneResult(selectListByQuery(queryWrapper)); return MapperUtil.getSelectOneResult(selectListByQuery(queryWrapper));
} }
@ -357,7 +357,7 @@ public interface BaseMapper<T> {
* @return 数据内容 * @return 数据内容
*/ */
default <R> R selectOneByQueryAs(QueryWrapper queryWrapper, Class<R> asType) { 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 数据量 * @return 数据量
*/ */
default Object selectObjectByQuery(QueryWrapper queryWrapper) { default Object selectObjectByQuery(QueryWrapper queryWrapper) {
return SqlUtil.getSelectOneResult(selectObjectListByQuery(queryWrapper)); return MapperUtil.getSelectOneResult(selectObjectListByQuery(queryWrapper));
} }

View File

@ -19,6 +19,8 @@ import com.mybatisflex.core.BaseMapper;
import com.mybatisflex.core.field.FieldQuery; import com.mybatisflex.core.field.FieldQuery;
import com.mybatisflex.core.field.FieldQueryBuilder; import com.mybatisflex.core.field.FieldQueryBuilder;
import com.mybatisflex.core.query.QueryWrapper; 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.Collection;
import java.util.HashSet; 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);
}
} }

View File

@ -15,12 +15,8 @@
*/ */
package com.mybatisflex.core.util; package com.mybatisflex.core.util;
import org.apache.ibatis.exceptions.TooManyResultsException;
import org.apache.ibatis.session.defaults.DefaultSqlSession;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Date; import java.util.Date;
import java.util.List;
import java.util.regex.Matcher; import java.util.regex.Matcher;
public class SqlUtil { 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) { public static String replaceSqlParams(String sql, Object[] params) {
if (params != null && params.length > 0) { if (params != null && params.length > 0) {
for (Object value : params) { for (Object value : params) {
@ -113,19 +115,6 @@ public class SqlUtil {
return sql; 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);
}
} }