欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

Mybatis反向工程

时间:2023-07-08
前言

Mybatis也有反向工程,用于通过数据库表生成对应的Mapper接口和mapper.xml文件,与Mybatis-plus的代码生成器不同的是,其主要生成的代码在mapper.xml文件中,包含了表的动态增删改查操作。如果不用Mybatis-plus的话用Mybatis反向工程可以生成更为标准的mapper文件。

导入依赖

org.mybatis.generator mybatis-generator-core test

由于我们的generator不应打包部署到对应的应用中,所以我们定义scope为test。

编写配置DBGenerator.xml文件

<?xml version="1.0" encoding="UTF-8" ?>]>

:其实就是xml的语法定义,类似于java中定义一个变量。这里的变量名是driverClass,值为com.mysql.cj.jdbc.Driver

commentGenerator 标签中的MyCommentGenerator是我们自定义的生成的类的注释等的配置,可以不用配置,不配置默认使用的是DefaultCommentGenerator。我们自定义配置的话可以继承DefaultCommentGenerator修改我们想要修改的内容。

table标签详解 属性说明schema& catalog数据库的schema,mysql这里需要设置tableName数据库表名domainObjectName生成的JavaBean类名enable****ByExample是否生成对应的Example操作类,我们的示例全部禁止了

子标签的定义代码中有注释,这里不作说明了。

编写生成代码GeneratorUtil

package com.yyoo.generator;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.IOException;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;public abstract class GeneratorUtil { public static void generator(){ generator("generator.xml"); } public static void generator(String configFile){ try { List warnings = new ArrayList(); boolean overwrite = true; ConfigurationParser cp = new ConfigurationParser(warnings); Configuration config = cp.parseConfiguration(GeneratorUtil.class.getClassLoader().getResourceAsStream(configFile)); DefaultShellCallback callback = new DefaultShellCallback(overwrite); MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); myBatisGenerator.generate(null); } catch (IOException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } catch (InvalidConfigurationException e) { e.printStackTrace(); } catch (XMLParserException e) { e.printStackTrace(); } }}

测试代码

package com.yyoo.generator;import org.junit.Test;public class Main { @Test public void generator(){ GeneratorUtil.generator("DBGenerator.xml"); }}

本文只是提供一个Mybatis的反向工程的参考代码。内容写得并不详细,这里推荐还是使用Mybatis-plus以及其对应的代码生成器。因为确实简单方便实用。

上一篇:Mybatis-plus进阶之代码生成器
下一篇:待续

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。