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
5c1c5438
Commit
5c1c5438
authored
May 30, 2018
by
hewei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
bug:ModelColumnPlugin插件对于alias属性以及关键词处理有问题
parent
c2fe5274
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
18 additions
and
49 deletions
+18
-49
src/main/java/com/itfsw/mybatis/generator/plugins/ModelColumnPlugin.java
...om/itfsw/mybatis/generator/plugins/ModelColumnPlugin.java
+2
-49
src/main/java/com/itfsw/mybatis/generator/plugins/utils/BasePlugin.java
...com/itfsw/mybatis/generator/plugins/utils/BasePlugin.java
+3
-0
src/test/java/com/itfsw/mybatis/generator/plugins/BugFixedTest.java
...ava/com/itfsw/mybatis/generator/plugins/BugFixedTest.java
+12
-0
src/test/resources/scripts/BugFixedTest/bug-0001.xml
src/test/resources/scripts/BugFixedTest/bug-0001.xml
+1
-0
No files found.
src/main/java/com/itfsw/mybatis/generator/plugins/ModelColumnPlugin.java
View file @
5c1c5438
...
@@ -37,11 +37,9 @@ public class ModelColumnPlugin extends BasePlugin {
...
@@ -37,11 +37,9 @@ public class ModelColumnPlugin extends BasePlugin {
public
static
final
String
ENUM_NAME
=
"Column"
;
// 内部Enum名
public
static
final
String
ENUM_NAME
=
"Column"
;
// 内部Enum名
public
static
final
String
METHOD_EXCLUDES
=
"excludes"
;
// 方法名
public
static
final
String
METHOD_EXCLUDES
=
"excludes"
;
// 方法名
public
static
final
String
METHOD_GET_ESCAPED_COLUMN_NAME
=
"getEscapedColumnName"
;
// 方法名
public
static
final
String
METHOD_GET_ESCAPED_COLUMN_NAME
=
"getEscapedColumnName"
;
// 方法名
public
static
final
String
METHOD_GET_ALIASED_ESCAPED_COLUMN_NAME
=
"getAliasedEscapedColumnName"
;
// 方法名
public
static
final
String
CONST_BEGINNING_DELIMITER
=
"BEGINNING_DELIMITER"
;
// const
public
static
final
String
CONST_BEGINNING_DELIMITER
=
"BEGINNING_DELIMITER"
;
// const
public
static
final
String
CONST_ENDING_DELIMITER
=
"ENDING_DELIMITER"
;
// const
public
static
final
String
CONST_ENDING_DELIMITER
=
"ENDING_DELIMITER"
;
// const
public
static
final
String
CONST_TABLE_ALIAS
=
"TABLE_ALIAS"
;
// const
/**
/**
* Model Methods 生成
* Model Methods 生成
...
@@ -203,14 +201,14 @@ public class ModelColumnPlugin extends BasePlugin {
...
@@ -203,14 +201,14 @@ public class ModelColumnPlugin extends BasePlugin {
Method
desc
=
new
Method
(
"desc"
);
Method
desc
=
new
Method
(
"desc"
);
desc
.
setVisibility
(
JavaVisibility
.
PUBLIC
);
desc
.
setVisibility
(
JavaVisibility
.
PUBLIC
);
desc
.
setReturnType
(
FullyQualifiedJavaType
.
getStringInstance
());
desc
.
setReturnType
(
FullyQualifiedJavaType
.
getStringInstance
());
desc
.
addBodyLine
(
"return this.
column
+ \" DESC\";"
);
desc
.
addBodyLine
(
"return this.
"
+
METHOD_GET_ESCAPED_COLUMN_NAME
+
"()
+ \" DESC\";"
);
commentGenerator
.
addGeneralMethodComment
(
desc
,
introspectedTable
);
commentGenerator
.
addGeneralMethodComment
(
desc
,
introspectedTable
);
FormatTools
.
addMethodWithBestPosition
(
innerEnum
,
desc
);
FormatTools
.
addMethodWithBestPosition
(
innerEnum
,
desc
);
Method
asc
=
new
Method
(
"asc"
);
Method
asc
=
new
Method
(
"asc"
);
asc
.
setVisibility
(
JavaVisibility
.
PUBLIC
);
asc
.
setVisibility
(
JavaVisibility
.
PUBLIC
);
asc
.
setReturnType
(
FullyQualifiedJavaType
.
getStringInstance
());
asc
.
setReturnType
(
FullyQualifiedJavaType
.
getStringInstance
());
asc
.
addBodyLine
(
"return this.
column
+ \" ASC\";"
);
asc
.
addBodyLine
(
"return this.
"
+
METHOD_GET_ESCAPED_COLUMN_NAME
+
"()
+ \" ASC\";"
);
commentGenerator
.
addGeneralMethodComment
(
asc
,
introspectedTable
);
commentGenerator
.
addGeneralMethodComment
(
asc
,
introspectedTable
);
FormatTools
.
addMethodWithBestPosition
(
innerEnum
,
asc
);
FormatTools
.
addMethodWithBestPosition
(
innerEnum
,
asc
);
logger
.
debug
(
"itfsw(数据Model属性对应Column获取插件):"
+
topLevelClass
.
getType
().
getShortName
()
+
".Column增加asc()和desc()方法。"
);
logger
.
debug
(
"itfsw(数据Model属性对应Column获取插件):"
+
topLevelClass
.
getType
().
getShortName
()
+
".Column增加asc()和desc()方法。"
);
...
@@ -259,51 +257,6 @@ public class ModelColumnPlugin extends BasePlugin {
...
@@ -259,51 +257,6 @@ public class ModelColumnPlugin extends BasePlugin {
FormatTools
.
addMethodWithBestPosition
(
innerEnum
,
mGetEscapedColumnName
);
FormatTools
.
addMethodWithBestPosition
(
innerEnum
,
mGetEscapedColumnName
);
logger
.
debug
(
"itfsw(数据Model属性对应Column获取插件):"
+
topLevelClass
.
getType
().
getShortName
()
+
".Column增加getEscapedColumnName方法。"
);
logger
.
debug
(
"itfsw(数据Model属性对应Column获取插件):"
+
topLevelClass
.
getType
().
getShortName
()
+
".Column增加getEscapedColumnName方法。"
);
// getAliasedEscapedColumnName
if
(
StringUtility
.
stringHasValue
(
introspectedTable
.
getTableConfiguration
().
getAlias
()))
{
// 生成常量
Field
tableAliasField
=
JavaElementGeneratorTools
.
generateField
(
CONST_TABLE_ALIAS
,
JavaVisibility
.
PRIVATE
,
FullyQualifiedJavaType
.
getStringInstance
(),
"\""
+
StringUtility
.
escapeStringForJava
(
introspectedTable
.
getTableConfiguration
().
getAlias
())
+
"\""
);
tableAliasField
.
setStatic
(
true
);
tableAliasField
.
setFinal
(
true
);
commentGenerator
.
addFieldComment
(
tableAliasField
,
introspectedTable
);
innerEnum
.
addField
(
tableAliasField
);
Method
mGetAliasedEscapedColumnName
=
JavaElementGeneratorTools
.
generateMethod
(
METHOD_GET_ALIASED_ESCAPED_COLUMN_NAME
,
JavaVisibility
.
PUBLIC
,
FullyQualifiedJavaType
.
getStringInstance
()
);
commentGenerator
.
addGeneralMethodComment
(
mGetAliasedEscapedColumnName
,
introspectedTable
);
JavaElementGeneratorTools
.
generateMethodBody
(
mGetAliasedEscapedColumnName
,
"StringBuilder sb = new StringBuilder();"
,
"sb.append("
+
CONST_TABLE_ALIAS
+
");"
,
"sb.append('.');"
,
"sb.append(this.getEscapedColumnName());"
,
"return sb.toString();"
);
FormatTools
.
addMethodWithBestPosition
(
innerEnum
,
mGetAliasedEscapedColumnName
);
logger
.
debug
(
"itfsw(数据Model属性对应Column获取插件):"
+
topLevelClass
.
getType
().
getShortName
()
+
".Column增加getAliasedEscapedColumnName方法。"
);
}
else
{
Method
mGetAliasedEscapedColumnName
=
JavaElementGeneratorTools
.
generateMethod
(
METHOD_GET_ALIASED_ESCAPED_COLUMN_NAME
,
JavaVisibility
.
PUBLIC
,
FullyQualifiedJavaType
.
getStringInstance
()
);
commentGenerator
.
addGeneralMethodComment
(
mGetAliasedEscapedColumnName
,
introspectedTable
);
JavaElementGeneratorTools
.
generateMethodBody
(
mGetAliasedEscapedColumnName
,
"return this."
+
METHOD_GET_ESCAPED_COLUMN_NAME
+
"();"
);
FormatTools
.
addMethodWithBestPosition
(
innerEnum
,
mGetAliasedEscapedColumnName
);
logger
.
debug
(
"itfsw(数据Model属性对应Column获取插件):"
+
topLevelClass
.
getType
().
getShortName
()
+
".Column增加getAliasedEscapedColumnName方法。"
);
}
return
innerEnum
;
return
innerEnum
;
}
}
}
}
src/main/java/com/itfsw/mybatis/generator/plugins/utils/BasePlugin.java
View file @
5c1c5438
...
@@ -107,6 +107,9 @@ public class BasePlugin extends PluginAdapter {
...
@@ -107,6 +107,9 @@ public class BasePlugin extends PluginAdapter {
@Override
@Override
public
void
initialized
(
IntrospectedTable
introspectedTable
)
{
public
void
initialized
(
IntrospectedTable
introspectedTable
)
{
super
.
initialized
(
introspectedTable
);
super
.
initialized
(
introspectedTable
);
if
(
StringUtility
.
stringHasValue
(
introspectedTable
.
getTableConfiguration
().
getAlias
())){
warnings
.
add
(
"itfsw:插件"
+
this
.
getClass
().
getTypeName
()
+
"请不要配置alias属性,这个属性官方支持也很混乱,导致插件支持会存在问题!"
);
}
PluginTools
.
getHook
(
ITableConfigurationHook
.
class
).
tableConfiguration
(
introspectedTable
);
PluginTools
.
getHook
(
ITableConfigurationHook
.
class
).
tableConfiguration
(
introspectedTable
);
}
}
}
}
src/test/java/com/itfsw/mybatis/generator/plugins/BugFixedTest.java
View file @
5c1c5438
...
@@ -22,6 +22,7 @@ import org.junit.Assert;
...
@@ -22,6 +22,7 @@ import org.junit.Assert;
import
org.junit.Test
;
import
org.junit.Test
;
import
java.lang.reflect.Array
;
import
java.lang.reflect.Array
;
import
java.util.List
;
/**
/**
* ---------------------------------------------------------------------------
* ---------------------------------------------------------------------------
...
@@ -61,6 +62,17 @@ public class BugFixedTest {
...
@@ -61,6 +62,17 @@ public class BugFixedTest {
Assert
.
assertEquals
(
sql
,
"insert into tb ( id , field1 , `table` ) values ( 121 , 'inc_001' , 'tb' )"
);
Assert
.
assertEquals
(
sql
,
"insert into tb ( id , field1 , `table` ) values ( 121 , 'inc_001' , 'tb' )"
);
Object
result
=
tbMapper
.
invoke
(
"insertSelective"
,
tb
.
getObject
(),
columns
);
Object
result
=
tbMapper
.
invoke
(
"insertSelective"
,
tb
.
getObject
(),
columns
);
Assert
.
assertEquals
(
result
,
1
);
Assert
.
assertEquals
(
result
,
1
);
// 执行查询
ObjectUtil
tbExample
=
new
ObjectUtil
(
loader
,
packagz
+
".TbExample"
);
ObjectUtil
criteria
=
new
ObjectUtil
(
tbExample
.
invoke
(
"createCriteria"
));
criteria
.
invoke
(
"andIdLessThan"
,
160
l
);
tbExample
.
set
(
"orderByClause"
,
TbColumnTable
.
invoke
(
"asc"
));
sql
=
SqlHelper
.
getFormatMapperSql
(
tbMapper
.
getObject
(),
"selectByExampleSelective"
,
tbExample
.
getObject
(),
columns
);
Assert
.
assertEquals
(
sql
,
"select id , field1 , `table` from tb Test WHERE ( Test.id < '160' ) order by `table` ASC"
);
ObjectUtil
result1
=
new
ObjectUtil
(((
List
)
tbMapper
.
invoke
(
"selectByExampleSelective"
,
tbExample
.
getObject
(),
columns
)).
get
(
0
));
Assert
.
assertEquals
(
result1
.
get
(
"table"
),
"tb"
);
}
}
});
});
}
}
...
...
src/test/resources/scripts/BugFixedTest/bug-0001.xml
View file @
5c1c5438
...
@@ -28,6 +28,7 @@
...
@@ -28,6 +28,7 @@
<!-- 插件 -->
<!-- 插件 -->
<plugin
type=
"com.itfsw.mybatis.generator.plugins.SelectiveEnhancedPlugin"
/>
<plugin
type=
"com.itfsw.mybatis.generator.plugins.SelectiveEnhancedPlugin"
/>
<plugin
type=
"com.itfsw.mybatis.generator.plugins.SelectSelectivePlugin"
/>
<plugin
type=
"com.itfsw.mybatis.generator.plugins.ModelColumnPlugin"
/>
<plugin
type=
"com.itfsw.mybatis.generator.plugins.ModelColumnPlugin"
/>
<!--jdbc的数据库连接 -->
<!--jdbc的数据库连接 -->
...
...
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