本文最后更新于:2023年11月9日 晚上
通过Mybatis框架使用逆向工程(IDEA)
什么是逆向工程?
Mybatis提供了一个逆向工程工具,通过逆向工程,可以帮助程序员根据数据库中的表来生成实体类(JavaBean)、mapper映射文件、mapper接口。
1.导入所需Jar包(这里通过Maven方式,不使用Maven也网上下载后导入lib)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| <!--Mybatis逆向工程 注:导入Jar包需要在Maven配置文件(pom.xml)<dependencies>标签中--> <dependencies> <!--Mysql--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.6</version> </dependency> <!--Mybatis逆向工程--> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.5</version> </dependency> </dependencies>
<!-- mybatis逆向工程Maven插件 注:导入逆向工程插件Jar包需要在Maven配置文件(pom.xml)<<plugins>>标签中--> <plugins> <plugin> <!--Mybatis逆向工程Maven插件--> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.5</version> </plugin> </plugins>
|
2.创建逆向工程配置文件generatorConfig.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
| <?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> <!--指定数据库jdbc驱动jar包的位置--> <classPathEntry location="D:\Maven\jar\mysql\mysql-connector-java\5.1.6\mysql-connector-java-5.1.6.jar"/> <context id="table_test" targetRuntime="MyBatis3"> <commentGenerator> <!--suppressAllComments属性值: true:自动生成实体类、SQL映射文件时没有注释 true:自动生成实体类、SQL映射文件,并附有注释 --> <property name="suppressAllComments" value="true" /> </commentGenerator> <!-- 4个数据库连接信息 --> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/mysql" userId="root" password="password"> </jdbcConnection> <!--forceBigDecimals属性值: true:把数据表中的DECIMAL和NUMERIC类型, 解析为JAVA代码中的java.math.BigDecimal类型 false(默认):把数据表中的DECIMAL和NUMERIC类型, 解析为解析为JAVA代码中的Integer类型 --> <javaTypeResolver> <property name="forceBigDecimals" value="false" /> </javaTypeResolver> <!-- 生成实体类(JavaBean) targetProject属性值:实体类的生成位置 targetPackage属性值:实体类所在包的路径 --> <javaModelGenerator targetPackage="com.itheima.domain" targetProject=".\src\main\java"> <!-- trimStrings属性值: true:对数据库的查询结果进行trim操作 false(默认):不进行trim操作 --> <property name="trimStrings" value="true" /> </javaModelGenerator> <!-- 生成mapper映射配置文件 targetProject属性值:SQL映射文件的生成位置 targetPackage属性值:SQL映射文件所在包的路径 --> <sqlMapGenerator targetPackage="com.itheima.dao" targetProject=".\src\main\resources"> </sqlMapGenerator> <!-- 生成动态代理的接口 targetProject属性值:SQL映射文件的生成位置 targetPackage属性值:SQL映射文件所在包的路径 --> <javaClientGenerator type="XMLMAPPER" targetPackage="com.itheima.dao" targetProject=".\src\main\java"> </javaClientGenerator> <!-- 指定mysql中数据库表 --> <table tableName="user"> </table> <table tableName="account"> </table> </context> </generatorConfiguration>
|
3.接下来介绍执行逆向工程generatorConfig.xml配置文件的两种方式
创建Java类执行生成逆向工程文件直接运行(run)
1 2 3 4 5 6 7 8 9 10 11 12
| public class Generator { public static void main(String[] args) throws Exception { 此路径是IDEA中的相对路径(可以写绝对路径),指定配置文件路径 File f = new File("src\\main\\resources\\generatorConfig.xml"); List<String> warnings = new ArrayList<String>(); ConfigurationParser cp = new ConfigurationParser(warnings); Configuration config = cp.parseConfiguration(f); DefaultShellCallback callBack = new DefaultShellCallback(true); MyBatisGenerator generator = new MyBatisGenerator(config, callBack, warnings); generator.generate(null); } }
|
效果图(方法执行前后对比):
执行之前:
执行之后:
通过Maven方式 点击 : Run 》Edit Configurations…
命令:mybatis-generator:generate
可以看到使用Maven运行之后的结果和使用Java类运行是一样的
过去的事情可以不忘记,但一定要放下。