Mybatis Generator 1.4.0 通过java编码和xml文件配置
环境:mac idea mysql mybatis-generator1.4.0
一、通过 java 编码和 xml 配置文件运行generator======> targetRuntime="MyBatis3"
1、配置 xml 文件,把该文件夹放到 project 根目录下
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <generatorConfiguration> <!-- 数据库配置属性文件 --> <!-- <properties resource="com\kenny\mybatis\generator\dbconnection.properties"></properties>--> <!-- 数据库连接配置 --> <context id="simple" targetRuntime="MyBatis3"> <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver" connectionURL="" userId="" password=""/> <!-- --> <javaTypeResolver > <property name="forceBigDecimals" value="false" /> </javaTypeResolver> <!-- javaModelGenerator:指定javaBean的生成策略 targetPackage="test.model":目标包名 targetProject="\MBGTestProject\src":目标工程 --> <javaModelGenerator targetPackage="com.kenny.mybatis.vo" targetProject="./src"> <property name="enableSubPackages" value="true" /> <property name="trimStrings" value="true" /> </javaModelGenerator> <!-- sqlMapGenerator:sql映射生成策略: --> <sqlMapGenerator targetPackage="kenny.mapper" targetProject="./mapper"> <property name="enableSubPackages" value="true" /> </sqlMapGenerator> <!-- javaClientGenerator:指定mapper接口所在的位置 --> <javaClientGenerator type="XMLMAPPER" targetPackage="com.kenny.mybatis.dao" targetProject="./src"> <property name="enableSubPackages" value="true" /> </javaClientGenerator> <!-- 指定要逆向分析哪些表:根据表要创建javaBean --> <table tableName="tbl_dept" domainObjectName="Department"></table> <table tableName="tbl_employee" domainObjectName="Employee"></table> </context> </generatorConfiguration>
**注意:以上的配置文件中会生成PojoExample.java,并且生成方法,如果希望去掉,需要在 <table> 标签中增加以下属性
enableCountByExample="false" enableDeleteByExample="false" enableSelectByExample="false" enableUpdateByExample="false" selectByExampleQueryId="false"
2、targetPackage 属性的定义为生成的包,可以不用事先在项目中创建文件夹,在逆向工程时,会自动创建包
3、逆向工程的代码
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
import org.mybatis.generator.api.MyBatisGenerator; import org.mybatis.generator.config.Configuration; import org.mybatis.generator.config.xml.ConfigurationParser; import org.mybatis.generator.exception.InvalidConfigurationException; import org.mybatis.generator.exception.XMLParserException; import org.mybatis.generator.internal.DefaultShellCallback; import java.io.File; import java.io.IOException; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; @SuppressWarnings("ConstantConditions") public class MybatisGenerator { public static boolean generator() throws InterruptedException, SQLException, IOException { boolean result = false; List<String> warnings = new ArrayList<>(); // 如果已经存在生成过的文件是否进行覆盖 boolean overwrite = true; File configFile = new File("mbg.xml"); ConfigurationParser cp = new ConfigurationParser(warnings); Configuration config = null; try { config = cp.parseConfiguration(configFile); } catch (IOException e) { result = false; e.printStackTrace(); } catch (XMLParserException e) { result = false; e.printStackTrace(); } DefaultShellCallback callback = new DefaultShellCallback(overwrite); MyBatisGenerator generator = null; try { generator = new MyBatisGenerator(config, callback, warnings); } catch (InvalidConfigurationException e) { result = false; e.printStackTrace(); } generator.generate(null); return result; } }
4、需要的jar 包
二、通过 java 编码和 xml 配置文件运行generator======> targetRuntime="MyBatis3DynamicSql" 该设置为 default
1、需要引入新 jar 包:javax.annotation 和 dynamic-sql
<dependency> <groupId>javax.annotation</groupId> <artifactId>javax.annotation-api</artifactId> <version>1.3.2</version> </dependency> <dependency> <groupId>org.mybatis.dynamic-sql</groupId> <artifactId>mybatis-dynamic-sql</artifactId> <version>1.1.4</version> </dependency>
2、修改 xml 文件
1⃣️. javaClientGenerator 标签,采用 annotation模式
2⃣️.去掉配置文件中 sqlMapGenerator 标签,该标签在动态sql模式下不起作用
05年---11 年做了6年开发
从11年 转产品
20年春节心血来潮,重新捡起久违都代码