Mybatis Generator
- 使用xml配置文件形式自动生成
- 只生成实体类、mapper接口及mapper.xml。并且包含丰富的内容
- 首先添加mybatis依赖和相关插件
<!-- 依赖MyBatis核心包 -->
<dependencies>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.7</version>
</dependency>
</dependencies>
<!-- 控制Maven在构建过程中相关配置 -->
<build>
<!-- 构建过程中用到的插件 -->
<plugins>
<!-- 具体插件,逆向工程的操作是以构建过程中插件形式出现的 -->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.0</version>
<!-- 插件的依赖 -->
<dependencies>
<!-- 逆向工程的核心依赖 -->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.2</version>
</dependency>
<!-- 数据库连接池 -->
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.2</version>
</dependency>
<!-- MySQL驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.8</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
- 创建generatorConfig.xml配置文件,从官网中复制下来即可.其中元素标签说明卸载注释中
<?xml version=\"1.0\" encoding=\"UTF-8\" ?>
<!DOCTYPE generatorConfiguration
PUBLIC \"-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN\"
\"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd\">
<generatorConfiguration>
<!--
targetRuntime: 执行生成的逆向工程的版本
MyBatis3Simple:生成基本的CURD(清新简洁版)
MyBatis3:生成带条件的CURD(奢华尊享版)
-->
<context id=\"DB2Tables\" targetRuntime=\"MyBatis3\">
<!-- 数据库连接信息 -->
<jdbcConnection driverClass=\"com.mysql.jdbc.Driver\"
connectionURL=\"jdbc:mysql:///your_database?useUnicode=true&characterEncoding=utf8\"
userId=\"username\"
password=\"password\" />
<!-- javaBean的生成策略 -->
<javaModelGenerator targetPackage=\"module_name.entity\" targetProject=\".\\src\\main\\java\">
<property name=\"enableSubPackages\" value=\"true\" />
<property name=\"trimStrings\" value=\"true\" />
</javaModelGenerator>
<!-- SQL映射文件的生成策略 -->
<sqlMapGenerator targetPackage=\"mapper\" targetProject=\".\\src\\main\\resources\">
<property name=\"enableSubPackages\" value=\"true\" />
</sqlMapGenerator>
<!-- Mapper接口的生成策略 -->
<javaClientGenerator type=\"XMLMAPPER\" targetPackage=\"module_name.mapper\" targetProject=\".\\src\\main\\java\">
<property name=\"enableSubPackages\" value=\"true\" />
</javaClientGenerator>
<!-- 逆向分析的表 -->
<!-- tableName设置为*号,可以对应所有的表,此时不用写domainObjectName -->
<!-- domainObjectName属性指定生成出来的实体类的类名 -->
<table tableName=\"admin\" domainObjectName=\"Admin\" />
</context>
</generatorConfiguration>
- 最后在右边点击maven中插件,双击mybatis-generator:generate
- 说明:上述两个配置文件都会报红,不用管尽管运行即可
MybatisPlus Generator
- 使用代码形式自动生成
- 会生成从Controller层到Dao层的所有文件,其中还包括实体类
- 首先添加必须的依赖
<dependencies>
<!--mybatis-plus 持久层-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.0.5</version>
</dependency>
<!-- velocity 模板引擎, Mybatis Plus 代码生成器需要 -->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.0</version>
</dependency>
<!--lombok用来简化实体类:需要安装lombok插件-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.20</version>
</dependency>
</dependencies>
- 这里是在单元测试中运行
public class GeneratorTest{
@Test
public void run() {
// 1、创建代码生成器
AutoGenerator mpg = new AutoGenerator();
// 2、全局配置
GlobalConfig gc = new GlobalConfig();
String projectPath = System.getProperty(\"user.dir\");
// 换成绝对路径
gc.setOutputDir(\"your project absolute path\" + \"/src/main/java\");
gc.setAuthor(\"xsha_h\");
gc.setOpen(false); //生成后是否打开资源管理器
gc.setFileOverride(false); //重新生成时文件是否覆盖
gc.setServiceName(\"%sService\"); //去掉Service接口的首字母I
gc.setIdType(IdType.ID_WORKER_STR); //主键策略
gc.setDateType(DateType.ONLY_DATE);//定义生成的实体类中日期类型
gc.setSwagger2(true);//开启Swagger2模式
mpg.setGlobalConfig(gc);
// 3、数据源配置
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl(\"jdbc:mysql:///database_name?serviceTimezone=GMT%2B8\");
dsc.setDriverName(\"com.mysql.cj.jdbc.Driver\");
dsc.setUsername(\"username\");
dsc.setPassword(\"password\");
dsc.setDbType(DbType.MYSQL);
mpg.setDataSource(dsc);
// 4、包配置
PackageConfig pc = new PackageConfig();
// 包名 com.xsha.module_name
pc.setParent(\"com.xsha\");
pc.setModuleName(\"module_name\"); //模块名
pc.setController(\"controller\");
pc.setEntity(\"entity\");
pc.setService(\"service\");
pc.setMapper(\"mapper\");
mpg.setPackageInfo(pc);
// 5、策略配置
StrategyConfig strategy = new StrategyConfig();
// 生成表格名称对应的实体类
strategy.setInclude(\"table_name1\", \"table_name2\", \"table_name3\", \"table_name4\");
strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略
strategy.setTablePrefix(pc.getModuleName() + \"_\"); //生成实体时去掉表前缀(根据需求变化)
strategy.setColumnNaming(NamingStrategy.underline_to_camel);//数据库表字段映射到实体的命名策略
strategy.setEntityLombokModel(true); // lombok 模型 @Accessors(chain = true) setter链式操作
strategy.setRestControllerStyle(true); //restful api风格控制器
strategy.setControllerMappingHyphenStyle(true); //url中驼峰转连字符
mpg.setStrategy(strategy);
// 6、执行
mpg.execute();
}
}
- 运行即可生效
来源:https://www.cnblogs.com/aitiknowledge/p/16504775.html
本站部分图文来源于网络,如有侵权请联系删除。