Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mybatis-generator-plugin
Project overview
Project overview
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
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
Administrator
mybatis-generator-plugin
Commits
07c78ddd
Commit
07c78ddd
authored
Apr 21, 2017
by
hewei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加SelectiveEnhancedPlugin插件;
parent
bfbae5f3
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
47 additions
and
10 deletions
+47
-10
src/main/java/com/itfsw/mybatis/generator/plugins/SelectiveEnhancedPlugin.java
...sw/mybatis/generator/plugins/SelectiveEnhancedPlugin.java
+46
-9
src/main/java/com/itfsw/mybatis/generator/plugins/UpsertPlugin.java
...ava/com/itfsw/mybatis/generator/plugins/UpsertPlugin.java
+1
-1
No files found.
src/main/java/com/itfsw/mybatis/generator/plugins/SelectiveEnhancedPlugin.java
View file @
07c78ddd
...
...
@@ -87,14 +87,18 @@ public class SelectiveEnhancedPlugin extends PluginAdapter {
CommentTools
.
addMethodComment
(
mIsSelective
,
introspectedTable
);
mIsSelective
.
setVisibility
(
JavaVisibility
.
PUBLIC
);
mIsSelective
.
setReturnType
(
FullyQualifiedJavaType
.
getBooleanPrimitiveInstance
());
mIsSelective
.
addParameter
(
new
Parameter
(
FullyQualifiedJavaType
.
getStringInstance
(),
"column"
));
mIsSelective
.
addBodyLine
(
"if (column == null) {"
);
mIsSelective
.
addBodyLine
(
"return this.selectiveColumns.size() > 0;"
);
mIsSelective
.
addBodyLine
(
"} else {"
);
mIsSelective
.
addBodyLine
(
"return this.selectiveColumns.get(column) != null;"
);
mIsSelective
.
addBodyLine
(
"}"
);
topLevelClass
.
addMethod
(
mIsSelective
);
// Method isSelective
Method
mIsSelective1
=
new
Method
(
"isSelective"
);
CommentTools
.
addMethodComment
(
mIsSelective1
,
introspectedTable
);
mIsSelective1
.
setVisibility
(
JavaVisibility
.
PUBLIC
);
mIsSelective1
.
setReturnType
(
FullyQualifiedJavaType
.
getBooleanPrimitiveInstance
());
mIsSelective1
.
addParameter
(
new
Parameter
(
FullyQualifiedJavaType
.
getStringInstance
(),
"column"
));
mIsSelective1
.
addBodyLine
(
"return this.selectiveColumns.get(column) != null;"
);
topLevelClass
.
addMethod
(
mIsSelective1
);
// Method selective
Method
mSelective
=
new
Method
(
"selective"
);
CommentTools
.
addMethodComment
(
mSelective
,
introspectedTable
);
...
...
@@ -137,11 +141,44 @@ public class SelectiveEnhancedPlugin extends PluginAdapter {
// ====================================== 1. insertSelective ======================================
if
(
"insertSelective"
.
equals
(
id
))
{
List
<
XmlElement
>
trimEles
=
this
.
findEle
(
xmlElement
,
"trim"
);
for
(
XmlElement
ele
:
trimEles
)
{
List
<
XmlElement
>
eles
=
this
.
findEle
(
xmlElement
,
"trim"
);
for
(
XmlElement
ele
:
eles
)
{
this
.
replaceEle
(
ele
,
"_parameter."
);
}
}
// ====================================== 2. updateByExampleSelective ======================================
if
(
"updateByExampleSelective"
.
equals
(
id
))
{
List
<
XmlElement
>
eles
=
this
.
findEle
(
xmlElement
,
"set"
);
for
(
XmlElement
ele
:
eles
)
{
this
.
replaceEle
(
ele
,
"_parameter."
);
}
}
// ====================================== 3. updateByPrimaryKeySelective ======================================
if
(
"updateByPrimaryKeySelective"
.
equals
(
id
))
{
List
<
XmlElement
>
eles
=
this
.
findEle
(
xmlElement
,
"set"
);
for
(
XmlElement
ele
:
eles
)
{
this
.
replaceEle
(
ele
,
"_parameter."
);
}
}
// ====================================== 4. upsertSelective ======================================
if
(
"upsertSelective"
.
equals
(
id
))
{
List
<
XmlElement
>
eles
=
this
.
findEle
(
xmlElement
,
"trim"
);
for
(
XmlElement
ele
:
eles
)
{
this
.
replaceEle
(
ele
,
"_parameter."
);
}
}
// ====================================== 5. upsertByExampleSelective ======================================
if
(
"upsertByExampleSelective"
.
equals
(
id
))
{
List
<
XmlElement
>
eles
=
this
.
findEle
(
xmlElement
,
"trim"
);
for
(
XmlElement
ele
:
eles
)
{
this
.
replaceEle
(
ele
,
"_parameter."
);
}
List
<
XmlElement
>
eles1
=
this
.
findEle
(
xmlElement
,
"set"
);
for
(
XmlElement
ele
:
eles1
)
{
this
.
replaceEle
(
ele
,
"_parameter."
);
}
}
}
}
return
true
;
...
...
@@ -187,7 +224,7 @@ public class SelectiveEnhancedPlugin extends PluginAdapter {
String
text
=
textElement
.
getContent
().
trim
();
String
field
=
""
;
if
(
text
.
matches
(
".*\\s*=\\s*#\\{.*\\},?"
))
{
Pattern
pattern
=
Pattern
.
compile
(
"(.*)\\s*=\\s*#\\{.*},?"
);
Pattern
pattern
=
Pattern
.
compile
(
"(.*
?
)\\s*=\\s*#\\{.*},?"
);
Matcher
matcher
=
pattern
.
matcher
(
text
);
if
(
matcher
.
find
()){
field
=
matcher
.
group
(
1
);
...
...
@@ -203,7 +240,7 @@ public class SelectiveEnhancedPlugin extends PluginAdapter {
}
XmlElement
ifEle
=
new
XmlElement
(
"if"
);
ifEle
.
addAttribute
(
new
Attribute
(
"test"
,
prefix
+
"isSelective(
"
+
field
+
"
)"
));
ifEle
.
addAttribute
(
new
Attribute
(
"test"
,
prefix
+
"isSelective(
\'"
+
field
+
"\'
)"
));
ifEle
.
addElement
(
textElement
);
whenEle
.
addElement
(
ifEle
);
}
...
...
src/main/java/com/itfsw/mybatis/generator/plugins/UpsertPlugin.java
View file @
07c78ddd
...
...
@@ -255,7 +255,7 @@ public class UpsertPlugin extends PluginAdapter {
// update
eleUpsertByExampleSelective
.
addElement
(
new
TextElement
(
"update "
+
introspectedTable
.
getAliasedFullyQualifiedTableNameAtRuntime
()));
eleUpsertByExampleSelective
.
addElement
(
new
TextElement
(
"set"
));
eleUpsertByExampleSelective
.
addElement
(
XmlElementGeneratorTools
.
generateSets
(
ListUtilities
.
removeIdentityAndGeneratedAlwaysColumns
(
introspectedTable
.
getAllColumns
()),
"record."
));
eleUpsertByExampleSelective
.
addElement
(
XmlElementGeneratorTools
.
generateSets
Selective
(
ListUtilities
.
removeIdentityAndGeneratedAlwaysColumns
(
introspectedTable
.
getAllColumns
()),
"record."
));
// update where
eleUpsertByExampleSelective
.
addElement
(
XmlElementGeneratorTools
.
getUpdateByExampleIncludeElement
(
introspectedTable
));
...
...
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