Intellij IDEA 2018.2 使用Mybatis逆向工程

逆向工程:
        mybatis需要程序员自己编写sql语句,mybatis官方提供逆向工程,可以针对单表自动生成mybatis执行所需要的代码(mapper.java、mapper.xml、pojo…),可以让程序员将更多的精力放在繁杂的业务逻辑上。

        企业实际开发中,常用的逆向工程方式:由数据库的表生成java代码。

        之所以强调单表两个字,是因为Mybatis逆向工程生成的Mapper所进行的操作都是针对单表的,也许你可能会觉得那这就有点鸡肋了,但是在大型项目中,很少有复杂的多表关联查询,所以作用还是很大的。

下载逆向工程:
链接:https://github.com/mybatis/generator/releases

下载后,工程中加入这两个包哦!

 

配置文件generatorConfig.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>
    <!--引入数据库配置文件-->
    <properties resource="database.properties"/>
    <context id="testTables" targetRuntime="MyBatis3">
        <commentGenerator>
            <!-- 是否去除自动生成的注释 true:是 : false:否 -->
            <property name="suppressAllComments" value="true" />
            <property name="suppressDate" value="true" />
        </commentGenerator>
        <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
        <jdbcConnection driverClass="${driver}"
                        connectionURL="${url}"
                        userId="${username}"
                        password="${password}">
        </jdbcConnection>


        <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和
            NUMERIC 类型解析为java.math.BigDecimal -->
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>

        <!-- targetProject:生成PO类的位置 -->
        <javaModelGenerator targetPackage="com.hlx.entity"
                            targetProject=".\src">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false" />
            <!-- 从数据库返回的值被清理前后的空格 -->
            <property name="trimStrings" value="true" />
        </javaModelGenerator>

        <!-- targetProject:mapper映射文件生成的位置 -->
        <sqlMapGenerator targetPackage="com.hlx.mapper"
                         targetProject=".\src">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false" />
        </sqlMapGenerator>


        <!-- targetPackage:mapper接口生成的位置 -->
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="com.hlx.mapper"
                             targetProject=".\src">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false" />
        </javaClientGenerator>

        <!-- 指定数据库表 -->
        <table tableName="userinfo"></table>
        <table tableName="users"></table>
        <table tableName="student"></table>

    </context>
</generatorConfiguration>

测试生成文件 必须是单元测试,才可以生成在src当前目录下子Model中;

main方法测试,只能在工程的src目录下

    @Test
    public  void main() {
        try {

            //集合对象
            List<String> warnings = new ArrayList<String>();

            // 是否写入
            boolean overwrite = true;

            // 指定逆向工程配置文件
            String file = "/generatorConfig.xml";
            File configFile = new File(TestGenerator.class.getResource(file).getFile());

            // 配置解析
            ConfigurationParser parser = new ConfigurationParser(warnings);

            // 配置文件
            Configuration con = parser.parseConfiguration(configFile);

            // 把project和package直接翻译成文件结构,如果某些文件夹不存在,则创建,另外对于重复存在的文件,默认实现也只能选择覆盖或者忽略;
            DefaultShellCallback dsc = new DefaultShellCallback(overwrite);

            //
            MyBatisGenerator my = new MyBatisGenerator(con, dsc, warnings);

            // 生成
            my.generate(null);
        } catch (Exception e) {
            e.printStackTrace();
        }


    }
}

Java工程结构:

其它的略

总结:

 

  • ExamplePrimarykey用来指定要 删除 / 更新 / 查询 的行。
  • 不加后缀、Selective后缀、WithBLOBs后缀用来限制要 删除 / 更新 / 查询 的列。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值