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
fbecf4ce
Commit
fbecf4ce
authored
Jun 21, 2017
by
hewei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
美化xml输出格式,实现和官方一致80换行,便于阅读
parent
f62d78d1
Changes
3
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
108 additions
and
82 deletions
+108
-82
src/main/java/com/itfsw/mybatis/generator/plugins/BatchInsertPlugin.java
...om/itfsw/mybatis/generator/plugins/BatchInsertPlugin.java
+11
-14
src/main/java/com/itfsw/mybatis/generator/plugins/UpsertPlugin.java
...ava/com/itfsw/mybatis/generator/plugins/UpsertPlugin.java
+47
-32
src/main/java/com/itfsw/mybatis/generator/plugins/utils/XmlElementGeneratorTools.java
...tis/generator/plugins/utils/XmlElementGeneratorTools.java
+50
-36
No files found.
src/main/java/com/itfsw/mybatis/generator/plugins/BatchInsertPlugin.java
View file @
fbecf4ce
...
...
@@ -23,10 +23,7 @@ import com.itfsw.mybatis.generator.plugins.utils.XmlElementGeneratorTools;
import
org.mybatis.generator.api.IntrospectedColumn
;
import
org.mybatis.generator.api.IntrospectedTable
;
import
org.mybatis.generator.api.dom.java.*
;
import
org.mybatis.generator.api.dom.xml.Attribute
;
import
org.mybatis.generator.api.dom.xml.Document
;
import
org.mybatis.generator.api.dom.xml.TextElement
;
import
org.mybatis.generator.api.dom.xml.XmlElement
;
import
org.mybatis.generator.api.dom.xml.*
;
import
org.mybatis.generator.codegen.mybatis3.ListUtilities
;
import
org.mybatis.generator.codegen.mybatis3.MyBatis3FormattingUtilities
;
...
...
@@ -53,7 +50,7 @@ public class BatchInsertPlugin extends BasePlugin {
// 插件使用前提是数据库为MySQL或者SQLserver,因为返回主键使用了JDBC的getGenereatedKeys方法获取主键
if
(
"com.mysql.jdbc.Driver"
.
equalsIgnoreCase
(
this
.
getContext
().
getJdbcConnectionConfiguration
().
getDriverClass
())
==
false
&&
"com.microsoft.jdbc.sqlserver.SQLServer"
.
equalsIgnoreCase
(
this
.
getContext
().
getJdbcConnectionConfiguration
().
getDriverClass
())
==
false
&&
"com.microsoft.sqlserver.jdbc.SQLServerDriver"
.
equalsIgnoreCase
(
this
.
getContext
().
getJdbcConnectionConfiguration
().
getDriverClass
())
==
false
){
&&
"com.microsoft.sqlserver.jdbc.SQLServerDriver"
.
equalsIgnoreCase
(
this
.
getContext
().
getJdbcConnectionConfiguration
().
getDriverClass
())
==
false
)
{
logger
.
error
(
"itfsw:插件"
+
this
.
getClass
().
getTypeName
()
+
"插件使用前提是数据库为MySQL或者SQLserver,因为返回主键使用了JDBC的getGenereatedKeys方法获取主键!"
);
return
false
;
}
...
...
@@ -69,11 +66,9 @@ public class BatchInsertPlugin extends BasePlugin {
}
/**
* Java Client Methods 生成
* 具体执行顺序 http://www.mybatis.org/generator/reference/pluggingIn.html
*
* @param interfaze
* @param topLevelClass
* @param introspectedTable
...
...
@@ -97,7 +92,7 @@ public class BatchInsertPlugin extends BasePlugin {
logger
.
debug
(
"itfsw(批量插入插件):"
+
interfaze
.
getType
().
getShortName
()
+
"增加batchInsert方法。"
);
// 2. batchInsertSelective
FullyQualifiedJavaType
selectiveType
=
new
FullyQualifiedJavaType
(
introspectedTable
.
getRules
().
calculateAllFieldsClass
().
getShortName
()
+
"."
+
ModelColumnPlugin
.
ENUM_NAME
);
FullyQualifiedJavaType
selectiveType
=
new
FullyQualifiedJavaType
(
introspectedTable
.
getRules
().
calculateAllFieldsClass
().
getShortName
()
+
"."
+
ModelColumnPlugin
.
ENUM_NAME
);
Method
mBatchInsertSelective
=
JavaElementGeneratorTools
.
generateMethod
(
METHOD_BATCH_INSERT_SELECTIVE
,
JavaVisibility
.
DEFAULT
,
...
...
@@ -116,7 +111,6 @@ public class BatchInsertPlugin extends BasePlugin {
/**
* SQL Map Methods 生成
* 具体执行顺序 http://www.mybatis.org/generator/reference/pluggingIn.html
*
* @param document
* @param introspectedTable
* @return
...
...
@@ -135,7 +129,9 @@ public class BatchInsertPlugin extends BasePlugin {
XmlElementGeneratorTools
.
useGeneratedKeys
(
batchInsertEle
,
introspectedTable
);
batchInsertEle
.
addElement
(
new
TextElement
(
"insert into "
+
introspectedTable
.
getFullyQualifiedTableNameAtRuntime
()));
batchInsertEle
.
addElement
(
XmlElementGeneratorTools
.
generateKeys
(
ListUtilities
.
removeIdentityAndGeneratedAlwaysColumns
(
introspectedTable
.
getAllColumns
())));
for
(
Element
element
:
XmlElementGeneratorTools
.
generateKeys
(
ListUtilities
.
removeIdentityAndGeneratedAlwaysColumns
(
introspectedTable
.
getAllColumns
())))
{
batchInsertEle
.
addElement
(
element
);
}
// 添加foreach节点
XmlElement
foreachElement
=
new
XmlElement
(
"foreach"
);
...
...
@@ -143,8 +139,9 @@ public class BatchInsertPlugin extends BasePlugin {
foreachElement
.
addAttribute
(
new
Attribute
(
"item"
,
"item"
));
foreachElement
.
addAttribute
(
new
Attribute
(
"separator"
,
","
));
foreachElement
.
addElement
(
XmlElementGeneratorTools
.
generateValues
(
ListUtilities
.
removeIdentityAndGeneratedAlwaysColumns
(
introspectedTable
.
getAllColumns
()),
"item."
));
for
(
Element
element
:
XmlElementGeneratorTools
.
generateValues
(
ListUtilities
.
removeIdentityAndGeneratedAlwaysColumns
(
introspectedTable
.
getAllColumns
()),
"item."
))
{
foreachElement
.
addElement
(
element
);
}
// values 构建
batchInsertEle
.
addElement
(
new
TextElement
(
"values"
));
...
...
@@ -165,7 +162,7 @@ public class BatchInsertPlugin extends BasePlugin {
// 使用JDBC的getGenereatedKeys方法获取主键并赋值到keyProperty设置的领域模型属性中。所以只支持MYSQL和SQLServer
XmlElementGeneratorTools
.
useGeneratedKeys
(
element
,
introspectedTable
);
element
.
addElement
(
new
TextElement
(
"insert into "
+
introspectedTable
.
getFullyQualifiedTableNameAtRuntime
()+
" ("
));
element
.
addElement
(
new
TextElement
(
"insert into "
+
introspectedTable
.
getFullyQualifiedTableNameAtRuntime
()
+
" ("
));
XmlElement
foreachInsertColumns
=
new
XmlElement
(
"foreach"
);
foreachInsertColumns
.
addAttribute
(
new
Attribute
(
"collection"
,
"selective"
));
...
...
@@ -200,7 +197,7 @@ public class BatchInsertPlugin extends BasePlugin {
for
(
int
i
=
0
;
i
<
columns1
.
size
();
i
++)
{
IntrospectedColumn
introspectedColumn
=
columns
.
get
(
i
);
XmlElement
check
=
new
XmlElement
(
"if"
);
check
.
addAttribute
(
new
Attribute
(
"test"
,
"'"
+
introspectedColumn
.
getActualColumnName
()+
"' == column.value"
));
check
.
addAttribute
(
new
Attribute
(
"test"
,
"'"
+
introspectedColumn
.
getActualColumnName
()
+
"' == column.value"
));
check
.
addElement
(
new
TextElement
(
MyBatis3FormattingUtilities
.
getParameterClause
(
introspectedColumn
,
"item."
)));
foreachInsertColumnsCheck
.
addElement
(
check
);
...
...
src/main/java/com/itfsw/mybatis/generator/plugins/UpsertPlugin.java
View file @
fbecf4ce
This diff is collapsed.
Click to expand it.
src/main/java/com/itfsw/mybatis/generator/plugins/utils/XmlElementGeneratorTools.java
View file @
fbecf4ce
This diff is collapsed.
Click to expand it.
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