Mac OS 里使用MyBatisGenerator的注意点,看完最后一点,再复制代码
1、引入MBG以及MySQL的依赖,这段代码可能有毒,因为笔者的mysql版本是目前最新的,所以mysql依赖也比较新,大家复制代码的时候要注意下,根据自己的情况来:
<!-- mybatis-generator -->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.5</version>
</dependency>
<!--mysql-connector -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.12</version>
</dependency>
2、编写MybatisGenerator的配置文件mbg.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">
<!--生成的Java文件不要有注释信息-->
<commentGenerator>
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!--连接数据库 ?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC-->
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/book?useSSL=false"
userId="root"
password="rootroot">
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!--这里是实体生成,也就是java中的类,表示的是在targetProject所指这个目录下,建立targetPackage所指的包。-->
<javaModelGenerator targetPackage="com.zero.crud.entity" targetProject="/Users/mac/IdeaProjects/crud/src/main/java">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!--这里是mapper配置文件的生成。-->
<sqlMapGenerator targetPackage="mapper" targetProject="/Users/mac/IdeaProjects/crud/src/main/resources">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!--这里生成的是与mapper配置文件相对应的xxxMapper接口,xxxMapper是直接与数据库交互的。-->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.zero.crud.dao"
targetProject="/Users/mac/IdeaProjects/crud/src/main/java">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!--table标签对应数据库中的table表,tableName与数据库中的表名对应,domainObjectName表示你想生成的实体类的类名-->
<table tableName="book" domainObjectName="Book"
enableSelectByExample="false" enableDeleteByExample="false" enableCountByExample="false"
enableUpdateByExample="false"
>
<property name="useActualColumnNames" value="true"/>
</table>
</context>
</generatorConfiguration>
3、编写一个测试类,用Java代码来读取MyBatisGenerator的配置文件,这里就是用Java代码来读取mbg.xml文件,然后会自动在你所设置的文件路径里生成对应的Java文件。代码如下:
public class MyBatisGeneratorTest {
@Test
public void testMyBatisGenerator() throws IOException, XMLParserException, InvalidConfigurationException, SQLException, InterruptedException {
List<String> warnings = new ArrayList<String>();
boolean overwrite = true;
File configFile = new File("mbg.xml");
ConfigurationParser cp = new ConfigurationParser(warnings);
Configuration config = cp.parseConfiguration(configFile);
DefaultShellCallback callback = new DefaultShellCallback(overwrite);
MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
myBatisGenerator.generate(null);
}
}
这里重点是File configFile = new File("mbg.xml");
这句话,这个里是MyBatisGenerator的配置文件所在的路径位置。
4、针对Mac OS系统,在mbg.xml里面,
targetProject="/Users/mac/IdeaProjects/crud/src/main/java"
这句话后面的路径必须是绝对路径,不能是.\src\...\
这样的路径名称。
5、mysql的依赖版本与自己使用的mysql数据库的版本要对应的上,不然会报错,说:不能创建数据库。由于笔者刚买的新电脑,下载mysql是最新版本的,但是导入mysql依赖的时候,还有用5.X.X,6.X.X,这些都不行,大家在参考的时候,需要引入自己数据库对应的依赖版本!