Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
amos-boot-biz
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
项目统一框架
amos-boot-biz
Commits
0ec7035d
Commit
0ec7035d
authored
Mar 28, 2024
by
李秀明
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: SQL拼接错误处理
parent
80b2cbf5
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
10 additions
and
17 deletions
+10
-17
PluginInterceptor.java
...oin/amos/knowledgebase/interceptor/PluginInterceptor.java
+10
-17
No files found.
amos-boot-module/amos-boot-module-biz/amos-boot-module-knowledgebase-biz/src/main/java/com/yeejoin/amos/knowledgebase/interceptor/PluginInterceptor.java
View file @
0ec7035d
...
...
@@ -9,12 +9,10 @@ import org.apache.ibatis.plugin.*;
import
org.apache.ibatis.session.ResultHandler
;
import
org.apache.ibatis.session.RowBounds
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.ReflectionUtils
;
import
java.lang.reflect.Field
;
import
java.util.HashMap
;
import
java.util.Iterator
;
import
java.util.LinkedHashMap
;
import
java.util.Properties
;
import
java.util.*
;
@Component
// 标志该类是一个拦截器
...
...
@@ -64,28 +62,23 @@ public class PluginInterceptor implements Interceptor {
//执行结果
HashMap
<
String
,
Object
>
par
=
new
LinkedHashMap
<>();
if
(
parameter
instanceof
HashMap
)
{
par
=
(
HashMap
<
String
,
Object
>)
((
HashMap
<?,
?>)
parameter
).
get
(
"paramMap"
)
;
par
=
(
HashMap
<
String
,
Object
>)
parameter
;
}
LinkedHashMap
<
String
,
String
>
fieldsValue
=
(
LinkedHashMap
<
String
,
String
>)
par
.
get
(
"extraFields"
);
Iterator
<
String
>
iterator
=
fieldsValue
.
keySet
().
stream
().
iterator
();
List
<
String
>
extraFields
=
(
ArrayList
<
String
>)
par
.
get
(
"extraFields"
);
LinkedHashMap
<
String
,
String
>
fieldsValue2
=
(
LinkedHashMap
<
String
,
String
>)
par
.
get
(
"extraStrFilters"
);
Iterator
<
String
>
iterator1
=
fieldsValue2
.
keySet
().
stream
().
iterator
();
List
<
String
>
extraStrFilters
=
(
ArrayList
<
String
>)
par
.
get
(
"extraStrFilters"
);
while
(
iterator
.
hasNext
())
{
String
next
=
iterator
.
next
();
sql
=
sql
.
replaceFirst
(
"_field"
,
next
);
for
(
String
field
:
extraFields
)
{
sql
=
sql
.
replaceFirst
(
"_field"
,
field
);
}
while
(
iterator1
.
hasNext
())
{
String
next
=
iterator1
.
next
();
sql
=
sql
.
replaceFirst
(
"_str"
,
next
);
for
(
String
filter
:
extraStrFilters
)
{
sql
=
sql
.
replaceFirst
(
"_str"
,
filter
);
}
//通过反射修改sql语句
Field
field
=
boundSql
.
getClass
().
getDeclaredField
(
"sql"
);
field
.
setAccessible
(
true
);
ReflectionUtils
.
makeAccessible
(
field
);
field
.
set
(
boundSql
,
sql
);
return
executor
.
query
(
mappedStatement
,
parameter
,
rowBounds
,
resultHandler
,
cacheKey
,
boundSql
);
}
else
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment