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
62bdfb4a
Commit
62bdfb4a
authored
Aug 07, 2017
by
hewei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ModelBuilderPlugin 增加静态builder方法
parent
0a4f6162
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
188 additions
and
68 deletions
+188
-68
src/main/java/com/itfsw/mybatis/generator/plugins/ModelBuilderPlugin.java
...m/itfsw/mybatis/generator/plugins/ModelBuilderPlugin.java
+58
-61
src/test/java/com/itfsw/mybatis/generator/plugins/IncrementsPluginTest.java
...itfsw/mybatis/generator/plugins/IncrementsPluginTest.java
+25
-7
src/test/java/com/itfsw/mybatis/generator/plugins/ModelBuilderPluginTest.java
...fsw/mybatis/generator/plugins/ModelBuilderPluginTest.java
+85
-0
src/test/resources/scripts/ModelBuilderPlugin/init.sql
src/test/resources/scripts/ModelBuilderPlugin/init.sql
+19
-0
src/test/resources/scripts/ModelBuilderPlugin/mybatis-generator.xml
...esources/scripts/ModelBuilderPlugin/mybatis-generator.xml
+1
-0
No files found.
src/main/java/com/itfsw/mybatis/generator/plugins/ModelBuilderPlugin.java
View file @
62bdfb4a
...
@@ -53,7 +53,7 @@ public class ModelBuilderPlugin extends BasePlugin {
...
@@ -53,7 +53,7 @@ public class ModelBuilderPlugin extends BasePlugin {
public
boolean
modelBaseRecordClassGenerated
(
TopLevelClass
topLevelClass
,
IntrospectedTable
introspectedTable
)
{
public
boolean
modelBaseRecordClassGenerated
(
TopLevelClass
topLevelClass
,
IntrospectedTable
introspectedTable
)
{
// 判断是否有生成Model的WithBLOBs类
// 判断是否有生成Model的WithBLOBs类
List
<
IntrospectedColumn
>
columns
=
introspectedTable
.
getRules
().
generateRecordWithBLOBsClass
()
?
introspectedTable
.
getNonBLOBColumns
()
:
introspectedTable
.
getAllColumns
();
List
<
IntrospectedColumn
>
columns
=
introspectedTable
.
getRules
().
generateRecordWithBLOBsClass
()
?
introspectedTable
.
getNonBLOBColumns
()
:
introspectedTable
.
getAllColumns
();
InnerClass
innerClass
=
this
.
generateModelBuilder
(
topLevelClass
,
introspectedTable
,
columns
,
true
);
InnerClass
innerClass
=
this
.
generateModelBuilder
(
topLevelClass
,
introspectedTable
,
columns
);
topLevelClass
.
addInnerClass
(
innerClass
);
topLevelClass
.
addInnerClass
(
innerClass
);
return
super
.
modelBaseRecordClassGenerated
(
topLevelClass
,
introspectedTable
);
return
super
.
modelBaseRecordClassGenerated
(
topLevelClass
,
introspectedTable
);
}
}
...
@@ -67,7 +67,7 @@ public class ModelBuilderPlugin extends BasePlugin {
...
@@ -67,7 +67,7 @@ public class ModelBuilderPlugin extends BasePlugin {
*/
*/
@Override
@Override
public
boolean
modelRecordWithBLOBsClassGenerated
(
TopLevelClass
topLevelClass
,
IntrospectedTable
introspectedTable
)
{
public
boolean
modelRecordWithBLOBsClassGenerated
(
TopLevelClass
topLevelClass
,
IntrospectedTable
introspectedTable
)
{
InnerClass
innerClass
=
this
.
generateModelBuilder
(
topLevelClass
,
introspectedTable
,
introspectedTable
.
getAllColumns
()
,
false
);
InnerClass
innerClass
=
this
.
generateModelBuilder
(
topLevelClass
,
introspectedTable
,
introspectedTable
.
getAllColumns
());
topLevelClass
.
addInnerClass
(
innerClass
);
topLevelClass
.
addInnerClass
(
innerClass
);
return
super
.
modelRecordWithBLOBsClassGenerated
(
topLevelClass
,
introspectedTable
);
return
super
.
modelRecordWithBLOBsClassGenerated
(
topLevelClass
,
introspectedTable
);
}
}
...
@@ -80,7 +80,7 @@ public class ModelBuilderPlugin extends BasePlugin {
...
@@ -80,7 +80,7 @@ public class ModelBuilderPlugin extends BasePlugin {
*/
*/
@Override
@Override
public
boolean
modelPrimaryKeyClassGenerated
(
TopLevelClass
topLevelClass
,
IntrospectedTable
introspectedTable
)
{
public
boolean
modelPrimaryKeyClassGenerated
(
TopLevelClass
topLevelClass
,
IntrospectedTable
introspectedTable
)
{
InnerClass
innerClass
=
this
.
generateModelBuilder
(
topLevelClass
,
introspectedTable
,
introspectedTable
.
getPrimaryKeyColumns
()
,
false
);
InnerClass
innerClass
=
this
.
generateModelBuilder
(
topLevelClass
,
introspectedTable
,
introspectedTable
.
getPrimaryKeyColumns
());
topLevelClass
.
addInnerClass
(
innerClass
);
topLevelClass
.
addInnerClass
(
innerClass
);
return
super
.
modelPrimaryKeyClassGenerated
(
topLevelClass
,
introspectedTable
);
return
super
.
modelPrimaryKeyClassGenerated
(
topLevelClass
,
introspectedTable
);
}
}
...
@@ -90,10 +90,9 @@ public class ModelBuilderPlugin extends BasePlugin {
...
@@ -90,10 +90,9 @@ public class ModelBuilderPlugin extends BasePlugin {
* @param topLevelClass
* @param topLevelClass
* @param introspectedTable
* @param introspectedTable
* @param columns
* @param columns
* @param modelBaseRecord
* @return
* @return
*/
*/
private
InnerClass
generateModelBuilder
(
TopLevelClass
topLevelClass
,
IntrospectedTable
introspectedTable
,
List
<
IntrospectedColumn
>
columns
,
boolean
modelBaseRecord
)
{
private
InnerClass
generateModelBuilder
(
TopLevelClass
topLevelClass
,
IntrospectedTable
introspectedTable
,
List
<
IntrospectedColumn
>
columns
)
{
// 生成内部Builder类
// 生成内部Builder类
InnerClass
innerClass
=
new
InnerClass
(
BUILDER_CLASS_NAME
);
InnerClass
innerClass
=
new
InnerClass
(
BUILDER_CLASS_NAME
);
innerClass
.
setVisibility
(
JavaVisibility
.
PUBLIC
);
innerClass
.
setVisibility
(
JavaVisibility
.
PUBLIC
);
...
@@ -171,7 +170,6 @@ public class ModelBuilderPlugin extends BasePlugin {
...
@@ -171,7 +170,6 @@ public class ModelBuilderPlugin extends BasePlugin {
// ========================================== IncrementsPlugin =======================================
// ========================================== IncrementsPlugin =======================================
IncrementsPluginTools
incTools
=
IncrementsPluginTools
.
getTools
(
context
,
introspectedTable
,
warnings
);
IncrementsPluginTools
incTools
=
IncrementsPluginTools
.
getTools
(
context
,
introspectedTable
,
warnings
);
if
(
incTools
.
support
())
{
if
(
incTools
.
support
())
{
if
(
modelBaseRecord
)
{
// 增加枚举
// 增加枚举
InnerEnum
eIncrements
=
new
InnerEnum
(
new
FullyQualifiedJavaType
(
"Inc"
));
InnerEnum
eIncrements
=
new
InnerEnum
(
new
FullyQualifiedJavaType
(
"Inc"
));
eIncrements
.
setVisibility
(
JavaVisibility
.
PUBLIC
);
eIncrements
.
setVisibility
(
JavaVisibility
.
PUBLIC
);
...
@@ -226,7 +224,6 @@ public class ModelBuilderPlugin extends BasePlugin {
...
@@ -226,7 +224,6 @@ public class ModelBuilderPlugin extends BasePlugin {
commentGenerator
.
addGeneralMethodComment
(
mHasIncsForColumn
,
introspectedTable
);
commentGenerator
.
addGeneralMethodComment
(
mHasIncsForColumn
,
introspectedTable
);
mHasIncsForColumn
.
addBodyLine
(
"return "
+
IncrementsPlugin
.
FIELD_INC_MAP
+
".get(column) != null;"
);
mHasIncsForColumn
.
addBodyLine
(
"return "
+
IncrementsPlugin
.
FIELD_INC_MAP
+
".get(column) != null;"
);
FormatTools
.
addMethodWithBestPosition
(
topLevelClass
,
mHasIncsForColumn
);
FormatTools
.
addMethodWithBestPosition
(
topLevelClass
,
mHasIncsForColumn
);
}
// Builder 中 添加字段支持
// Builder 中 添加字段支持
for
(
IntrospectedColumn
column
:
columns
)
{
for
(
IntrospectedColumn
column
:
columns
)
{
...
...
src/test/java/com/itfsw/mybatis/generator/plugins/IncrementsPluginTest.java
View file @
62bdfb4a
...
@@ -28,6 +28,7 @@ import java.io.IOException;
...
@@ -28,6 +28,7 @@ import java.io.IOException;
import
java.lang.reflect.Method
;
import
java.lang.reflect.Method
;
import
java.sql.ResultSet
;
import
java.sql.ResultSet
;
import
java.sql.SQLException
;
import
java.sql.SQLException
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
/**
/**
...
@@ -70,7 +71,7 @@ public class IncrementsPluginTest {
...
@@ -70,7 +71,7 @@ public class IncrementsPluginTest {
public
void
reloadProject
(
SqlSession
sqlSession
,
ClassLoader
loader
,
String
packagz
)
throws
Exception
{
public
void
reloadProject
(
SqlSession
sqlSession
,
ClassLoader
loader
,
String
packagz
)
throws
Exception
{
// 1. 测试生成的方法
// 1. 测试生成的方法
ObjectUtil
tbBuilder
=
new
ObjectUtil
(
loader
,
packagz
+
".Tb$Builder"
);
ObjectUtil
tbBuilder
=
new
ObjectUtil
(
loader
,
packagz
+
".Tb$Builder"
);
List
<
Method
>
methods
=
tbBuilder
.
getMethods
(
"incF1"
);
List
<
Method
>
methods
=
getDeclaredMethods
(
tbBuilder
.
getCls
(),
"incF1"
);
Assert
.
assertEquals
(
methods
.
size
(),
2
);
Assert
.
assertEquals
(
methods
.
size
(),
2
);
// 自增方法
// 自增方法
Method
incMethod
=
methods
.
get
(
0
).
getParameterTypes
().
length
==
1
?
methods
.
get
(
1
)
:
methods
.
get
(
0
);
Method
incMethod
=
methods
.
get
(
0
).
getParameterTypes
().
length
==
1
?
methods
.
get
(
1
)
:
methods
.
get
(
0
);
...
@@ -78,19 +79,36 @@ public class IncrementsPluginTest {
...
@@ -78,19 +79,36 @@ public class IncrementsPluginTest {
// 2. 测试有空格
// 2. 测试有空格
ObjectUtil
tbKeysBuilder
=
new
ObjectUtil
(
loader
,
packagz
+
".TbKeys$Builder"
);
ObjectUtil
tbKeysBuilder
=
new
ObjectUtil
(
loader
,
packagz
+
".TbKeys$Builder"
);
Assert
.
assertEquals
(
tbKeysBuilder
.
getMethods
(
"incF1"
).
size
(),
2
);
Assert
.
assertEquals
(
getDeclaredMethods
(
tbKeysBuilder
.
getCls
(),
"incF1"
).
size
(),
2
);
Assert
.
assertEquals
(
tbKeysBuilder
.
getMethods
(
"incF2"
).
size
(),
2
);
Assert
.
assertEquals
(
getDeclaredMethods
(
tbKeysBuilder
.
getCls
(),
"incF2"
).
size
(),
2
);
Assert
.
assertEquals
(
tbKeysBuilder
.
getMethods
(
"incF3"
).
size
(),
2
);
Assert
.
assertEquals
(
getDeclaredMethods
(
tbKeysBuilder
.
getCls
(),
"incF3"
).
size
(),
2
);
// 3. 测试在WithBlobs正确生成
// 3. 测试在WithBlobs正确生成
ObjectUtil
tbBlobsWithBLOBs
=
new
ObjectUtil
(
loader
,
packagz
+
".TbBlobsWithBLOBs$Builder"
);
ObjectUtil
tbBlobsWithBLOBs
=
new
ObjectUtil
(
loader
,
packagz
+
".TbBlobsWithBLOBs$Builder"
);
Assert
.
assertEquals
(
tbBlobsWithBLOBs
.
getMethods
(
"incF1"
).
size
(),
2
);
Assert
.
assertEquals
(
getDeclaredMethods
(
tbBlobsWithBLOBs
.
getCls
(),
"incF1"
).
size
(),
2
);
Assert
.
assertEquals
(
tbBlobsWithBLOBs
.
getMethods
(
"incF2"
).
size
(),
1
);
Assert
.
assertEquals
(
getDeclaredMethods
(
tbBlobsWithBLOBs
.
getCls
(),
"incF2"
).
size
(),
1
);
Assert
.
assertEquals
(
tbBlobsWithBLOBs
.
getMethods
(
"incF3"
).
size
(),
2
);
Assert
.
assertEquals
(
getDeclaredMethods
(
tbBlobsWithBLOBs
.
getCls
(),
"incF3"
).
size
(),
2
);
}
}
});
});
}
}
/**
* 获取类方法
* @param cls
* @param name
* @return
*/
private
List
<
Method
>
getDeclaredMethods
(
Class
cls
,
String
name
)
{
List
<
Method
>
list
=
new
ArrayList
<>();
Method
[]
methods
=
cls
.
getDeclaredMethods
();
for
(
Method
method
:
methods
)
{
if
(
method
.
getName
().
equals
(
name
)
&&
cls
.
equals
(
method
.
getReturnType
()))
{
list
.
add
(
method
);
}
}
return
list
;
}
/**
/**
* 测试生成的sql和具体执行
* 测试生成的sql和具体执行
*/
*/
...
...
src/test/java/com/itfsw/mybatis/generator/plugins/ModelBuilderPluginTest.java
View file @
62bdfb4a
...
@@ -89,6 +89,91 @@ public class ModelBuilderPluginTest {
...
@@ -89,6 +89,91 @@ public class ModelBuilderPluginTest {
ObjectUtil
tbKeys
=
new
ObjectUtil
(
tbKeysBuilder
.
invoke
(
"build"
));
ObjectUtil
tbKeys
=
new
ObjectUtil
(
tbKeysBuilder
.
invoke
(
"build"
));
Assert
.
assertEquals
(
tbKeys
.
invoke
(
"getKey1"
),
50
l
);
Assert
.
assertEquals
(
tbKeys
.
invoke
(
"getKey1"
),
50
l
);
Assert
.
assertEquals
(
tbKeys
.
invoke
(
"getField1"
),
"ts2"
);
Assert
.
assertEquals
(
tbKeys
.
invoke
(
"getField1"
),
"ts2"
);
// 4. key and blobs
ObjectUtil
TbKeysBlobsKeyBuilder
=
new
ObjectUtil
(
loader
,
packagz
+
".TbKeysBlobsKey$Builder"
);
TbKeysBlobsKeyBuilder
.
invoke
(
"key1"
,
60
l
);
ObjectUtil
TbKeysBlobsKey
=
new
ObjectUtil
(
TbKeysBlobsKeyBuilder
.
invoke
(
"build"
));
Assert
.
assertEquals
(
TbKeysBlobsKey
.
invoke
(
"getKey1"
),
60
l
);
ObjectUtil
TbKeysBlobsWithBLOBsBuilder
=
new
ObjectUtil
(
loader
,
packagz
+
".TbKeysBlobsWithBLOBs$Builder"
);
TbKeysBlobsWithBLOBsBuilder
.
invoke
(
"key1"
,
90
l
);
TbKeysBlobsWithBLOBsBuilder
.
invoke
(
"incF2"
,
70
l
);
TbKeysBlobsWithBLOBsBuilder
.
invoke
(
"field2"
,
"ts3"
);
ObjectUtil
TbKeysBlobsWithBLOBs
=
new
ObjectUtil
(
TbKeysBlobsWithBLOBsBuilder
.
invoke
(
"build"
));
Assert
.
assertEquals
(
TbKeysBlobsWithBLOBs
.
invoke
(
"getKey1"
),
90
l
);
Assert
.
assertEquals
(
TbKeysBlobsWithBLOBs
.
invoke
(
"getIncF2"
),
70
l
);
Assert
.
assertEquals
(
TbKeysBlobsWithBLOBs
.
invoke
(
"getField2"
),
"ts3"
);
}
});
}
/**
* 测试静态builder方法
*/
@Test
public
void
testBuilderMethod
()
throws
IOException
,
XMLParserException
,
InvalidConfigurationException
,
InterruptedException
,
SQLException
{
MyBatisGeneratorTool
tool
=
MyBatisGeneratorTool
.
create
(
"scripts/ModelBuilderPlugin/mybatis-generator.xml"
);
tool
.
generate
(
new
AbstractShellCallback
()
{
@Override
public
void
reloadProject
(
SqlSession
sqlSession
,
ClassLoader
loader
,
String
packagz
)
throws
Exception
{
// 1. 普通model
ObjectUtil
Tb
=
new
ObjectUtil
(
loader
,
packagz
+
".Tb"
);
ObjectUtil
tbBuilder
=
new
ObjectUtil
(
Tb
.
invoke
(
"builder"
));
tbBuilder
.
invoke
(
"field1"
,
"ts1"
);
tbBuilder
.
invoke
(
"incF1"
,
100
l
);
ObjectUtil
tb
=
new
ObjectUtil
(
tbBuilder
.
invoke
(
"build"
));
Assert
.
assertEquals
(
tb
.
invoke
(
"getField1"
),
"ts1"
);
Assert
.
assertEquals
(
tb
.
invoke
(
"getIncF1"
),
100
l
);
// 2. withBlobs
ObjectUtil
TbBlobs
=
new
ObjectUtil
(
loader
,
packagz
+
".TbBlobs"
);
ObjectUtil
tbBlobsBuilder
=
new
ObjectUtil
(
TbBlobs
.
invoke
(
"builder"
));
tbBlobsBuilder
.
invoke
(
"field1"
,
"ts1"
);
ObjectUtil
tbBlobs
=
new
ObjectUtil
(
tbBlobsBuilder
.
invoke
(
"build"
));
Assert
.
assertEquals
(
tbBlobs
.
invoke
(
"getField1"
),
"ts1"
);
ObjectUtil
TbBlobsWithBLOBs
=
new
ObjectUtil
(
loader
,
packagz
+
".TbBlobsWithBLOBs"
);
ObjectUtil
tbBlobsWithBLOBsBuilder
=
new
ObjectUtil
(
TbBlobsWithBLOBs
.
invoke
(
"builder"
));
tbBlobsWithBLOBsBuilder
.
invoke
(
"field1"
,
"ts1"
);
tbBlobsWithBLOBsBuilder
.
invoke
(
"field2"
,
"ts2"
);
ObjectUtil
tbBlobsWithBLOBs
=
new
ObjectUtil
(
tbBlobsWithBLOBsBuilder
.
invoke
(
"build"
));
Assert
.
assertEquals
(
tbBlobsWithBLOBs
.
invoke
(
"getField1"
),
"ts1"
);
Assert
.
assertEquals
(
tbBlobsWithBLOBs
.
invoke
(
"getField2"
),
"ts2"
);
// 3. key
ObjectUtil
TbKeysKey
=
new
ObjectUtil
(
loader
,
packagz
+
".TbKeysKey"
);
ObjectUtil
tbKeysKeyBuilder
=
new
ObjectUtil
(
TbKeysKey
.
invoke
(
"builder"
));
tbKeysKeyBuilder
.
invoke
(
"key1"
,
60
l
);
ObjectUtil
tbKeysKey
=
new
ObjectUtil
(
tbKeysKeyBuilder
.
invoke
(
"build"
));
Assert
.
assertEquals
(
tbKeysKey
.
invoke
(
"getKey1"
),
60
l
);
ObjectUtil
TbKeys
=
new
ObjectUtil
(
loader
,
packagz
+
".TbKeys"
);
ObjectUtil
tbKeysBuilder
=
new
ObjectUtil
(
TbKeys
.
invoke
(
"builder"
));
tbKeysBuilder
.
invoke
(
"key1"
,
50
l
);
tbKeysBuilder
.
invoke
(
"field1"
,
"ts2"
);
ObjectUtil
tbKeys
=
new
ObjectUtil
(
tbKeysBuilder
.
invoke
(
"build"
));
Assert
.
assertEquals
(
tbKeys
.
invoke
(
"getKey1"
),
50
l
);
Assert
.
assertEquals
(
tbKeys
.
invoke
(
"getField1"
),
"ts2"
);
// 4. key and blobs
ObjectUtil
TbKeysBlobsKey
=
new
ObjectUtil
(
loader
,
packagz
+
".TbKeysBlobsKey"
);
ObjectUtil
TbKeysBlobsKeyBuilder
=
new
ObjectUtil
(
TbKeysBlobsKey
.
invoke
(
"builder"
));
TbKeysBlobsKeyBuilder
.
invoke
(
"key1"
,
60
l
);
ObjectUtil
tbKeysBlobsKey
=
new
ObjectUtil
(
TbKeysBlobsKeyBuilder
.
invoke
(
"build"
));
Assert
.
assertEquals
(
tbKeysBlobsKey
.
invoke
(
"getKey1"
),
60
l
);
ObjectUtil
TbKeysBlobsWithBLOBs
=
new
ObjectUtil
(
loader
,
packagz
+
".TbKeysBlobsWithBLOBs"
);
ObjectUtil
TbKeysBlobsWithBLOBsBuilder
=
new
ObjectUtil
(
TbKeysBlobsWithBLOBs
.
invoke
(
"builder"
));
TbKeysBlobsWithBLOBsBuilder
.
invoke
(
"key1"
,
90
l
);
TbKeysBlobsWithBLOBsBuilder
.
invoke
(
"incF2"
,
70
l
);
TbKeysBlobsWithBLOBsBuilder
.
invoke
(
"field2"
,
"ts3"
);
TbKeysBlobsWithBLOBs
=
new
ObjectUtil
(
TbKeysBlobsWithBLOBsBuilder
.
invoke
(
"build"
));
Assert
.
assertEquals
(
TbKeysBlobsWithBLOBs
.
invoke
(
"getKey1"
),
90
l
);
Assert
.
assertEquals
(
TbKeysBlobsWithBLOBs
.
invoke
(
"getIncF2"
),
70
l
);
Assert
.
assertEquals
(
TbKeysBlobsWithBLOBs
.
invoke
(
"getField2"
),
"ts3"
);
}
}
});
});
}
}
...
...
src/test/resources/scripts/ModelBuilderPlugin/init.sql
View file @
62bdfb4a
...
@@ -70,3 +70,22 @@ CREATE TABLE `tb_keys` (
...
@@ -70,3 +70,22 @@ CREATE TABLE `tb_keys` (
-- Records of tb_keys
-- Records of tb_keys
-- ----------------------------
-- ----------------------------
-- ----------------------------
-- Table structure for tb_keys_blobs
-- ----------------------------
DROP
TABLE
IF
EXISTS
`tb_keys_blobs`
;
CREATE
TABLE
`tb_keys_blobs`
(
`key1`
bigint
(
20
)
NOT
NULL
AUTO_INCREMENT
COMMENT
'注释1'
,
`key2`
varchar
(
255
)
NOT
NULL
,
`field1`
varchar
(
255
)
DEFAULT
NULL
COMMENT
'注释2'
,
`field2`
longtext
COMMENT
'注释2'
,
`field3`
longtext
,
`inc_f2`
bigint
(
20
)
NOT
NULL
DEFAULT
'0'
,
`inc_f3`
bigint
(
20
)
NOT
NULL
DEFAULT
'0'
,
PRIMARY
KEY
(
`key1`
,
`key2`
)
)
ENGINE
=
InnoDB
AUTO_INCREMENT
=
5
DEFAULT
CHARSET
=
utf8
;
-- ----------------------------
-- Records of tb_keys
-- ----------------------------
src/test/resources/scripts/ModelBuilderPlugin/mybatis-generator.xml
View file @
62bdfb4a
...
@@ -49,5 +49,6 @@
...
@@ -49,5 +49,6 @@
<table
tableName=
"tb_blobs"
>
<table
tableName=
"tb_blobs"
>
<generatedKey
column=
"id"
sqlStatement=
"MySql"
identity=
"true"
/>
<generatedKey
column=
"id"
sqlStatement=
"MySql"
identity=
"true"
/>
</table>
</table>
<table
tableName=
"tb_keys_blobs"
/>
</context>
</context>
</generatorConfiguration>
</generatorConfiguration>
\ No newline at end of file
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