Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
后端镜像
java镜像
Smart Generator
提交
a392cdcb
S
Smart Generator
项目概览
后端镜像
/
java镜像
/
Smart Generator
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
Smart Generator
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
a392cdcb
编写于
10月 17, 2013
作者:
黄
黄勇
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
【I】优化代码
上级
c2887938
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
157 addition
and
158 deletion
+157
-158
src/main/java/com/smart/generator/Invoker.java
src/main/java/com/smart/generator/Invoker.java
+2
-1
src/main/java/com/smart/generator/builder/Builder.java
src/main/java/com/smart/generator/builder/Builder.java
+19
-19
src/main/java/com/smart/generator/builder/impl/EntityBuilder.java
.../java/com/smart/generator/builder/impl/EntityBuilder.java
+104
-105
src/main/java/com/smart/generator/builder/impl/SQLBuilder.java
...ain/java/com/smart/generator/builder/impl/SQLBuilder.java
+28
-29
src/main/java/com/smart/generator/command/impl/LoadDictCommand.java
...ava/com/smart/generator/command/impl/LoadDictCommand.java
+3
-3
src/test/java/com.smart.generator.test/CommandTest.java
src/test/java/com.smart.generator.test/CommandTest.java
+1
-1
未找到文件。
src/main/java/com/smart/generator/
command/
Invoker.java
→
src/main/java/com/smart/generator/Invoker.java
浏览文件 @
a392cdcb
package
com.smart.generator
.command
;
package
com.smart.generator
;
import
com.smart.framework.util.ArrayUtil
;
import
com.smart.framework.util.ObjectUtil
;
import
com.smart.generator.command.Command
;
public
class
Invoker
{
...
...
src/main/java/com/smart/generator/
command/impl/
builder/Builder.java
→
src/main/java/com/smart/generator/builder/Builder.java
浏览文件 @
a392cdcb
package
com.smart.generator.
command.impl.builder
;
import
com.smart.generator.bean.Column
;
import
com.smart.generator.bean.Table
;
import
java.util.List
;
import
java.util.Map
;
public
abstract
class
Builder
{
protected
String
outputPath
;
protected
Map
<
Table
,
List
<
Column
>>
tableMap
;
public
Builder
(
String
outputPath
,
Map
<
Table
,
List
<
Column
>>
tableMap
)
{
this
.
outputPath
=
outputPath
;
this
.
tableMap
=
tableMap
;
}
public
abstract
void
build
();
}
package
com.smart.generator.
builder
;
import
com.smart.generator.bean.Column
;
import
com.smart.generator.bean.Table
;
import
java.util.List
;
import
java.util.Map
;
public
abstract
class
Builder
{
protected
String
outputPath
;
protected
Map
<
Table
,
List
<
Column
>>
tableMap
;
public
Builder
(
String
outputPath
,
Map
<
Table
,
List
<
Column
>>
tableMap
)
{
this
.
outputPath
=
outputPath
;
this
.
tableMap
=
tableMap
;
}
public
abstract
void
build
();
}
src/main/java/com/smart/generator/
command/impl/
builder/impl/EntityBuilder.java
→
src/main/java/com/smart/generator/builder/impl/EntityBuilder.java
浏览文件 @
a392cdcb
package
com.smart.generator.command.impl.builder.impl
;
import
com.smart.framework.util.StringUtil
;
import
com.smart.framework.util.VelocityUtil
;
import
com.smart.generator.bean.Column
;
import
com.smart.generator.bean.Field
;
import
com.smart.generator.bean.Table
;
import
com.smart.generator.command.impl.builder.Builder
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
public
class
EntityBuilder
extends
Builder
{
private
static
List
<
String
>
keywordList
=
new
ArrayList
<
String
>();
private
static
Map
<
String
,
String
>
typeMap
=
new
HashMap
<
String
,
String
>();
static
{
keywordList
=
Arrays
.
asList
(
"abstract"
,
"assert"
,
"boolean"
,
"break"
,
"byte"
,
"case"
,
"catch"
,
"char"
,
"class"
,
"continue"
,
"default"
,
"do"
,
"double"
,
"else"
,
"enum"
,
"extends"
,
"final"
,
"finally"
,
"float"
,
"for"
,
"if"
,
"implements"
,
"import"
,
"instanceof"
,
"int"
,
"interface"
,
"long"
,
"native"
,
"new"
,
"package"
,
"private"
,
"protected"
,
"public"
,
"return"
,
"strictfp"
,
"short"
,
"static"
,
"super"
,
"switch"
,
"synchronized"
,
"this"
,
"throw"
,
"throws"
,
"transient"
,
"try"
,
"void"
,
"volatile"
,
"while"
);
typeMap
.
put
(
"bigint"
,
"long"
);
typeMap
.
put
(
"varchar"
,
"String"
);
typeMap
.
put
(
"char"
,
"String"
);
typeMap
.
put
(
"int"
,
"int"
);
typeMap
.
put
(
"text"
,
"String"
);
}
private
String
packageName
;
public
EntityBuilder
(
String
outputPath
,
Map
<
Table
,
List
<
Column
>>
tableMap
,
String
packageName
)
{
super
(
outputPath
,
tableMap
);
this
.
packageName
=
packageName
;
}
@Override
public
void
build
()
{
for
(
Map
.
Entry
<
Table
,
List
<
Column
>>
entry
:
tableMap
.
entrySet
())
{
Table
table
=
entry
.
getKey
();
String
tableName
=
table
.
getName
();
String
entityNamePascal
=
StringUtil
.
toPascalStyle
(
tableName
,
"-"
);
List
<
Column
>
columnList
=
entry
.
getValue
();
List
<
Field
>
fieldList
=
transformFieldList
(
columnList
);
Map
<
String
,
Object
>
dataMap
=
new
HashMap
<
String
,
Object
>();
dataMap
.
put
(
"app_package"
,
packageName
);
dataMap
.
put
(
"entity_name_p"
,
entityNamePascal
);
dataMap
.
put
(
"field_list"
,
fieldList
);
dataMap
.
put
(
"SU"
,
new
StringUtil
());
String
vmPath
=
"load-dict/entity_java.vm"
;
String
filePath
=
outputPath
+
"/"
+
entityNamePascal
+
".java"
;
VelocityUtil
.
mergeTemplateIntoFile
(
vmPath
,
dataMap
,
filePath
);
}
}
private
List
<
Field
>
transformFieldList
(
List
<
Column
>
columnList
)
{
List
<
Field
>
fieldList
=
new
ArrayList
<
Field
>(
columnList
.
size
());
for
(
Column
column
:
columnList
)
{
String
fieldName
=
this
.
transformFieldName
(
column
.
getName
());
String
fieldType
=
this
.
transformFieldType
(
column
.
getType
());
String
fieldComment
=
column
.
getComment
();
fieldList
.
add
(
new
Field
(
fieldName
,
fieldType
,
fieldComment
));
}
return
fieldList
;
}
private
String
transformFieldName
(
String
columnName
)
{
String
fieldName
;
if
(
keywordList
.
contains
(
columnName
))
{
fieldName
=
columnName
+
"_"
;
}
else
{
fieldName
=
columnName
;
}
return
StringUtil
.
underlineToCamelhump
(
fieldName
);
}
private
String
transformFieldType
(
String
columnType
)
{
String
fieldType
;
if
(
typeMap
.
containsKey
(
columnType
))
{
fieldType
=
typeMap
.
get
(
columnType
);
}
else
{
fieldType
=
"String"
;
}
return
fieldType
;
}
}
package
com.smart.generator.builder.impl
;
import
com.smart.framework.util.StringUtil
;
import
com.smart.framework.util.VelocityUtil
;
import
com.smart.generator.bean.Column
;
import
com.smart.generator.bean.Field
;
import
com.smart.generator.bean.Table
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
public
class
EntityBuilder
extends
Builder
{
private
static
List
<
String
>
keywordList
=
new
ArrayList
<
String
>();
private
static
Map
<
String
,
String
>
typeMap
=
new
HashMap
<
String
,
String
>();
static
{
keywordList
=
Arrays
.
asList
(
"abstract"
,
"assert"
,
"boolean"
,
"break"
,
"byte"
,
"case"
,
"catch"
,
"char"
,
"class"
,
"continue"
,
"default"
,
"do"
,
"double"
,
"else"
,
"enum"
,
"extends"
,
"final"
,
"finally"
,
"float"
,
"for"
,
"if"
,
"implements"
,
"import"
,
"instanceof"
,
"int"
,
"interface"
,
"long"
,
"native"
,
"new"
,
"package"
,
"private"
,
"protected"
,
"public"
,
"return"
,
"strictfp"
,
"short"
,
"static"
,
"super"
,
"switch"
,
"synchronized"
,
"this"
,
"throw"
,
"throws"
,
"transient"
,
"try"
,
"void"
,
"volatile"
,
"while"
);
typeMap
.
put
(
"bigint"
,
"long"
);
typeMap
.
put
(
"varchar"
,
"String"
);
typeMap
.
put
(
"char"
,
"String"
);
typeMap
.
put
(
"int"
,
"int"
);
typeMap
.
put
(
"text"
,
"String"
);
}
private
String
packageName
;
public
EntityBuilder
(
String
outputPath
,
Map
<
Table
,
List
<
Column
>>
tableMap
,
String
packageName
)
{
super
(
outputPath
,
tableMap
);
this
.
packageName
=
packageName
;
}
@Override
public
void
build
()
{
for
(
Map
.
Entry
<
Table
,
List
<
Column
>>
entry
:
tableMap
.
entrySet
())
{
Table
table
=
entry
.
getKey
();
String
tableName
=
table
.
getName
();
String
entityNamePascal
=
StringUtil
.
toPascalStyle
(
tableName
,
"-"
);
List
<
Column
>
columnList
=
entry
.
getValue
();
List
<
Field
>
fieldList
=
transformFieldList
(
columnList
);
Map
<
String
,
Object
>
dataMap
=
new
HashMap
<
String
,
Object
>();
dataMap
.
put
(
"app_package"
,
packageName
);
dataMap
.
put
(
"entity_name_p"
,
entityNamePascal
);
dataMap
.
put
(
"field_list"
,
fieldList
);
dataMap
.
put
(
"SU"
,
new
StringUtil
());
String
vmPath
=
"load-dict/entity_java.vm"
;
String
filePath
=
outputPath
+
"/"
+
entityNamePascal
+
".java"
;
VelocityUtil
.
mergeTemplateIntoFile
(
vmPath
,
dataMap
,
filePath
);
}
}
private
List
<
Field
>
transformFieldList
(
List
<
Column
>
columnList
)
{
List
<
Field
>
fieldList
=
new
ArrayList
<
Field
>(
columnList
.
size
());
for
(
Column
column
:
columnList
)
{
String
fieldName
=
this
.
transformFieldName
(
column
.
getName
());
String
fieldType
=
this
.
transformFieldType
(
column
.
getType
());
String
fieldComment
=
column
.
getComment
();
fieldList
.
add
(
new
Field
(
fieldName
,
fieldType
,
fieldComment
));
}
return
fieldList
;
}
private
String
transformFieldName
(
String
columnName
)
{
String
fieldName
;
if
(
keywordList
.
contains
(
columnName
))
{
fieldName
=
columnName
+
"_"
;
}
else
{
fieldName
=
columnName
;
}
return
StringUtil
.
underlineToCamelhump
(
fieldName
);
}
private
String
transformFieldType
(
String
columnType
)
{
String
fieldType
;
if
(
typeMap
.
containsKey
(
columnType
))
{
fieldType
=
typeMap
.
get
(
columnType
);
}
else
{
fieldType
=
"String"
;
}
return
fieldType
;
}
}
src/main/java/com/smart/generator/
command/impl/
builder/impl/SQLBuilder.java
→
src/main/java/com/smart/generator/builder/impl/SQLBuilder.java
浏览文件 @
a392cdcb
package
com.smart.generator.command.impl.builder.impl
;
import
com.smart.framework.util.VelocityUtil
;
import
com.smart.generator.bean.Column
;
import
com.smart.generator.bean.Table
;
import
com.smart.generator.command.impl.builder.Builder
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
public
class
SQLBuilder
extends
Builder
{
private
String
appName
;
public
SQLBuilder
(
String
outputPath
,
Map
<
Table
,
List
<
Column
>>
tableMap
,
String
appName
)
{
super
(
outputPath
,
tableMap
);
this
.
appName
=
appName
;
}
@Override
public
void
build
()
{
Map
<
String
,
Object
>
dataMap
=
new
HashMap
<
String
,
Object
>();
dataMap
.
put
(
"table_map"
,
tableMap
);
String
vmPath
=
"load-dict/table_sql.vm"
;
String
filePath
=
outputPath
+
"/"
+
appName
+
".sql"
;
VelocityUtil
.
mergeTemplateIntoFile
(
vmPath
,
dataMap
,
filePath
);
}
}
package
com.smart.generator.builder.impl
;
import
com.smart.framework.util.VelocityUtil
;
import
com.smart.generator.bean.Column
;
import
com.smart.generator.bean.Table
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
public
class
SQLBuilder
extends
Builder
{
private
String
appName
;
public
SQLBuilder
(
String
outputPath
,
Map
<
Table
,
List
<
Column
>>
tableMap
,
String
appName
)
{
super
(
outputPath
,
tableMap
);
this
.
appName
=
appName
;
}
@Override
public
void
build
()
{
Map
<
String
,
Object
>
dataMap
=
new
HashMap
<
String
,
Object
>();
dataMap
.
put
(
"table_map"
,
tableMap
);
String
vmPath
=
"load-dict/table_sql.vm"
;
String
filePath
=
outputPath
+
"/"
+
appName
+
".sql"
;
VelocityUtil
.
mergeTemplateIntoFile
(
vmPath
,
dataMap
,
filePath
);
}
}
src/main/java/com/smart/generator/command/impl/LoadDictCommand.java
浏览文件 @
a392cdcb
...
...
@@ -4,9 +4,9 @@ import com.smart.framework.util.StringUtil;
import
com.smart.generator.bean.Column
;
import
com.smart.generator.bean.Table
;
import
com.smart.generator.command.Command
;
import
com.smart.generator.
command.impl.
builder.Builder
;
import
com.smart.generator.
command.impl.
builder.impl.EntityBuilder
;
import
com.smart.generator.
command.impl.
builder.impl.SQLBuilder
;
import
com.smart.generator.builder.Builder
;
import
com.smart.generator.builder.impl.EntityBuilder
;
import
com.smart.generator.builder.impl.SQLBuilder
;
import
java.io.File
;
import
java.io.IOException
;
import
java.util.ArrayList
;
...
...
src/test/java/com.smart.generator.test/CommandTest.java
浏览文件 @
a392cdcb
...
...
@@ -2,7 +2,7 @@ package com.smart.generator.test;
import
com.smart.framework.OrderedRunner
;
import
com.smart.framework.annotation.Order
;
import
com.smart.generator.
command.
Invoker
;
import
com.smart.generator.Invoker
;
import
com.smart.generator.command.impl.CreateActionCommand
;
import
com.smart.generator.command.impl.CreateAppCommand
;
import
com.smart.generator.command.impl.CreateCRUDCommand
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录