V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
linbiaye
V2EX  ›  Java

开源一款 IDEA 下 Mybatis 代码生成插件——Yobatis。

  •  
  •   linbiaye · 2018-11-11 15:07:13 +08:00 · 7567 次点击
    这是一个创建于 2230 天前的主题,其中的信息可能已经有所发展或是发生改变。

    这是一款基于 MybatisGenerator 的插件,我们已经在生产环境使用了快一年了。封装后,使得配置 /使用更简单,表结构发生变更以后只需要重新生成即可,Yobatis 会根据变更自动添加 /删除字段。只需要如下图配置一下就可以为 mysql 表生成代码: 配置

    代码生成前:
    配置

    代码生成后:
    配置

    项目地址: https://github.com/linbaiye/yobatis
    详细介绍: https://linbaiye.github.io/yobatis-tour/

    20 条回复    2018-11-13 19:35:24 +08:00
    wangcansun
        1
    wangcansun  
       2018-11-11 17:27:56 +08:00   ❤️ 1
    点个赞,以前做 Java 开发的时候也使用过国人开发的一款 mybatis 的插件,挺好用的
    qiyuey
        2
    qiyuey  
       2018-11-11 17:41:48 +08:00
    考虑支持注解吗
    choice4
        3
    choice4  
       2018-11-11 18:20:18 +08:00 via Android
    请问有 xml 跳转吗?
    heirenhua
        4
    heirenhua  
       2018-11-11 18:21:48 +08:00 via Android   ❤️ 1
    支持
    linbiaye
        5
    linbiaye  
    OP
       2018-11-11 19:42:14 +08:00
    @choice4 支持 java 和 xml 之间跳转的。
    linbiaye
        6
    linbiaye  
    OP
       2018-11-11 19:44:21 +08:00
    @qiyuey 注解的问题在于处理动态 sql 比较乏力,比如用 xml 的:
    ```
    List<Employee> list = employeeDao.selectList(EmployeeCriteria.nameEqualTo("Alice").andPhoneIsNotNull());
    ```
    以及
    ```
    List<Employee> list = employeeDao.selectList(EmployeeCriteria.idIsNotNull());
    ```
    用注解就需要 2 个方法,写 2 个 sql.
    q397064399
        7
    q397064399  
       2018-11-12 06:58:50 +08:00
    idea 的插件开发有没有 好的参考文档,官方那个文档有点玄乎
    EXChen
        8
    EXChen  
       2018-11-12 08:15:57 +08:00 via iPhone
    有空试一下。
    gejun123456
        9
    gejun123456  
       2018-11-12 09:29:15 +08:00
    棒,我的插件也支持 https://github.com/gejun123456/MyBatisCodeHelper-Pro 可以试试

    github 上传的代码 貌似是 js 的,没看到 java 代码。
    linbiaye
        10
    linbiaye  
    OP
       2018-11-12 09:33:14 +08:00
    @q397064399 唔,他们家的已经算是很好了。我就是官方文档+论坛跟着来做,eclipse 才是入门到放弃。。
    linbiaye
        11
    linbiaye  
    OP
       2018-11-12 09:36:04 +08:00
    @gejun123456 就在旁边 yobatis-idea 下
    linbiaye
        12
    linbiaye  
    OP
       2018-11-12 09:39:41 +08:00
    @EXChen 欢迎试用,核心其实还是 Mybatis-Generator,已经在我们生产用了一年了。
    gmywq0392
        13
    gmywq0392  
       2018-11-12 10:49:13 +08:00
    支持。另外,插件可用吗?如果要生成 Lombok 那样的 entity 呢?
    linbiaye
        14
    linbiaye  
    OP
       2018-11-12 11:18:26 +08:00
    @gmywq0392 可能要能用才开源呀。暂时不支持 Lombok 那样,entity 里面就只有 getter setter
    snipersong
        15
    snipersong  
       2018-11-12 14:59:06 +08:00
    mark
    qiyuey
        16
    qiyuey  
       2018-11-13 13:46:41 +08:00 via Android
    @linbiaye 注解的优势在于可读性和内聚性,动态 SQL 的场景并不多,有 script 和 provider 也完全可以支撑
    linbiaye
        17
    linbiaye  
    OP
       2018-11-13 15:45:04 +08:00
    @qiyuey 那暂时不支持哦。一些简单的操作是可以用注解,但是复杂的写在注解里面是没法看的, 我们更倾向于 xml 是因为 xml 里面读起来更直观,更连贯; provider 里面调用各种方法去拼接比较影响阅读。另外新同学觉得学习成本更低。
    qiyuey
        18
    qiyuey  
       2018-11-13 15:59:11 +08:00
    @linbiaye 我感觉注解更直观
    choice4
        19
    choice4  
       2018-11-13 19:27:02 +08:00
    似乎并不支持 java, xml 跳转 idea 18.2.5, yobatis 2.13
    linbiaye
        20
    linbiaye  
    OP
       2018-11-13 19:35:24 +08:00
    @choice4 请问下是在生成的 interface 旁边没有跳转么? java 和 xml 的跳转开生成的 interface 文件或者 xml 文件才能开到。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2926 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 14:41 · PVG 22:41 · LAX 06:41 · JFK 09:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.