Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
D
datax-cloud
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
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
黄营
datax-cloud
Commits
60477a04
Commit
60477a04
authored
Dec 09, 2019
by
yuwei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
项目初始化
parent
ab2a8f3a
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
310 additions
and
10 deletions
+310
-10
datax-auth-dev.yml
datax-config/src/main/resources/config/datax-auth-dev.yml
+1
-1
datax-service-email-dev.yml
...fig/src/main/resources/config/datax-service-email-dev.yml
+1
-1
datax-service-file-dev.yml
...nfig/src/main/resources/config/datax-service-file-dev.yml
+1
-1
datax-service-system-dev.yml
...ig/src/main/resources/config/datax-service-system-dev.yml
+1
-1
datax-service-system-prod.yml
...g/src/main/resources/config/datax-service-system-prod.yml
+1
-1
pom.xml
datax-tools/datax-tool-codegen/pom.xml
+5
-1
VelocityTemplateEngine.java
.../cn/datax/tool/codegen/engine/VelocityTemplateEngine.java
+119
-0
Generate.java
...n/src/main/java/cn/datax/tool/codegen/utils/Generate.java
+181
-4
No files found.
datax-config/src/main/resources/config/datax-auth-dev.yml
View file @
60477a04
...
...
@@ -42,6 +42,6 @@ spring:
datasource
:
mysql
:
driver-class-name
:
com.mysql.cj.jdbc.Driver
url
:
jdbc:mysql://127.0.0.1:3306/data_cloud?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
url
:
jdbc:mysql://127.0.0.1:3306/data_cloud?useUnicode=true&characterEncoding=utf
-
8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username
:
root
password
:
1234@abcd
datax-config/src/main/resources/config/datax-service-email-dev.yml
View file @
60477a04
...
...
@@ -30,7 +30,7 @@ spring:
datasource
:
mysql
:
driver-class-name
:
com.p6spy.engine.spy.P6SpyDriver
url
:
jdbc:p6spy:mysql://127.0.0.1:3306/data_cloud?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
url
:
jdbc:p6spy:mysql://127.0.0.1:3306/data_cloud?useUnicode=true&characterEncoding=utf
-
8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username
:
root
password
:
1234@abcd
...
...
datax-config/src/main/resources/config/datax-service-file-dev.yml
View file @
60477a04
...
...
@@ -30,7 +30,7 @@ spring:
datasource
:
mysql
:
driver-class-name
:
com.p6spy.engine.spy.P6SpyDriver
url
:
jdbc:p6spy:mysql://127.0.0.1:3306/data_cloud?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
url
:
jdbc:p6spy:mysql://127.0.0.1:3306/data_cloud?useUnicode=true&characterEncoding=utf
-
8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username
:
root
password
:
1234@abcd
...
...
datax-config/src/main/resources/config/datax-service-system-dev.yml
View file @
60477a04
...
...
@@ -42,7 +42,7 @@ spring:
datasource
:
mysql
:
driver-class-name
:
com.p6spy.engine.spy.P6SpyDriver
url
:
jdbc:p6spy:mysql://127.0.0.1:3306/data_cloud?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
url
:
jdbc:p6spy:mysql://127.0.0.1:3306/data_cloud?useUnicode=true&characterEncoding=utf
-
8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username
:
root
password
:
1234@abcd
...
...
datax-config/src/main/resources/config/datax-service-system-prod.yml
View file @
60477a04
...
...
@@ -42,7 +42,7 @@ spring:
datasource
:
mysql
:
driver-class-name
:
com.mysql.cj.jdbc.Driver
url
:
jdbc:mysql://127.0.0.1:3306/data_cloud?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
url
:
jdbc:mysql://127.0.0.1:3306/data_cloud?useUnicode=true&characterEncoding=utf
-
8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username
:
root
password
:
1234@abcd
...
...
datax-tools/datax-tool-codegen/pom.xml
View file @
60477a04
...
...
@@ -25,7 +25,11 @@
<dependency>
<groupId>
mysql
</groupId>
<artifactId>
mysql-connector-java
</artifactId>
<version>
5.1.48
</version>
</dependency>
<dependency>
<groupId>
cn.datax
</groupId>
<artifactId>
datax-common-core
</artifactId>
<version>
${app.version}
</version>
</dependency>
</dependencies>
...
...
datax-tools/datax-tool-codegen/src/main/java/cn/datax/tool/codegen/engine/VelocityTemplateEngine.java
0 → 100644
View file @
60477a04
package
cn
.
datax
.
tool
.
codegen
.
engine
;
import
cn.hutool.core.util.StrUtil
;
import
com.baomidou.mybatisplus.core.toolkit.StringUtils
;
import
com.baomidou.mybatisplus.generator.config.ConstVal
;
import
com.baomidou.mybatisplus.generator.config.builder.ConfigBuilder
;
import
com.baomidou.mybatisplus.generator.engine.AbstractTemplateEngine
;
import
com.netflix.discovery.util.StringUtil
;
import
org.apache.velocity.Template
;
import
org.apache.velocity.VelocityContext
;
import
org.apache.velocity.app.VelocityEngine
;
import
java.io.BufferedWriter
;
import
java.io.FileOutputStream
;
import
java.io.OutputStreamWriter
;
import
java.util.Map
;
import
java.util.Properties
;
public
class
VelocityTemplateEngine
extends
AbstractTemplateEngine
{
private
static
final
String
DOT_VM
=
".vm"
;
private
VelocityEngine
velocityEngine
;
public
VelocityTemplateEngine
()
{
}
public
VelocityTemplateEngine
init
(
ConfigBuilder
configBuilder
)
{
super
.
init
(
configBuilder
);
if
(
null
==
this
.
velocityEngine
)
{
Properties
p
=
new
Properties
();
p
.
setProperty
(
"file.resource.loader.class"
,
"org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader"
);
p
.
setProperty
(
"file.resource.loader.path"
,
""
);
p
.
setProperty
(
"UTF-8"
,
ConstVal
.
UTF8
);
p
.
setProperty
(
"input.encoding"
,
ConstVal
.
UTF8
);
p
.
setProperty
(
"file.resource.loader.unicode"
,
"true"
);
this
.
velocityEngine
=
new
VelocityEngine
(
p
);
}
return
this
;
}
public
void
writer
(
Map
<
String
,
Object
>
objectMap
,
String
templatePath
,
String
outputFile
)
throws
Exception
{
if
(!
StringUtils
.
isEmpty
(
templatePath
))
{
Template
template
=
this
.
velocityEngine
.
getTemplate
(
templatePath
,
ConstVal
.
UTF8
);
FileOutputStream
fos
=
new
FileOutputStream
(
outputFile
);
Throwable
var6
=
null
;
String
entity
=
objectMap
.
get
(
"entity"
).
toString
();
objectMap
.
put
(
"className"
,
entity
.
replace
(
"Entity"
,
""
));
objectMap
.
put
(
"classNameLower"
,
StrUtil
.
lowerFirst
(
entity
.
replace
(
"Entity"
,
""
)));
try
{
OutputStreamWriter
ow
=
new
OutputStreamWriter
(
fos
,
ConstVal
.
UTF8
);
Throwable
var8
=
null
;
try
{
BufferedWriter
writer
=
new
BufferedWriter
(
ow
);
Throwable
var10
=
null
;
try
{
template
.
merge
(
new
VelocityContext
(
objectMap
),
writer
);
}
catch
(
Throwable
var54
)
{
var10
=
var54
;
throw
var54
;
}
finally
{
if
(
writer
!=
null
)
{
if
(
var10
!=
null
)
{
try
{
writer
.
close
();
}
catch
(
Throwable
var53
)
{
var10
.
addSuppressed
(
var53
);
}
}
else
{
writer
.
close
();
}
}
}
}
catch
(
Throwable
var56
)
{
var8
=
var56
;
throw
var56
;
}
finally
{
if
(
ow
!=
null
)
{
if
(
var8
!=
null
)
{
try
{
ow
.
close
();
}
catch
(
Throwable
var52
)
{
var8
.
addSuppressed
(
var52
);
}
}
else
{
ow
.
close
();
}
}
}
}
catch
(
Throwable
var58
)
{
var6
=
var58
;
throw
var58
;
}
finally
{
if
(
fos
!=
null
)
{
if
(
var6
!=
null
)
{
try
{
fos
.
close
();
}
catch
(
Throwable
var51
)
{
var6
.
addSuppressed
(
var51
);
}
}
else
{
fos
.
close
();
}
}
}
logger
.
debug
(
"模板:"
+
templatePath
+
"; 文件:"
+
outputFile
);
}
}
public
String
templateFilePath
(
String
filePath
)
{
return
null
!=
filePath
&&
!
filePath
.
contains
(
".vm"
)
?
filePath
+
".vm"
:
filePath
;
}
}
datax-tools/datax-tool-codegen/src/main/java/cn/datax/tool/codegen/utils/
CodeGenerator
.java
→
datax-tools/datax-tool-codegen/src/main/java/cn/datax/tool/codegen/utils/
Generate
.java
View file @
60477a04
package
cn
.
datax
.
tool
.
codegen
.
utils
;
import
cn.datax.tool.codegen.engine.VelocityTemplateEngine
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.core.toolkit.StringPool
;
import
com.baomidou.mybatisplus.generator.AutoGenerator
;
...
...
@@ -7,12 +8,13 @@ import com.baomidou.mybatisplus.generator.InjectionConfig;
import
com.baomidou.mybatisplus.generator.config.*
;
import
com.baomidou.mybatisplus.generator.config.po.TableInfo
;
import
com.baomidou.mybatisplus.generator.config.rules.NamingStrategy
;
import
com.baomidou.mybatisplus.generator.engine.VelocityTemplateEngine
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
public
class
CodeGenerator
{
public
class
Generate
{
public
static
void
main
(
String
[]
args
)
{
// 代码生成器
...
...
@@ -64,7 +66,6 @@ public class CodeGenerator {
InjectionConfig
cfg
=
new
InjectionConfig
()
{
@Override
public
void
initMap
()
{
// to do nothing
}
};
...
...
@@ -122,11 +123,187 @@ public class CodeGenerator {
strategy
.
setControllerMappingHyphenStyle
(
true
);
strategy
.
setTablePrefix
(
"sys_"
);
// strategy.setInclude(new String[]{"sys_user", "sys_role", "sys_dept", "sys_menu", "sys_post", "sys_user_role", "sys_user_dept", "sys_user_post", "sys_role_menu"});
strategy
.
setInclude
(
new
String
[]{
"sys_
role_dept
"
});
strategy
.
setInclude
(
new
String
[]{
"sys_
user
"
});
mpg
.
setStrategy
(
strategy
);
mpg
.
setTemplateEngine
(
new
VelocityTemplateEngine
());
mpg
.
execute
();
}
/**
* 根据表自动生成
*
* @param moduleName 模块名
* @param parentName 包名
* @param tableNames 表名
*/
private
void
generateByTables
(
String
moduleName
,
String
parentName
,
List
<
String
>
tableNames
)
{
//配置数据源
DataSourceConfig
dataSourceConfig
=
getDataSourceConfig
();
//全局变量配置
GlobalConfig
globalConfig
=
getGlobalConfig
();
//包名配置
PackageConfig
packageConfig
=
getPackageConfig
(
moduleName
,
parentName
);
// 策略配置
StrategyConfig
strategyConfig
=
getStrategyConfig
(
tableNames
);
//自定义配置
InjectionConfig
injectionConfig
=
getInjectionConfig
();
//配置模板
TemplateConfig
templateConfig
=
getTemplateConfig
();
//自动生成
atuoGenerator
(
dataSourceConfig
,
strategyConfig
,
globalConfig
,
packageConfig
,
injectionConfig
,
templateConfig
);
}
/**
* 集成
*
* @param dataSourceConfig 数据源配置
* @param strategyConfig 策略配置
* @param globalConfig 全局变量配置
* @param packageConfig 包名配置
* @param injectionConfig 自定义配置
* @param templateConfig 模板配置
*/
private
void
atuoGenerator
(
DataSourceConfig
dataSourceConfig
,
StrategyConfig
strategyConfig
,
GlobalConfig
globalConfig
,
PackageConfig
packageConfig
,
InjectionConfig
injectionConfig
,
TemplateConfig
templateConfig
)
{
new
AutoGenerator
()
.
setGlobalConfig
(
globalConfig
)
.
setDataSource
(
dataSourceConfig
)
.
setStrategy
(
strategyConfig
)
.
setPackageInfo
(
packageConfig
)
.
setCfg
(
injectionConfig
)
.
setTemplate
(
templateConfig
)
.
setTemplateEngine
(
new
VelocityTemplateEngine
())
.
execute
();
}
/**
* 自定义配置 可以在 VM 中使用 cfg.abc
*
* @return templateConfig
*/
private
InjectionConfig
getInjectionConfig
()
{
InjectionConfig
cfg
=
new
InjectionConfig
()
{
@Override
public
void
initMap
()
{
Map
<
String
,
Object
>
map
=
new
HashMap
<
String
,
Object
>();
map
.
put
(
"abc"
,
this
.
getConfig
().
getGlobalConfig
().
getAuthor
()
+
"-mp"
);
this
.
setMap
(
map
);
}
};
List
<
FileOutConfig
>
focList
=
new
ArrayList
<>();
focList
.
add
(
new
FileOutConfig
(
"/templates/mapper.xml.vm"
)
{
@Override
public
String
outputFile
(
TableInfo
tableInfo
)
{
return
System
.
getProperty
(
"user.home"
)
+
"/src/main/resources/mapper/"
+
tableInfo
.
getEntityName
()
+
"Mapper"
+
StringPool
.
DOT_XML
;
}
});
cfg
.
setFileOutConfigList
(
focList
);
return
cfg
;
}
/**
* 模板配置
*
* @return templateConfig
*/
private
TemplateConfig
getTemplateConfig
()
{
return
new
TemplateConfig
()
.
setEntity
(
"templates/entity.java"
)
.
setController
(
"templates/controller.java"
)
.
setService
(
"templates/service.java"
)
.
setServiceImpl
(
"templates/serviceImpl.java"
)
.
setMapper
(
"templates/mapper.java"
)
.
setXml
(
null
);
}
/**
* 设置包名
*
* @param moduleName 模块名 如:system
* @param parentName 父路径包名 如:cn.datax.service
* @return PackageConfig 包名配置
*/
private
PackageConfig
getPackageConfig
(
String
moduleName
,
String
parentName
)
{
return
new
PackageConfig
()
.
setModuleName
(
moduleName
)
.
setParent
(
parentName
)
.
setXml
(
"mapper"
)
.
setMapper
(
"dao"
)
.
setController
(
"controller"
)
.
setService
(
"service"
)
.
setServiceImpl
(
"service.impl"
)
.
setEntity
(
"entity"
);
}
/**
* 全局配置
*
* @return GlobalConfig
*/
private
GlobalConfig
getGlobalConfig
()
{
return
new
GlobalConfig
()
//是否打开输出目录
.
setOpen
(
false
)
//开启 baseColumnList
.
setBaseColumnList
(
true
)
//开启 BaseResultMap
.
setBaseResultMap
(
true
)
//开启 ActiveRecord 模式
.
setActiveRecord
(
false
)
//是否覆盖已有文件
.
setFileOverride
(
true
)
//实体属性 Swagger2 注解
.
setSwagger2
(
false
)
.
setAuthor
(
"yuwei"
)
//指定生成的主键的ID类型
.
setIdType
(
IdType
.
ID_WORKER_STR
)
//设置输出路径
.
setOutputDir
(
System
.
getProperty
(
"user.home"
)
+
"/src/main/java/"
)
.
setEntityName
(
"%sEntity"
)
.
setMapperName
(
"%sDao"
)
.
setXmlName
(
"%sMapper"
)
.
setServiceName
(
"%sService"
)
.
setServiceImplName
(
"%sServiceImpl"
)
.
setControllerName
(
"%sController"
);
}
/**
* 策略配置
*
* @param tableNames 表名
* @return StrategyConfig
*/
private
StrategyConfig
getStrategyConfig
(
List
<
String
>
tableNames
)
{
return
new
StrategyConfig
()
//从数据库表到文件的命名策略
.
setNaming
(
NamingStrategy
.
underline_to_camel
)
.
setColumnNaming
(
NamingStrategy
.
underline_to_camel
)
.
setSuperEntityClass
(
"cn.datax.common.base.BaseEntity"
)
//写于父类中的公共字段
.
setSuperEntityColumns
(
new
String
[]{
"id"
,
"create_time"
,
"create_by"
,
"update_time"
,
"update_by"
,
"status"
})
.
setEntityLombokModel
(
true
)
.
setRestControllerStyle
(
true
)
//公共父类
.
setSuperControllerClass
(
"cn.datax.common.base.BaseController"
)
.
setSuperServiceClass
(
"cn.datax.common.base.BaseService"
)
.
setSuperServiceImplClass
(
"cn.datax.common.base.BaseServiceImpl"
)
.
setSuperMapperClass
(
"cn.datax.common.base.BaseDao"
)
.
setControllerMappingHyphenStyle
(
true
)
.
setTablePrefix
(
"sys_"
)
.
setInclude
(
tableNames
.
toArray
(
new
String
[
tableNames
.
size
()]));
}
/**
* 配置数据源
*
* @return 数据源配置 DataSourceConfig
*/
private
DataSourceConfig
getDataSourceConfig
()
{
return
new
DataSourceConfig
()
.
setUrl
(
"jdbc:mysql://localhost:3306/data_cloud?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8"
)
.
setDriverName
(
"com.mysql.cj.jdbc.Driver"
)
.
setUsername
(
"root"
)
.
setPassword
(
"1234@abcd"
);
}
}
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