fix NamedSql bug

This commit is contained in:
Looly
2020-10-16 00:04:45 +08:00
parent 8aec62a59b
commit 741babe2c8
3 changed files with 21 additions and 4 deletions

View File

@@ -78,7 +78,7 @@ public class NamedSql {
return;
}
int len = namedSql.length();
final int len = namedSql.length();
final StrBuilder name = StrUtil.strBuilder();
final StrBuilder sqlBuilder = StrUtil.strBuilder();
@@ -87,10 +87,9 @@ public class NamedSql {
for (int i = 0; i < len; i++) {
c = namedSql.charAt(i);
if (ArrayUtil.contains(NAME_START_CHARS, c)) {
nameStartChar = c;
// 新的变量开始符出现,要处理之前的变量
replaceVar(nameStartChar, name, sqlBuilder, paramMap);
nameStartChar = c;
} else if (null != nameStartChar) {
// 变量状态
if (isGenerateChar(c)) {
@@ -126,6 +125,10 @@ public class NamedSql {
*/
private void replaceVar(Character nameStartChar, StrBuilder name, StrBuilder sqlBuilder, Map<String, Object> paramMap){
if(name.isEmpty()){
if(null != nameStartChar){
// 类似于:的情况,需要补上:
sqlBuilder.append(nameStartChar);
}
// 无变量,按照普通字符处理
return;
}