美文网首页JavaJ2EEmybatis
mybatis Generator最佳实践(数据库:mysql)

mybatis Generator最佳实践(数据库:mysql)

作者: 石野小真人 | 来源:发表于2017-06-23 10:07 被阅读2760次

    Mybatis Generator最完整配置详解

    尽量使用代码生成器来生成mapper代码,能不手写绝不手写.

    官网: http://www.mybatis.org/generator/

    代码生成器配置

            <dependency>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-core</artifactId>
                <version>1.3.5</version>
            </dependency>
    

    代码路径:MyBatisGen.java
    配置文件路径:generatorConfig.xml

    • 生成之后拷贝到项目中,然后删除生成路径上的代码,否则下次生成会直接在mapper.xml后面追加,导致文件错误,项目运行不了
    • 使用creatira的like时,要自己传入两个百分号
    example.createCriteria().andNameLike("%"+findContent+"%");
    

    配置的gui工具

    https://github.com/astarring/mybatis-generator-gui

    https://github.com/zhongxintech/generator-web

    分页

    插入时自动给id赋值:

    默认情况下是没有赋值的.
    注意,identity默认为false,此时生成的sql的order为BEFORE.而我们需要的是插入后查询id并给bean赋值,所以需要的是AFTER,所以identity为true.

    //generatorConfig.xml里的配置:
    <table schema="" tableName="expert">
        <generatedKey column="id" sqlStatement="SELECT LAST_INSERT_ID()" identity="true"/><!--插入时自动生成selectkey,identity为true时,为after-->
    </table>
    
    //生成的mapper.xml:
    <insert id="insert" parameterType="com.sojson.experts.po.Expert">
        <selectKey keyProperty="id" order="BEFORE" resultType="java.lang.Integer">
          SELECT LAST_INSERT_ID()
        </selectKey>
        insert into expert (Id, name, shortname, 
    ...
    

    分页时,获取某一查询条件下的总数

    默认就有,countbyexample

    让生成的sql的字段用反引号括起来,以避免与mysql保留字段冲突:

    先在context标签下加上反引号的定义:
    <property name="beginningDelimiter" value="`"/>
    <property name="endingDelimiter" value="`"/>
    
    然后在table标签的属性里开启delimitAllColumns:
    
    <table schema="" tableName="qxinli_activity_card" delimitAllColumns="true">
    

    text类型 -避免生成blob类型

    在table标签内:
    <columnOverride column="address" javaType="java.lang.String" jdbcType="VARCHAR" />  
    

    批量插入

    参考:mybatis generator一对一映射,一对多映射,批量插入,批量更新
    代码:generator插件
    https://github.com/itfsw/mybatis-generator-plugin

    其他插件库:

    https://github.com/handosme/mybatis-generator-plus
    https://github.com/search?utf8=%E2%9C%93&q=+mybatis+generator+plugins&type=Repositories

    官方插件

    http://www.mybatis.org/generator/reference/plugins.html

    代码:

    https://github.com/hss01248/mybatis-gen

    相关文章

      网友评论

      • 清哥无敌:你好,gui的最新版本运行的时候,提示sqlite链接不上数据库。是不是缺少什么文件?

      本文标题:mybatis Generator最佳实践(数据库:mysql)

      本文链接:https://www.haomeiwen.com/subject/uqaqcxtx.html