文章目录
第一步:创建一个工具项目,方便日后重复使用
这里我创建一个名为MakeCode的工具Maven项目,这样我们在以后就可以重复使用了
为了方便演示,我再创建一个目标TestMybatisGennerator项目,就是我们想要生成代码的那个项目,并且建立两个对应的子包等待生成代码
xmljarMakeCode_11">第二步:操作pom.xml导入jar包操作我们的工具MakeCode项目
我们一共需要两个包,一个数据库连接驱动包,一个生成代码的工具包
xml"><!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core -->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.4.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.34</version>
</dependency>
xml_32">第三步:编写generatorConfig.xml
首先我们可以在根目录下面新建一个generatorConfig.xml文件
重点:如果你要生成的对应的是mysql数据库的话,那就只需要修改我下面标注的5个位置就可以了
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>
<context id="MysqlTables" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!--1.配置数据库信息-->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/MyShop"
userId="root"
password="123456">
</jdbcConnection>
<javaTypeResolver >
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!--2.配置你生成的pojo的存放位置,targetPackage包名称,targetProject:配置绝对路径一直到“java”目录就可以了-->
<javaModelGenerator targetPackage="com.myshop.pojo" targetProject="D:\IDEAproject\TestMybatisGennerator\src\main\java">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!--3.配置你的mapper接口存放位置,targetPackage包名称,targetProject:配置绝对路径一直到“java”目录就可以了-->
<sqlMapGenerator targetPackage="com.myshop.mapper" targetProject="D:\IDEAproject\TestMybatisGennerator\src\main\java">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<!--4.配置你的mapper接口对应的xml文件存放位置,targetPackage包名称,targetProject:配置绝对路径一直到“java”目录就可以了-->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.myshop.mapper" targetProject="D:\IDEAproject\TestMybatisGennerator\src\main\java">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<!--5.tableName:配置你要生成的表 domainObjectName:以及生成的pojo类的名称,还有你的主键id
useActualColumnNames:使用实际列名称,true:使用数据库的列名称 false:去掉下划线生成对应驼峰命名法的名字 -->
<table tableName="category" domainObjectName="Category" >
<property name="useActualColumnNames" value="true"/>
<generatedKey column="id" sqlStatement="mysql" identity="true" />
</table>
<table tableName="goods" domainObjectName="Goods" >
<property name="useActualColumnNames" value="false"/>
<generatedKey column="id" sqlStatement="mysql" identity="true" />
</table>
</context>
</generatorConfiguration>
java_89">第四步:编写MakeCode.java
我们可以看到所有的需要修改的地方就只有一个配置文件generatorConfig.xml的位置,这里我建议直接放到根目录,避免不要的麻烦。
java">package makecode;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class MakeCode {
public static void main(String[] args) {
try {
List<String> warnings = new ArrayList<String>();
boolean overwrite = true;
File configFile = new File("generatorConfig.xml");//建议放到根目录下面,或者使用绝对路径
ConfigurationParser cp = new ConfigurationParser(warnings);
Configuration config = null;
config = cp.parseConfiguration(configFile);
DefaultShellCallback callback = new DefaultShellCallback(overwrite);
MyBatisGenerator myBatisGenerator = null;
myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
myBatisGenerator.generate(null);
System.out.println("生成完成-OK!");
} catch (Exception e) {
e.printStackTrace();
}
}
}
第五步:生成代码
运行上面的MakeCode.java就可以在目标项目看到已经生成完毕了
可能出现的问题
这里是我遇到的出现的一些问题
1.生成的pojo类的example类报错,这里和生成代码本身无关,只需要Alt+Enter生成对应的解决方法就好
2.生成的xml映射文件中dtd文件报红,这里只需要按照我下面的配置进行就可以解决
3.生成的mapper接口注解报红,是因为还没有配置mybatis的原因。配置mybatis了就好了
xml"><dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.2</version>
</dependency>
总结
因为mybatis自动生成代码在日常还是用的比较多的,所以直接就总结了一下,以便日后复用,这种方式相对使用命令行要来的简单一些,新手上手也比较友好,因为本身就是工具所以我也将MakeCode这个工具工程放到了
Github-MakeCode上面,如果大家需要可以直接下载使用,省去了新建项目的手续。
如果本文对你有帮助,请记得点个赞哦!
日月还长,加油后浪!