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

分享一个 Mybatis 代码生成插件: Yobatis 。

  •  
  •   linbiaye · 2018-02-27 14:55:06 +08:00 · 3926 次点击
    这是一个创建于 2221 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Yobatis

    Yobatis DAO 是一款以 Mybatis-Generator 为核心的 eclipse 插件;可以按照 DAO 层形式生成 Mybatis 相关代码。如果项目是基于 MySQL/Mybatis/SpringMVC/Servlet(tomcat),该插件可生成 Mybatis-Generator 的配置文件,减少手写配置工作量。表结构变更以后,只需要点击鼠标就可以更新相关代码,yobatis 会保留手写部分的代码(java 和 xml)

    使用简单

    如果项目是基于 MySQL/Mybatis/SpringMVC/Servlet(tomcat),可以尝试使用 yobatis 自动生成配置文件,如下图: usage

    Yobatis 会根据数据库表生成相应的 DAO, domain, mybatis xml 文件, 以及构造查询条件的类 XxxCriteria。假设有一张 book 表:

    +--------+------------+------+-----+---------+----------------+
    | Field  | Type       | Null | Key | Default | Extra          |
    +--------+------------+------+-----+---------+----------------+
    | id     | bigint(20) | NO   | PRI | NULL    | auto_increment |
    | name   | char(100)  | YES  |     | NULL    |                |
    | author | bigint(20) | YES  |     | NULL    |                |
    +--------+------------+------+-----+---------+----------------+
    
    // 根据主键查询记录
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Book getById(Long id) {
      return bookDao.selectOne(id);
    }
    
    // 查询名字为 name, 或作者是 authorId 的所有书籍: where (name = ?) or (author_id = ?) 
    @Override 
    @Transactional(rollbackFor = Exception.class) 
    public List nameEqualOrAuthorIs(String name, long authorId) { 
      BookCriteria criteria = BookCriteria.nameEqualTo(name).or().andAuthorEqualTo(authorId); 
      return bookDao.selectList(criteria); 
    }
    

    项目地址

    更多详细信息请移步: https://github.com/linbaiye/yobatis

    13 条回复    2018-03-01 10:10:55 +08:00
    BBCCBB
        1
    BBCCBB  
       2018-02-27 15:08:43 +08:00
    支持
    Charkey
        2
    Charkey  
       2018-02-27 15:13:41 +08:00
    查询需要事务?
    linbiaye
        3
    linbiaye  
    OP
       2018-02-27 15:21:51 +08:00
    @Charkey 看需求
    linbiaye
        4
    linbiaye  
    OP
       2018-02-27 15:22:13 +08:00
    @BBCCBB 感谢,欢迎试用 :)
    merlinX
        5
    merlinX  
       2018-02-27 16:06:39 +08:00
    有 idea 版本的插件嘛?
    linbiaye
        6
    linbiaye  
    OP
       2018-02-27 20:02:09 +08:00
    @merlinX 暂时没有哦,正在看 idea 怎么弄
    0915240
        7
    0915240  
       2018-02-28 00:06:43 +08:00
    对于这种轮子我是绝对的支持的
    linbiaye
        8
    linbiaye  
    OP
       2018-02-28 10:30:53 +08:00
    @0915240 感谢支持。其实并不是想要造轮子,主要是不想自己手写配置文件。另外原生的不支持 dao,只有 mapper.
    daydaydayup
        9
    daydaydayup  
       2018-02-28 12:07:06 +08:00
    支持楼主,不过还是直接用 Generator 就足够了,配置文件也只是一次的事情.
    qiyuey
        10
    qiyuey  
       2018-02-28 16:54:39 +08:00
    有注解版的吗
    linbiaye
        11
    linbiaye  
    OP
       2018-02-28 17:18:10 +08:00
    @qiyuey 暂时没有哦,做成插件&配置的形式就是不喜欢入侵代码。
    kid1412621
        12
    kid1412621  
       2018-03-01 00:26:07 +08:00 via Android
    mybatis 官方那个插件没做?
    linbiaye
        13
    linbiaye  
    OP
       2018-03-01 10:10:55 +08:00 via iPhone
    @kid1412621 做了呀,mapper 形式,外加手写配置文件
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5394 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 08:47 · PVG 16:47 · LAX 01:47 · JFK 04:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.