一、 MyBatis Generator介绍
- 是一个Mybatis和iBatis的代码生成器。通过MyBatis Generator可以根据数据库表生成相应的实体、sql映射文件、Dao等
与表结构匹配的Java POJO。这可能包括:
一个关于表主键的类(如果表有主键)
一个关于表非主键字段的类(BLOB字段除外)
一个包含表BLOB字段的类(如果表有BLOB字段)
一个支持动态查询、修改和删除的类
- MyBatis或iBATIS兼容的SQL映射XML文件。MBG为配置中指定的每个表的简单CRUD函数生成SQL,生成的SQL语句包括:
通过主键更新
通过动态where子句更新
通过主键删除
通过动态where子句删除
通过主键查询
通过动态where子句查询
通过动态where子句查询条数
- 在迭代开发过程中使用MyBatis Generator的注意事项:
如果存在与新生成的XML文件具有相同名称的现有文件,MBG将自动合并XML文件,合并时,MBG不会覆盖你在XML文件中添加的任何内容。你可以重复生成而不用担心丢失XML文件中你添加的内容,MBG只替换通过MBG生成的任何XML元素。
MBG不会合并Java文件,它可以覆盖现有文件或使用不同的唯一名称保存新生成的文件(文件名后加1、2、3等序号)。如果重复生成可以选择自动覆盖替换或手动合并更改。
二、 MyBatis Generator实现方式
mybatis-generator两种使用方式pom-plugin、main方法
1. 使用Maven plugin生成
(1) pom.xml
(2) src/main/resources/mybatis-generator.xml
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
connectionURL="jdbc:mysql://localhost:3306/mydb" userId="root" password="123456"/>
(3) 生成命令:(maven)或直接运行maven的generator插件
mybatis-generator:generate -f pom.xml
2. 使用main方法生成
(1) pom.xml
(2) MybatisGeneratorMain.java
public class MybatisGeneratorMain {
public static void main(String[] args) throws Exception {
List
ConfigurationParser cp = new ConfigurationParser(warnings);
Configuration config = cp.parseConfiguration(new File("app-logs-web/src/main/resources/mybatis-generator.xml"));
// Configuration config = cp.parseConfiguration(ClassLoader.getSystemResourceAsStream("mybatis-generator.xml"));
DefaultShellCallback callback = new DefaultShellCallback(true);
MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
myBatisGenerator.generate(null);
for (String warning : warnings) {
System.out.println(warning);
}
}
}
(3) mybatis-generator.xml
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
connectionURL="jdbc:mysql://localhost:3306/mydb" userId="root" password="123456">
(4) springboot启动类:AppLogApplication.java
@SpringBootApplication
@MapperScan("cn.app.dao")
public class AppLogApplication {
public static void main(String[] args) {
SpringApplication.run(AppLogsWebApplication.class, args);
}
}