ibatis代码自动生成-ibatis使用者的福音来了

  近来公司由于历史原因使用ibatis,而市场上早就已经是mybatis的天下了,但是还有一小部分人在用ibatis,对这一小部分人来说使用ibatis是极其痛苦的,那么今天我们就来教大家如何自动生成ibatis代码,以及提供xml与java代码间的自动跳转等。

  ibatis是mybatis的前身,那么mybatis现在的插件Mybatis generator自然是支持代码生成的了,只不过因为版本迭代的关系,目前最新版本已经不支持了,现在我们先教大家使用mybatis generator插件生成ibatis代码。

一.在项目pom文件中引入依赖 放在<build>标签下

        <plugins>
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.5</version>
                <configuration>
                    <!-- 此处的路径填写的是配置文件所在的位置  配置文件就是自动生成代码依赖的一个关键文件 一般放到resources目录下边 -->
                    <configurationFile>src/main/resources/generator-config.xml</configurationFile>
                    <overwrite>true</overwrite>
                    <verbose>true</verbose>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>5.1.21</version>
                    </dependency>
                </dependencies>
            </plugin>
            <!-- 此处标记到包时候排除的文件 我们这个文件就是为了自动生成代码的 所以项目打包时候没必要打到里边 这个是可选项配不配之都可以 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>generator-config.xml</exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>

二.添加配置文件generator-config.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>
    <!--此处targetRuntime配置填写Ibatis2Java5则为生成ibatis代码 如果选Mybatis3则是生成mybatis代码  -->
    <context id="DB2Tables" targetRuntime="Ibatis2Java5">
        <!--去除注释  -->
        <commentGenerator>
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>
        <!--数据库连接 此处是自动生成代码时候需要去找的库  把连接 账户 密码 配置成我们本地的数据库就可以了 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://xxx:3306/lucky_epromotion"
                        userId="xx"
                        password="xx">
        </jdbcConnection>
        <!--此处配置一些类型转换解析器 可以自定义一些 -->
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>

        <!--生成实体类 指定包名 以及生成的地址 (可以自定义地址,但是路径不存在不会自动创建  使用Maven生成在target目录下,会自动创建) -->
        <javaModelGenerator targetPackage="com.lucky.epromotion.common.po"
                            targetProject="src/main/java">
            <property name="enableSubPackages" value="false"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
        <!--生成SQLMAP文件 -->
        <sqlMapGenerator targetPackage="resources/mappers" targetProject="src/main">
            <property name="enableSubPackages" value="false"/>
        </sqlMapGenerator>
        <!--生成Dao文件 可以配置 type="XMLMAPPER"生成xml的dao实现  context id="DB2Tables" 修改targetRuntime="MyBatis3"  -->
        <javaClientGenerator type="GENERIC-CI" targetPackage="com.lucky.epromotion.service.dao"
                             targetProject="src/main/java" implementationPackage="com.lucky.eorder.dao.test.impl">
            <property name="enableSubPackages" value="false"/>
        </javaClientGenerator>

        <!--对应数据库表 mysql可以加入主键自增 字段命名 忽略某字段等-->
        <!--<table tableName="distribution" enableSelectByExample="false" enableDeleteByExample="false"
               enableCountByExample="false" enableUpdateByExample="false">
            <generatedKey column="id" sqlStatement="MySql" identity="true"/>
            <columnOverride column="distribution_type" javaType="Integer"/>
            <columnOverride column="biz_type" javaType="Integer"/>
            <columnOverride column="state" javaType="Integer"/>
        </table>-->
         <!--table标签就是对应的表结构 通过配置这个选项生成对应的实体对象 xml文件等 
tableName即为表名 domainObjectName为对应的实体名称 还可以配其他比较复杂的各种东西-->
        <table tableName="user" enableSelectByExample="false" enableDeleteByExample="false"
               enableCountByExample="false" enableUpdateByExample="false" domainObjectName="UserPO">
            <generatedKey column="id" sqlStatement="MySql" identity="true"/>
            <columnOverride column="activity_status" javaType="Integer"/>
            <columnOverride column="update_type" javaType="Integer"/>
            <columnOverride column="brand_channel" javaType="Integer"/>
        </table>
    </context>
</generatorConfiguration>

三.在编译器中找到我们添加的插件 以idea为例

点击图中的插件即可自动生成对应的代码。

注意:因为插件的一些限制 所以生成的东西是固定的,如果你想改某些东西现在插件可以支持一部分,大家自行百度官方文档看就可以,要是想修改插件源码来改一些东西,那么请添加我得QQ624693304 说明ibatis插件问题,我将与你分享。

笔者现在在idea官方仓库上传了一款ibatis代码跳转的插件,大家在idea File-》 settings -》Plugins 中搜索即可

lucky-ibatis-generate

效果如下

近期笔者会抽时间把插件的源码上传到git中去,请多关注 git地址 https://github.com/caige2015/ibatis

代码主要功能就是修改原有的一些功能  可以自定义service层 dao层 包括数据库字段灵活翻译成需要的java类型等。

目前自定义功能只在公司内部使用,看大家有过都非常需要,笔者将会尽快把功能推出。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值