看一个框架看太多也不如直接操作来的实际,顺便在做的过程中记录一下,接下来谁碰到类似的问题可以快速解决,zheng的项目下面很多的模块,其实对于我来说,很多是用不到的,我删除了很多,留下的只是作为一个基本的参考,毕竟一个新手主要是学,言归正传
新建一个maven模块
<groupId>cn.ts</groupId>
<artifactId>test</artifactId>
建立对应的子模块
- 有一些子模块你是必须要建立的,可以参考zheng-demo建立,主要是为了使用代码生成快速的构建代码,毕竟手动效率相对来说比较低。
- test-dao pom
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>test</artifactId>
<groupId>cn.ts</groupId>
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>cn.ts</groupId>
<artifactId>test-dao</artifactId>
<version>1.0.0</version>
<name>test-dao</name>
<dependencies>
<dependency>
<groupId>com.zheng</groupId>
<artifactId>zheng-common</artifactId>
<version>1.0.0</version>
<type>jar</type>
</dependency>
</dependencies>
<build>
<finalName>test-dao</finalName>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>generatorConfig.xml</exclude>
</excludes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<dependencies>
<dependency>
<groupId>com.zheng</groupId>
<artifactId>zheng-common</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
<configuration>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<configuration>
<skipTests>true</skipTests>
<testFailureIgnore>true</testFailureIgnore>
</configuration>
</plugin>
</plugins>
</build>
</project>
- test-rpc-api pom
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>test</artifactId>
<groupId>cn.ts</groupId>
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>cn.ts</groupId>
<artifactId>test-rpc-api</artifactId>
<version>1.0.0</version>
</project>
- test-rpc-service pom
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>test</artifactId>
<groupId>cn.ts</groupId>
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>cn.ts</groupId>
<artifactId>test-rpc-service</artifactId>
<version>1.0.0</version>
</project>
4.代码
// 根据命名规范,只修改此常量值即可
/**
* 根据模板生成generatorConfig.xml文件
* @param jdbc_driver 驱动路径
* @param jdbc_url 链接
* @param jdbc_username 帐号
* @param jdbc_password 密码
* @param module 项目模块
* @param database 数据库
* @param table_prefix 表前缀
* @param package_name 包名
*/
private static String MODULE = "test"; //这个地方千万注意源代码里面写的什么东西,有个小点的东西不需要
private static String DATABASE = "zheng";
private static String TABLE_PREFIX = "t_"; //我新建的表名没有去用模块的名字作为前缀
private static String PACKAGE_NAME = "cn.ts.test";
private static String JDBC_DRIVER = PropertiesFileUtil.getInstance("generator").get("generator.jdbc.driver");
private static String JDBC_URL = PropertiesFileUtil.getInstance("generator").get("generator.jdbc.url");
private static String JDBC_USERNAME = PropertiesFileUtil.getInstance("generator").get("generator.jdbc.username");
private static String JDBC_PASSWORD = PropertiesFileUtil.getInstance("generator").get("generator.jdbc.password");
// 需要insert后返回主键的表配置,key:表名,value:主键名
private static Map<String, String> LAST_INSERT_ID_TABLES = new HashMap<>();
static {
//LAST_INSERT_ID_TABLES.put("upms_user", "user_id");//不需要的我就直接注释了
}
/**
* 自动代码生成
* @param args
*/
public static void main(String[] args) throws Exception {
MybatisGeneratorUtil.generator(JDBC_DRIVER, JDBC_URL, JDBC_USERNAME, JDBC_PASSWORD, MODULE, DATABASE, TABLE_PREFIX, PACKAGE_NAME, LAST_INSERT_ID_TABLES);
}
添加相关的package
三层的package都最好自己添加,不然在自动生成代码的时候会爆出缺少文件路径的问题
- test-dao
- 添加cn.ts.dao包,再继续在这个下面添加mapper和mdoel的package
- 复制粘贴别的模块的Generator.java和generator.properties
- java文件缺少的包,自己在dao的pom文件里面添加下面的依赖就ok了
<dependency>
<groupId>com.zheng</groupId>
<artifactId>zheng-common</artifactId>
<version>1.0.0</version>
<type>jar</type>
</dependency>
test-rpc-api
1.添加cn.ts.test.api的packagetest-rpc-service
- cn.ts.test.dao.mapper
- cn.ts.test.rpc.mapper
- cn.ts.test.rpc.service.impl
完成以上的操作基本上就可以用代码自动生成进行基础代码的构建,log打印结果如下:
========== 开始生成generatorConfig.xml文件 ==========
数据库连接成功
t_company
t_product
释放数据库连接
========== 结束生成generatorConfig.xml文件 ==========
========== 开始运行MybatisGenerator ==========
log4j:WARN No appenders could be found for logger (org.mybatis.generator.internal.db.DatabaseIntrospector).
log4j:WARN Please initialize the log4j system properly.
========== 结束运行MybatisGenerator ==========
========== 开始生成Service ==========
F:/work/zheng/test/test-rpc-api/src/main/java/cn/ts/test/rpc/api/TCompanyService.java
F:/work/zheng/test/test-rpc-api/src/main/java/cn/ts/test/rpc/api/TCompanyServiceMock.java
F:/work/zheng/test/test-rpc-service/src/main/java/cn/ts/test/rpc/service/impl/TCompanyServiceImpl.java
F:/work/zheng/test/test-rpc-api/src/main/java/cn/ts/test/rpc/api/TProductService.java
F:/work/zheng/test/test-rpc-api/src/main/java/cn/ts/test/rpc/api/TProductServiceMock.java
F:/work/zheng/test/test-rpc-service/src/main/java/cn/ts/test/rpc/service/impl/TProductServiceImpl.java
========== 结束生成Service ==========
========== 开始生成Controller ==========
========== 结束生成Controller ==========
当然,也可以把common的模块先建立起来,再在“test-dao”的模块中引用“test-common”的depedence,”test-common”中去引用“zheng-common”的depedence
附上一张结构图吧,不然说个XX
接下来就是参考zheng-umps的功能,也去试着写一个基本的crud的操作,配合提供的页面。当然,为什么swagger-ui用了,没在readme里面提到?为什么没配图?脑补吧。
原项目链接附上:
https://github.com/shuzheng/zheng