Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
后端镜像
java镜像
Smart Generator
提交
92c8c60f
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 搜索 >>
提交
92c8c60f
编写于
4月 18, 2014
作者:
黄
黄勇
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
【I】代码优化
上级
b4f5ecbc
变更
19
隐藏空白更改
内联
并排
Showing
19 changed file
with
554 addition
and
556 deletion
+554
-556
pom.xml
pom.xml
+3
-3
src/main/java/smart/generator/CodeGenerator.java
src/main/java/smart/generator/CodeGenerator.java
+4
-4
src/main/java/smart/generator/Invoker.java
src/main/java/smart/generator/Invoker.java
+4
-4
src/main/java/smart/generator/bean/Column.java
src/main/java/smart/generator/bean/Column.java
+78
-78
src/main/java/smart/generator/bean/Field.java
src/main/java/smart/generator/bean/Field.java
+38
-38
src/main/java/smart/generator/bean/Table.java
src/main/java/smart/generator/bean/Table.java
+28
-28
src/main/java/smart/generator/builder/Builder.java
src/main/java/smart/generator/builder/Builder.java
+3
-3
src/main/java/smart/generator/builder/impl/EntityBuilder.java
...main/java/smart/generator/builder/impl/EntityBuilder.java
+7
-7
src/main/java/smart/generator/builder/impl/SQLBuilder.java
src/main/java/smart/generator/builder/impl/SQLBuilder.java
+5
-5
src/main/java/smart/generator/command/Command.java
src/main/java/smart/generator/command/Command.java
+2
-2
src/main/java/smart/generator/command/impl/CreateActionCommand.java
...ava/smart/generator/command/impl/CreateActionCommand.java
+41
-41
src/main/java/smart/generator/command/impl/CreateAppCommand.java
...n/java/smart/generator/command/impl/CreateAppCommand.java
+5
-7
src/main/java/smart/generator/command/impl/CreateCRUDCommand.java
.../java/smart/generator/command/impl/CreateCRUDCommand.java
+75
-75
src/main/java/smart/generator/command/impl/CreateEntityCommand.java
...ava/smart/generator/command/impl/CreateEntityCommand.java
+39
-39
src/main/java/smart/generator/command/impl/CreatePageCommand.java
.../java/smart/generator/command/impl/CreatePageCommand.java
+41
-41
src/main/java/smart/generator/command/impl/CreateServiceCommand.java
...va/smart/generator/command/impl/CreateServiceCommand.java
+50
-50
src/main/java/smart/generator/command/impl/LoadDictCommand.java
...in/java/smart/generator/command/impl/LoadDictCommand.java
+116
-116
src/main/resources/log4j.properties
src/main/resources/log4j.properties
+1
-1
src/test/java/smart/generator/test/CommandTest.java
src/test/java/smart/generator/test/CommandTest.java
+14
-14
未找到文件。
pom.xml
浏览文件 @
92c8c60f
...
...
@@ -9,7 +9,7 @@
<project.build.sourceEncoding>
UTF-8
</project.build.sourceEncoding>
</properties>
<groupId>
com.
smart
</groupId>
<groupId>
smart
</groupId>
<artifactId>
smart-generator
</artifactId>
<version>
1.0
</version>
...
...
@@ -41,9 +41,9 @@
</dependency>
<!-- Smart -->
<dependency>
<groupId>
com.
smart
</groupId>
<groupId>
smart
</groupId>
<artifactId>
smart-framework
</artifactId>
<version>
2.
0
</version>
<version>
2.
2-SNAPSHOT
</version>
</dependency>
</dependencies>
...
...
src/main/java/
com/
smart/generator/CodeGenerator.java
→
src/main/java/smart/generator/CodeGenerator.java
浏览文件 @
92c8c60f
package
com.
smart.generator
;
package
smart.generator
;
import
com.smart.framework.FrameworkConstant
;
import
com.smart.framework.util.FileUtil
;
import
com.smart.framework.util.StringUtil
;
import
java.io.FileWriter
;
import
java.util.Map
;
import
org.apache.velocity.Template
;
...
...
@@ -12,6 +9,9 @@ import org.apache.velocity.runtime.RuntimeConstants;
import
org.apache.velocity.runtime.log.NullLogChute
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
smart.framework.FrameworkConstant
;
import
smart.framework.util.FileUtil
;
import
smart.framework.util.StringUtil
;
public
class
CodeGenerator
{
...
...
src/main/java/
com/
smart/generator/Invoker.java
→
src/main/java/smart/generator/Invoker.java
浏览文件 @
92c8c60f
package
com.
smart.generator
;
package
smart.generator
;
import
com.
smart.framework.util.ArrayUtil
;
import
com.
smart.framework.util.ObjectUtil
;
import
com.
smart.generator.command.Command
;
import
smart.framework.util.ArrayUtil
;
import
smart.framework.util.ObjectUtil
;
import
smart.generator.command.Command
;
public
class
Invoker
{
...
...
src/main/java/
com/
smart/generator/bean/Column.java
→
src/main/java/smart/generator/bean/Column.java
浏览文件 @
92c8c60f
package
com.smart.generator.bean
;
public
class
Column
{
private
String
name
;
private
String
type
;
private
String
length
;
private
String
precision
;
private
String
notnull
;
private
String
pk
;
private
String
comment
;
public
Column
(
String
name
,
String
type
,
String
length
,
String
precision
,
String
notnull
,
String
pk
,
String
comment
)
{
this
.
name
=
name
;
this
.
type
=
type
;
this
.
length
=
length
;
this
.
precision
=
precision
;
this
.
notnull
=
notnull
;
this
.
pk
=
pk
;
this
.
comment
=
comment
;
}
public
String
getName
()
{
return
name
;
}
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
public
String
getType
()
{
return
type
;
}
public
void
setType
(
String
type
)
{
this
.
type
=
type
;
}
public
String
getLength
()
{
return
length
;
}
public
void
setLength
(
String
length
)
{
this
.
length
=
length
;
}
public
String
getPrecision
()
{
return
precision
;
}
public
void
setPrecision
(
String
precision
)
{
this
.
precision
=
precision
;
}
public
String
getNotnull
()
{
return
notnull
;
}
public
void
setNotnull
(
String
notnull
)
{
this
.
notnull
=
notnull
;
}
public
String
getPk
()
{
return
pk
;
}
public
void
setPk
(
String
pk
)
{
this
.
pk
=
pk
;
}
public
String
getComment
()
{
return
comment
;
}
public
void
setComment
(
String
comment
)
{
this
.
comment
=
comment
;
}
}
package
smart.generator.bean
;
public
class
Column
{
private
String
name
;
private
String
type
;
private
String
length
;
private
String
precision
;
private
String
notnull
;
private
String
pk
;
private
String
comment
;
public
Column
(
String
name
,
String
type
,
String
length
,
String
precision
,
String
notnull
,
String
pk
,
String
comment
)
{
this
.
name
=
name
;
this
.
type
=
type
;
this
.
length
=
length
;
this
.
precision
=
precision
;
this
.
notnull
=
notnull
;
this
.
pk
=
pk
;
this
.
comment
=
comment
;
}
public
String
getName
()
{
return
name
;
}
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
public
String
getType
()
{
return
type
;
}
public
void
setType
(
String
type
)
{
this
.
type
=
type
;
}
public
String
getLength
()
{
return
length
;
}
public
void
setLength
(
String
length
)
{
this
.
length
=
length
;
}
public
String
getPrecision
()
{
return
precision
;
}
public
void
setPrecision
(
String
precision
)
{
this
.
precision
=
precision
;
}
public
String
getNotnull
()
{
return
notnull
;
}
public
void
setNotnull
(
String
notnull
)
{
this
.
notnull
=
notnull
;
}
public
String
getPk
()
{
return
pk
;
}
public
void
setPk
(
String
pk
)
{
this
.
pk
=
pk
;
}
public
String
getComment
()
{
return
comment
;
}
public
void
setComment
(
String
comment
)
{
this
.
comment
=
comment
;
}
}
src/main/java/
com/
smart/generator/bean/Field.java
→
src/main/java/smart/generator/bean/Field.java
浏览文件 @
92c8c60f
package
com.smart.generator.bean
;
public
class
Field
{
private
String
name
;
private
String
type
;
private
String
comment
;
public
Field
(
String
name
,
String
type
,
String
comment
)
{
this
.
name
=
name
;
this
.
type
=
type
;
this
.
comment
=
comment
;
}
public
String
getName
()
{
return
name
;
}
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
public
String
getType
()
{
return
type
;
}
public
void
setType
(
String
type
)
{
this
.
type
=
type
;
}
public
String
getComment
()
{
return
comment
;
}
public
void
setComment
(
String
comment
)
{
this
.
comment
=
comment
;
}
}
package
smart.generator.bean
;
public
class
Field
{
private
String
name
;
private
String
type
;
private
String
comment
;
public
Field
(
String
name
,
String
type
,
String
comment
)
{
this
.
name
=
name
;
this
.
type
=
type
;
this
.
comment
=
comment
;
}
public
String
getName
()
{
return
name
;
}
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
public
String
getType
()
{
return
type
;
}
public
void
setType
(
String
type
)
{
this
.
type
=
type
;
}
public
String
getComment
()
{
return
comment
;
}
public
void
setComment
(
String
comment
)
{
this
.
comment
=
comment
;
}
}
src/main/java/
com/
smart/generator/bean/Table.java
→
src/main/java/smart/generator/bean/Table.java
浏览文件 @
92c8c60f
package
com.smart.generator.bean
;
public
class
Table
{
private
String
name
;
private
String
pk
;
public
Table
(
String
name
,
String
pk
)
{
this
.
name
=
name
;
this
.
pk
=
pk
;
}
public
String
getName
()
{
return
name
;
}
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
public
String
getPk
()
{
return
pk
;
}
public
void
setPk
(
String
pk
)
{
this
.
pk
=
pk
;
}
}
package
smart.generator.bean
;
public
class
Table
{
private
String
name
;
private
String
pk
;
public
Table
(
String
name
,
String
pk
)
{
this
.
name
=
name
;
this
.
pk
=
pk
;
}
public
String
getName
()
{
return
name
;
}
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
public
String
getPk
()
{
return
pk
;
}
public
void
setPk
(
String
pk
)
{
this
.
pk
=
pk
;
}
}
src/main/java/
com/
smart/generator/builder/Builder.java
→
src/main/java/smart/generator/builder/Builder.java
浏览文件 @
92c8c60f
package
com.
smart.generator.builder
;
package
smart.generator.builder
;
import
com.smart.generator.bean.Column
;
import
com.smart.generator.bean.Table
;
import
java.util.List
;
import
java.util.Map
;
import
smart.generator.bean.Column
;
import
smart.generator.bean.Table
;
public
abstract
class
Builder
{
...
...
src/main/java/
com/
smart/generator/builder/impl/EntityBuilder.java
→
src/main/java/smart/generator/builder/impl/EntityBuilder.java
浏览文件 @
92c8c60f
package
com.
smart.generator.builder.impl
;
package
smart.generator.builder.impl
;
import
com.smart.framework.util.StringUtil
;
import
com.smart.generator.CodeGenerator
;
import
com.smart.generator.bean.Column
;
import
com.smart.generator.bean.Field
;
import
com.smart.generator.bean.Table
;
import
com.smart.generator.builder.Builder
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
smart.framework.util.StringUtil
;
import
smart.generator.CodeGenerator
;
import
smart.generator.bean.Column
;
import
smart.generator.bean.Field
;
import
smart.generator.bean.Table
;
import
smart.generator.builder.Builder
;
public
class
EntityBuilder
extends
Builder
{
...
...
src/main/java/
com/
smart/generator/builder/impl/SQLBuilder.java
→
src/main/java/smart/generator/builder/impl/SQLBuilder.java
浏览文件 @
92c8c60f
package
com.
smart.generator.builder.impl
;
package
smart.generator.builder.impl
;
import
com.smart.generator.CodeGenerator
;
import
com.smart.generator.bean.Column
;
import
com.smart.generator.bean.Table
;
import
com.smart.generator.builder.Builder
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
smart.generator.CodeGenerator
;
import
smart.generator.bean.Column
;
import
smart.generator.bean.Table
;
import
smart.generator.builder.Builder
;
public
class
SQLBuilder
extends
Builder
{
...
...
src/main/java/
com/
smart/generator/command/Command.java
→
src/main/java/smart/generator/command/Command.java
浏览文件 @
92c8c60f
package
com.
smart.generator.command
;
package
smart.generator.command
;
import
com.smart.framework.util.ArrayUtil
;
import
java.io.FileInputStream
;
import
java.io.FileNotFoundException
;
import
java.io.IOException
;
import
java.util.Properties
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
smart.framework.util.ArrayUtil
;
public
abstract
class
Command
{
...
...
src/main/java/
com/
smart/generator/command/impl/CreateActionCommand.java
→
src/main/java/smart/generator/command/impl/CreateActionCommand.java
浏览文件 @
92c8c60f
package
com.smart.generator.command.impl
;
import
com.smart.framework.util.StringUtil
;
import
com.smart.generator.CodeGenerator
;
import
com.smart.generator.command.Command
;
import
java.util.HashMap
;
import
java.util.Map
;
public
class
CreateActionCommand
extends
Command
{
private
String
appPath
;
private
String
actionName
;
@Override
public
int
getParamsLength
()
{
return
2
;
}
@Override
public
void
initVariables
(
String
...
params
)
{
appPath
=
params
[
0
];
actionName
=
params
[
1
];
}
@Override
public
void
generateFiles
()
{
String
appPackage
=
getAppPackage
(
appPath
);
String
packageName
=
appPackage
.
replace
(
'.'
,
'/'
);
String
actionNamePascal
=
StringUtil
.
toPascalStyle
(
actionName
,
"-"
);
String
actionNameUnderline
=
StringUtil
.
toUnderlineStyle
(
actionName
,
"-"
);
Map
<
String
,
Object
>
dataMap
=
new
HashMap
<
String
,
Object
>();
dataMap
.
put
(
"app_package"
,
appPackage
);
dataMap
.
put
(
"action_name_p"
,
actionNamePascal
);
dataMap
.
put
(
"action_name_u"
,
actionNameUnderline
);
String
vmPath
=
"create-action/action_java.vm"
;
String
filePath
=
appPath
+
"/src/main/java/"
+
packageName
+
"/action/"
+
actionNamePascal
+
"Action.java"
;
CodeGenerator
.
generateCode
(
vmPath
,
dataMap
,
filePath
);
}
}
package
smart.generator.command.impl
;
import
java.util.HashMap
;
import
java.util.Map
;
import
smart.framework.util.StringUtil
;
import
smart.generator.CodeGenerator
;
import
smart.generator.command.Command
;
public
class
CreateActionCommand
extends
Command
{
private
String
appPath
;
private
String
actionName
;
@Override
public
int
getParamsLength
()
{
return
2
;
}
@Override
public
void
initVariables
(
String
...
params
)
{
appPath
=
params
[
0
];
actionName
=
params
[
1
];
}
@Override
public
void
generateFiles
()
{
String
appPackage
=
getAppPackage
(
appPath
);
String
packageName
=
appPackage
.
replace
(
'.'
,
'/'
);
String
actionNamePascal
=
StringUtil
.
toPascalStyle
(
actionName
,
"-"
);
String
actionNameUnderline
=
StringUtil
.
toUnderlineStyle
(
actionName
,
"-"
);
Map
<
String
,
Object
>
dataMap
=
new
HashMap
<
String
,
Object
>();
dataMap
.
put
(
"app_package"
,
appPackage
);
dataMap
.
put
(
"action_name_p"
,
actionNamePascal
);
dataMap
.
put
(
"action_name_u"
,
actionNameUnderline
);
String
vmPath
=
"create-action/action_java.vm"
;
String
filePath
=
appPath
+
"/src/main/java/"
+
packageName
+
"/action/"
+
actionNamePascal
+
"Action.java"
;
CodeGenerator
.
generateCode
(
vmPath
,
dataMap
,
filePath
);
}
}
src/main/java/
com/
smart/generator/command/impl/CreateAppCommand.java
→
src/main/java/smart/generator/command/impl/CreateAppCommand.java
浏览文件 @
92c8c60f
package
com.
smart.generator.command.impl
;
package
smart.generator.command.impl
;
import
com.smart.framework.util.FileUtil
;
import
com.smart.framework.util.StringUtil
;
import
com.smart.generator.CodeGenerator
;
import
com.smart.generator.command.Command
;
import
java.util.HashMap
;
import
java.util.Map
;
import
smart.framework.util.FileUtil
;
import
smart.framework.util.StringUtil
;
import
smart.generator.CodeGenerator
;
import
smart.generator.command.Command
;
public
class
CreateAppCommand
extends
Command
{
...
...
@@ -83,7 +83,6 @@ public class CreateAppCommand extends Command {
private
void
generateConfigFileForMain
(
String
dbName
)
{
Map
<
String
,
Object
>
dataMap
=
new
HashMap
<
String
,
Object
>();
dataMap
.
put
(
"app_name"
,
appName
);
dataMap
.
put
(
"app_package"
,
appPackage
);
dataMap
.
put
(
"db_name"
,
dbName
);
...
...
@@ -94,7 +93,6 @@ public class CreateAppCommand extends Command {
private
void
generateConfigFileForTest
(
String
dbName
)
{
Map
<
String
,
Object
>
dataMap
=
new
HashMap
<
String
,
Object
>();
dataMap
.
put
(
"app_name"
,
appName
);
dataMap
.
put
(
"app_package"
,
appPackage
);
dataMap
.
put
(
"db_name"
,
dbName
+
"_test"
);
...
...
src/main/java/
com/
smart/generator/command/impl/CreateCRUDCommand.java
→
src/main/java/smart/generator/command/impl/CreateCRUDCommand.java
浏览文件 @
92c8c60f
package
com.smart.generator.command.impl
;
import
com.smart.framework.util.StringUtil
;
import
com.smart.generator.CodeGenerator
;
import
com.smart.generator.command.Command
;
import
java.util.HashMap
;
import
java.util.Map
;
public
class
CreateCRUDCommand
extends
Command
{
private
String
appPath
;
private
String
crudName
;
@Override
public
int
getParamsLength
()
{
return
2
;
}
@Override
public
void
initVariables
(
String
...
params
)
{
appPath
=
params
[
0
];
crudName
=
params
[
1
];
}
@Override
public
void
generateFiles
()
{
generateEntity
();
generateService
();
generateAction
();
generatePage
();
}
private
void
generateEntity
()
{
Command
command
=
new
CreateEntityCommand
();
command
.
initVariables
(
appPath
,
crudName
);
command
.
generateFiles
();
}
private
void
generateService
()
{
Command
command
=
new
CreateServiceCommand
();
command
.
initVariables
(
appPath
,
crudName
);
command
.
generateFiles
();
}
private
void
generateAction
()
{
String
appPackage
=
getAppPackage
(
appPath
);
String
packageName
=
appPackage
.
replace
(
'.'
,
'/'
);
String
actionNamePascal
=
StringUtil
.
toPascalStyle
(
crudName
,
"-"
);
String
actionNameUnderline
=
StringUtil
.
toUnderlineStyle
(
crudName
,
"-"
);
Map
<
String
,
Object
>
dataMap
=
new
HashMap
<
String
,
Object
>();
dataMap
.
put
(
"app_package"
,
appPackage
);
dataMap
.
put
(
"action_name_p"
,
actionNamePascal
);
dataMap
.
put
(
"action_name_u"
,
actionNameUnderline
);
String
vmPath
=
"create-crud/action_java.vm"
;
String
filePath
=
appPath
+
"/src/main/java/"
+
packageName
+
"/action/"
+
actionNamePascal
+
"Action.java"
;
CodeGenerator
.
generateCode
(
vmPath
,
dataMap
,
filePath
);
}
private
void
generatePage
()
{
String
[]
pageNames
=
{
crudName
,
crudName
+
"-create"
,
crudName
+
"-edit"
,
crudName
+
"-view"
,
};
Command
command
;
for
(
String
pageName
:
pageNames
)
{
command
=
new
CreatePageCommand
();
command
.
initVariables
(
appPath
,
pageName
);
command
.
generateFiles
();
}
}
}
package
smart.generator.command.impl
;
import
java.util.HashMap
;
import
java.util.Map
;
import
smart.framework.util.StringUtil
;
import
smart.generator.CodeGenerator
;
import
smart.generator.command.Command
;
public
class
CreateCRUDCommand
extends
Command
{
private
String
appPath
;
private
String
crudName
;
@Override
public
int
getParamsLength
()
{
return
2
;
}
@Override
public
void
initVariables
(
String
...
params
)
{
appPath
=
params
[
0
];
crudName
=
params
[
1
];
}
@Override
public
void
generateFiles
()
{
generateEntity
();
generateService
();
generateAction
();
generatePage
();
}
private
void
generateEntity
()
{
Command
command
=
new
CreateEntityCommand
();
command
.
initVariables
(
appPath
,
crudName
);
command
.
generateFiles
();
}
private
void
generateService
()
{
Command
command
=
new
CreateServiceCommand
();
command
.
initVariables
(
appPath
,
crudName
);
command
.
generateFiles
();
}
private
void
generateAction
()
{
String
appPackage
=
getAppPackage
(
appPath
);
String
packageName
=
appPackage
.
replace
(
'.'
,
'/'
);
String
actionNamePascal
=
StringUtil
.
toPascalStyle
(
crudName
,
"-"
);
String
actionNameUnderline
=
StringUtil
.
toUnderlineStyle
(
crudName
,
"-"
);
Map
<
String
,
Object
>
dataMap
=
new
HashMap
<
String
,
Object
>();
dataMap
.
put
(
"app_package"
,
appPackage
);
dataMap
.
put
(
"action_name_p"
,
actionNamePascal
);
dataMap
.
put
(
"action_name_u"
,
actionNameUnderline
);
String
vmPath
=
"create-crud/action_java.vm"
;
String
filePath
=
appPath
+
"/src/main/java/"
+
packageName
+
"/action/"
+
actionNamePascal
+
"Action.java"
;
CodeGenerator
.
generateCode
(
vmPath
,
dataMap
,
filePath
);
}
private
void
generatePage
()
{
String
[]
pageNames
=
{
crudName
,
crudName
+
"-create"
,
crudName
+
"-edit"
,
crudName
+
"-view"
,
};
Command
command
;
for
(
String
pageName
:
pageNames
)
{
command
=
new
CreatePageCommand
();
command
.
initVariables
(
appPath
,
pageName
);
command
.
generateFiles
();
}
}
}
src/main/java/
com/
smart/generator/command/impl/CreateEntityCommand.java
→
src/main/java/smart/generator/command/impl/CreateEntityCommand.java
浏览文件 @
92c8c60f
package
com.smart.generator.command.impl
;
import
com.smart.framework.util.StringUtil
;
import
com.smart.generator.CodeGenerator
;
import
com.smart.generator.command.Command
;
import
java.util.HashMap
;
import
java.util.Map
;
public
class
CreateEntityCommand
extends
Command
{
private
String
appPath
;
private
String
entityName
;
@Override
public
int
getParamsLength
()
{
return
2
;
}
@Override
public
void
initVariables
(
String
...
params
)
{
appPath
=
params
[
0
];
entityName
=
params
[
1
];
}
@Override
public
void
generateFiles
()
{
String
appPackage
=
getAppPackage
(
appPath
);
String
packageName
=
appPackage
.
replace
(
'.'
,
'/'
);
String
entityNamePascal
=
StringUtil
.
toPascalStyle
(
entityName
,
"-"
);
Map
<
String
,
Object
>
dataMap
=
new
HashMap
<
String
,
Object
>();
dataMap
.
put
(
"app_package"
,
appPackage
);
dataMap
.
put
(
"entity_name_p"
,
entityNamePascal
);
String
vmPath
=
"create-entity/entity_java.vm"
;
String
filePath
=
appPath
+
"/src/main/java/"
+
packageName
+
"/entity/"
+
entityNamePascal
+
".java"
;
CodeGenerator
.
generateCode
(
vmPath
,
dataMap
,
filePath
);
}
}
package
smart.generator.command.impl
;
import
java.util.HashMap
;
import
java.util.Map
;
import
smart.framework.util.StringUtil
;
import
smart.generator.CodeGenerator
;
import
smart.generator.command.Command
;
public
class
CreateEntityCommand
extends
Command
{
private
String
appPath
;
private
String
entityName
;
@Override
public
int
getParamsLength
()
{
return
2
;
}
@Override
public
void
initVariables
(
String
...
params
)
{
appPath
=
params
[
0
];
entityName
=
params
[
1
];
}
@Override
public
void
generateFiles
()
{
String
appPackage
=
getAppPackage
(
appPath
);
String
packageName
=
appPackage
.
replace
(
'.'
,
'/'
);
String
entityNamePascal
=
StringUtil
.
toPascalStyle
(
entityName
,
"-"
);
Map
<
String
,
Object
>
dataMap
=
new
HashMap
<
String
,
Object
>();
dataMap
.
put
(
"app_package"
,
appPackage
);
dataMap
.
put
(
"entity_name_p"
,
entityNamePascal
);
String
vmPath
=
"create-entity/entity_java.vm"
;
String
filePath
=
appPath
+
"/src/main/java/"
+
packageName
+
"/entity/"
+
entityNamePascal
+
".java"
;
CodeGenerator
.
generateCode
(
vmPath
,
dataMap
,
filePath
);
}
}
src/main/java/
com/
smart/generator/command/impl/CreatePageCommand.java
→
src/main/java/smart/generator/command/impl/CreatePageCommand.java
浏览文件 @
92c8c60f
package
com.smart.generator.command.impl
;
import
com.smart.framework.util.StringUtil
;
import
com.smart.generator.CodeGenerator
;
import
com.smart.generator.command.Command
;
import
java.util.HashMap
;
import
java.util.Map
;
public
class
CreatePageCommand
extends
Command
{
private
String
appPath
;
private
String
pageName
;
@Override
public
int
getParamsLength
()
{
return
2
;
}
@Override
public
void
initVariables
(
String
...
params
)
{
appPath
=
params
[
0
];
pageName
=
params
[
1
];
}
@Override
public
void
generateFiles
()
{
String
appName
=
getAppName
(
appPath
);
String
appNameDisplay
=
StringUtil
.
toDisplayStyle
(
appName
,
"-"
);
String
pageNameDisplay
=
StringUtil
.
toDisplayStyle
(
pageName
,
"-"
);
String
pageNameUnderline
=
StringUtil
.
toUnderlineStyle
(
pageName
,
"-"
);
Map
<
String
,
Object
>
dataMap
=
new
HashMap
<
String
,
Object
>();
dataMap
.
put
(
"app_name_d"
,
appNameDisplay
);
dataMap
.
put
(
"page_name_d"
,
pageNameDisplay
);
String
vmPath
=
"create-page/page_html.vm"
;
String
filePath
=
appPath
+
"/src/main/webapp/www/html/"
+
pageNameUnderline
+
".html"
;
CodeGenerator
.
generateCode
(
vmPath
,
dataMap
,
filePath
);
}
}
package
smart.generator.command.impl
;
import
java.util.HashMap
;
import
java.util.Map
;
import
smart.framework.util.StringUtil
;
import
smart.generator.CodeGenerator
;
import
smart.generator.command.Command
;
public
class
CreatePageCommand
extends
Command
{
private
String
appPath
;
private
String
pageName
;
@Override
public
int
getParamsLength
()
{
return
2
;
}
@Override
public
void
initVariables
(
String
...
params
)
{
appPath
=
params
[
0
];
pageName
=
params
[
1
];
}
@Override
public
void
generateFiles
()
{
String
appName
=
getAppName
(
appPath
);
String
appNameDisplay
=
StringUtil
.
toDisplayStyle
(
appName
,
"-"
);
String
pageNameDisplay
=
StringUtil
.
toDisplayStyle
(
pageName
,
"-"
);
String
pageNameUnderline
=
StringUtil
.
toUnderlineStyle
(
pageName
,
"-"
);
Map
<
String
,
Object
>
dataMap
=
new
HashMap
<
String
,
Object
>();
dataMap
.
put
(
"app_name_d"
,
appNameDisplay
);
dataMap
.
put
(
"page_name_d"
,
pageNameDisplay
);
String
vmPath
=
"create-page/page_html.vm"
;
String
filePath
=
appPath
+
"/src/main/webapp/www/html/"
+
pageNameUnderline
+
".html"
;
CodeGenerator
.
generateCode
(
vmPath
,
dataMap
,
filePath
);
}
}
src/main/java/
com/
smart/generator/command/impl/CreateServiceCommand.java
→
src/main/java/smart/generator/command/impl/CreateServiceCommand.java
浏览文件 @
92c8c60f
package
com.smart.generator.command.impl
;
import
com.smart.framework.util.StringUtil
;
import
com.smart.generator.CodeGenerator
;
import
com.smart.generator.command.Command
;
import
java.util.HashMap
;
import
java.util.Map
;
public
class
CreateServiceCommand
extends
Command
{
private
String
appPath
;
private
String
serviceName
;
@Override
public
int
getParamsLength
()
{
return
2
;
}
@Override
public
void
initVariables
(
String
...
params
)
{
appPath
=
params
[
0
];
serviceName
=
params
[
1
];
}
@Override
public
void
generateFiles
()
{
String
appPackage
=
getAppPackage
(
appPath
);
String
packageName
=
appPackage
.
replace
(
'.'
,
'/'
);
String
serviceNamePascal
=
StringUtil
.
toPascalStyle
(
serviceName
,
"-"
);
Map
<
String
,
Object
>
dataMap
=
new
HashMap
<
String
,
Object
>();
dataMap
.
put
(
"app_package"
,
appPackage
);
dataMap
.
put
(
"service_name_p"
,
serviceNamePascal
);
generateServiceInterface
(
packageName
,
serviceNamePascal
,
dataMap
);
generateServiceImplement
(
packageName
,
serviceNamePascal
,
dataMap
);
}
private
void
generateServiceInterface
(
String
packageName
,
String
serviceNamePascal
,
Map
<
String
,
Object
>
dataMap
)
{
String
vmPath
=
"create-service/service_java.vm"
;
String
filePath
=
appPath
+
"/src/main/java/"
+
packageName
+
"/service/"
+
serviceNamePascal
+
"Service.java"
;
CodeGenerator
.
generateCode
(
vmPath
,
dataMap
,
filePath
);
}
private
void
generateServiceImplement
(
String
packageName
,
String
serviceNamePascal
,
Map
<
String
,
Object
>
dataMap
)
{
String
vmPath
=
"create-service/service_impl_java.vm"
;
String
filePath
=
appPath
+
"/src/main/java/"
+
packageName
+
"/service/impl/"
+
serviceNamePascal
+
"ServiceImpl.java"
;
CodeGenerator
.
generateCode
(
vmPath
,
dataMap
,
filePath
);
}
}
package
smart.generator.command.impl
;
import
java.util.HashMap
;
import
java.util.Map
;
import
smart.framework.util.StringUtil
;
import
smart.generator.CodeGenerator
;
import
smart.generator.command.Command
;
public
class
CreateServiceCommand
extends
Command
{
private
String
appPath
;
private
String
serviceName
;
@Override
public
int
getParamsLength
()
{
return
2
;
}
@Override
public
void
initVariables
(
String
...
params
)
{
appPath
=
params
[
0
];
serviceName
=
params
[
1
];
}
@Override
public
void
generateFiles
()
{
String
appPackage
=
getAppPackage
(
appPath
);
String
packageName
=
appPackage
.
replace
(
'.'
,
'/'
);
String
serviceNamePascal
=
StringUtil
.
toPascalStyle
(
serviceName
,
"-"
);
Map
<
String
,
Object
>
dataMap
=
new
HashMap
<
String
,
Object
>();
dataMap
.
put
(
"app_package"
,
appPackage
);
dataMap
.
put
(
"service_name_p"
,
serviceNamePascal
);
generateServiceInterface
(
packageName
,
serviceNamePascal
,
dataMap
);
generateServiceImplement
(
packageName
,
serviceNamePascal
,
dataMap
);
}
private
void
generateServiceInterface
(
String
packageName
,
String
serviceNamePascal
,
Map
<
String
,
Object
>
dataMap
)
{
String
vmPath
=
"create-service/service_java.vm"
;
String
filePath
=
appPath
+
"/src/main/java/"
+
packageName
+
"/service/"
+
serviceNamePascal
+
"Service.java"
;
CodeGenerator
.
generateCode
(
vmPath
,
dataMap
,
filePath
);
}
private
void
generateServiceImplement
(
String
packageName
,
String
serviceNamePascal
,
Map
<
String
,
Object
>
dataMap
)
{
String
vmPath
=
"create-service/service_impl_java.vm"
;
String
filePath
=
appPath
+
"/src/main/java/"
+
packageName
+
"/service/impl/"
+
serviceNamePascal
+
"ServiceImpl.java"
;
CodeGenerator
.
generateCode
(
vmPath
,
dataMap
,
filePath
);
}
}
src/main/java/
com/
smart/generator/command/impl/LoadDictCommand.java
→
src/main/java/smart/generator/command/impl/LoadDictCommand.java
浏览文件 @
92c8c60f
package
com.smart.generator.command.impl
;
import
com.smart.framework.util.StringUtil
;
import
com.smart.generator.bean.Column
;
import
com.smart.generator.bean.Table
;
import
com.smart.generator.builder.Builder
;
import
com.smart.generator.builder.impl.EntityBuilder
;
import
com.smart.generator.builder.impl.SQLBuilder
;
import
com.smart.generator.command.Command
;
import
j
ava.io.File
;
import
j
ava.io.IOException
;
import
java.util.ArrayList
;
import
java.util.LinkedHashMap
;
import
java.util.List
;
import
java.util.Map
;
import
jxl.Sheet
;
import
jxl.Workbook
;
import
jxl.read.biff.BiffException
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
public
class
LoadDictCommand
extends
Command
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
LoadDictCommand
.
class
);
private
String
appPath
;
private
String
dictPath
;
@Override
public
int
getParamsLength
()
{
return
2
;
}
@Override
public
void
initVariables
(
String
...
params
)
{
appPath
=
params
[
0
];
dictPath
=
params
[
1
];
}
@Override
public
void
generateFiles
()
{
String
appName
=
getAppName
(
appPath
);
String
appPackage
=
getAppPackage
(
appPath
);
Map
<
Table
,
List
<
Column
>>
tableMap
=
createTableMap
(
dictPath
);
generateSQL
(
tableMap
,
appName
);
generateEntity
(
tableMap
,
appPackage
);
}
private
void
generateSQL
(
Map
<
Table
,
List
<
Column
>>
tableMap
,
String
appName
)
{
String
outputPath
=
appPath
+
"/doc"
;
Builder
sqlBuilder
=
new
SQLBuilder
(
outputPath
,
tableMap
,
appName
);
sqlBuilder
.
build
();
}
private
void
generateEntity
(
Map
<
Table
,
List
<
Column
>>
tableMap
,
String
appPackage
)
{
String
outputPath
=
appPath
+
"/src/main/java/"
+
appPackage
.
replace
(
'.'
,
'/'
)
+
"/entity"
;
String
packageName
=
appPackage
+
".entity"
;
Builder
entityBuilder
=
new
EntityBuilder
(
outputPath
,
tableMap
,
packageName
);
entityBuilder
.
build
();
}
private
Map
<
Table
,
List
<
Column
>>
createTableMap
(
String
inputPath
)
{
Map
<
Table
,
List
<
Column
>>
tableMap
=
new
LinkedHashMap
<
Table
,
List
<
Column
>>();
Workbook
workbook
=
null
;
try
{
workbook
=
Workbook
.
getWorkbook
(
new
File
(
inputPath
));
handleWorkbook
(
workbook
,
tableMap
);
}
catch
(
IOException
e
)
{
logger
.
error
(
"读取 Excel 出错!"
,
e
);
throw
new
RuntimeException
(
e
);
}
catch
(
BiffException
e
)
{
logger
.
error
(
"解析 Excel 出错!"
,
e
);
throw
new
RuntimeException
(
e
);
}
finally
{
if
(
workbook
!=
null
)
{
workbook
.
close
();
}
}
return
tableMap
;
}
private
void
handleWorkbook
(
Workbook
workbook
,
Map
<
Table
,
List
<
Column
>>
tableMap
)
{
for
(
int
i
=
1
;
i
<
workbook
.
getNumberOfSheets
();
i
++)
{
Sheet
sheet
=
workbook
.
getSheet
(
i
);
handleSheet
(
sheet
,
tableMap
);
}
}
private
void
handleSheet
(
Sheet
sheet
,
Map
<
Table
,
List
<
Column
>>
tableMap
)
{
String
tableName
=
sheet
.
getName
().
toLowerCase
();
String
tablePK
=
""
;
List
<
Column
>
columnList
=
new
ArrayList
<
Column
>();
for
(
int
row
=
1
;
row
<
sheet
.
getRows
();
row
++)
{
String
name
=
getData
(
sheet
,
0
,
row
);
String
type
=
getData
(
sheet
,
1
,
row
);
String
length
=
getData
(
sheet
,
2
,
row
);
String
precision
=
getData
(
sheet
,
3
,
row
);
String
notnull
=
getData
(
sheet
,
4
,
row
);
String
pk
=
getData
(
sheet
,
5
,
row
);
String
comment
=
getData
(
sheet
,
6
,
row
);
columnList
.
add
(
new
Column
(
name
,
type
,
length
,
precision
,
notnull
,
pk
,
comment
));
if
(
StringUtil
.
isNotEmpty
(
pk
))
{
tablePK
=
name
;
}
}
tableMap
.
put
(
new
Table
(
tableName
,
tablePK
),
columnList
);
}
private
String
getData
(
Sheet
sheet
,
int
column
,
int
row
)
{
return
sheet
.
getCell
(
column
,
row
).
getContents
().
trim
();
}
}
package
smart.generator.command.impl
;
import
java.io.File
;
import
java.io.IOException
;
import
java.util.ArrayList
;
import
java.util.LinkedHashMap
;
import
java.util.List
;
import
java.util.Map
;
import
jxl.Sheet
;
import
j
xl.Workbook
;
import
j
xl.read.biff.BiffException
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
smart.framework.util.StringUtil
;
import
smart.generator.bean.Column
;
import
smart.generator.bean.Table
;
import
smart.generator.builder.Builder
;
import
smart.generator.builder.impl.EntityBuilder
;
import
smart.generator.builder.impl.SQLBuilder
;
import
smart.generator.command.Command
;
public
class
LoadDictCommand
extends
Command
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
LoadDictCommand
.
class
);
private
String
appPath
;
private
String
dictPath
;
@Override
public
int
getParamsLength
()
{
return
2
;
}
@Override
public
void
initVariables
(
String
...
params
)
{
appPath
=
params
[
0
];
dictPath
=
params
[
1
];
}
@Override
public
void
generateFiles
()
{
String
appName
=
getAppName
(
appPath
);
String
appPackage
=
getAppPackage
(
appPath
);
Map
<
Table
,
List
<
Column
>>
tableMap
=
createTableMap
(
dictPath
);
generateSQL
(
tableMap
,
appName
);
generateEntity
(
tableMap
,
appPackage
);
}
private
void
generateSQL
(
Map
<
Table
,
List
<
Column
>>
tableMap
,
String
appName
)
{
String
outputPath
=
appPath
+
"/doc"
;
Builder
sqlBuilder
=
new
SQLBuilder
(
outputPath
,
tableMap
,
appName
);
sqlBuilder
.
build
();
}
private
void
generateEntity
(
Map
<
Table
,
List
<
Column
>>
tableMap
,
String
appPackage
)
{
String
outputPath
=
appPath
+
"/src/main/java/"
+
appPackage
.
replace
(
'.'
,
'/'
)
+
"/entity"
;
String
packageName
=
appPackage
+
".entity"
;
Builder
entityBuilder
=
new
EntityBuilder
(
outputPath
,
tableMap
,
packageName
);
entityBuilder
.
build
();
}
private
Map
<
Table
,
List
<
Column
>>
createTableMap
(
String
inputPath
)
{
Map
<
Table
,
List
<
Column
>>
tableMap
=
new
LinkedHashMap
<
Table
,
List
<
Column
>>();
Workbook
workbook
=
null
;
try
{
workbook
=
Workbook
.
getWorkbook
(
new
File
(
inputPath
));
handleWorkbook
(
workbook
,
tableMap
);
}
catch
(
IOException
e
)
{
logger
.
error
(
"读取 Excel 出错!"
,
e
);
throw
new
RuntimeException
(
e
);
}
catch
(
BiffException
e
)
{
logger
.
error
(
"解析 Excel 出错!"
,
e
);
throw
new
RuntimeException
(
e
);
}
finally
{
if
(
workbook
!=
null
)
{
workbook
.
close
();
}
}
return
tableMap
;
}
private
void
handleWorkbook
(
Workbook
workbook
,
Map
<
Table
,
List
<
Column
>>
tableMap
)
{
for
(
int
i
=
1
;
i
<
workbook
.
getNumberOfSheets
();
i
++)
{
Sheet
sheet
=
workbook
.
getSheet
(
i
);
handleSheet
(
sheet
,
tableMap
);
}
}
private
void
handleSheet
(
Sheet
sheet
,
Map
<
Table
,
List
<
Column
>>
tableMap
)
{
String
tableName
=
sheet
.
getName
().
toLowerCase
();
String
tablePK
=
""
;
List
<
Column
>
columnList
=
new
ArrayList
<
Column
>();
for
(
int
row
=
1
;
row
<
sheet
.
getRows
();
row
++)
{
String
name
=
getData
(
sheet
,
0
,
row
);
String
type
=
getData
(
sheet
,
1
,
row
);
String
length
=
getData
(
sheet
,
2
,
row
);
String
precision
=
getData
(
sheet
,
3
,
row
);
String
notnull
=
getData
(
sheet
,
4
,
row
);
String
pk
=
getData
(
sheet
,
5
,
row
);
String
comment
=
getData
(
sheet
,
6
,
row
);
columnList
.
add
(
new
Column
(
name
,
type
,
length
,
precision
,
notnull
,
pk
,
comment
));
if
(
StringUtil
.
isNotEmpty
(
pk
))
{
tablePK
=
name
;
}
}
tableMap
.
put
(
new
Table
(
tableName
,
tablePK
),
columnList
);
}
private
String
getData
(
Sheet
sheet
,
int
column
,
int
row
)
{
return
sheet
.
getCell
(
column
,
row
).
getContents
().
trim
();
}
}
src/main/resources/log4j.properties
浏览文件 @
92c8c60f
...
...
@@ -11,4 +11,4 @@ log4j.appender.file.encoding=UTF-8
log4j.appender.file.layout
=
org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern
=
%d{HH:mm:ss,SSS} %p %c (%L) - %m%n
log4j.logger.com.smart.generator
=
ERROR
\ No newline at end of file
log4j.logger.smart.generator
=
ERROR
\ No newline at end of file
src/test/java/
com/
smart/generator/test/CommandTest.java
→
src/test/java/smart/generator/test/CommandTest.java
浏览文件 @
92c8c60f
package
com.smart.generator.test
;
import
com.smart.framework.OrderedRunner
;
import
com.smart.framework.annotation.Order
;
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
;
import
com.smart.generator.command.impl.CreateEntityCommand
;
import
com.smart.generator.command.impl.CreatePageCommand
;
import
com.smart.generator.command.impl.CreateServiceCommand
;
import
com.smart.generator.command.impl.LoadDictCommand
;
package
smart.generator.test
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
smart.framework.OrderedRunner
;
import
smart.framework.annotation.Order
;
import
smart.generator.Invoker
;
import
smart.generator.command.impl.CreateActionCommand
;
import
smart.generator.command.impl.CreateAppCommand
;
import
smart.generator.command.impl.CreateCRUDCommand
;
import
smart.generator.command.impl.CreateEntityCommand
;
import
smart.generator.command.impl.CreatePageCommand
;
import
smart.generator.command.impl.CreateServiceCommand
;
import
smart.generator.command.impl.LoadDictCommand
;
@RunWith
(
OrderedRunner
.
class
)
public
class
CommandTest
{
...
...
@@ -25,8 +25,8 @@ public class CommandTest {
String
[]
params
=
{
"C:\\Smart"
,
// Current Path
"demo"
,
// App Name
"
com.
smart"
,
// App Group
"
com.
smart.demo"
// App Package = <App Group> + <App Artifact>
"smart"
,
// App Group
"smart.demo"
// App Package = <App Group> + <App Artifact>
};
boolean
result
=
invoker
.
execCommand
(
params
);
if
(!
result
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录