V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
lixueyu001
V2EX  ›  问与答

大家平时都是怎么用 MyBatis 的?

  •  1
     
  •   lixueyu001 · 2018-05-11 16:26:21 +08:00 · 2826 次点击
    这是一个创建于 2389 天前的主题,其中的信息可能已经有所发展或是发生改变。
    1、用 MyBatis Generator 去生成实体类和 Mapper,XML,这种方式以后新增字段的时候挺麻烦的,有自己手写的 sql。
    2、看 OSChina 里有个通用 Mapper 有人在生产上实际用过吗,我之前测试的时候好像有过 where 条件多拼少拼的情况,现在版本升级了不知道如何。
    3、还是自己去纯手写控制,这种方式有点增加工作量。
    4、求教各位现在都怎么去使用 MyBatis,有更独到使用或封装方式吗?
    9 条回复    2018-05-11 18:09:41 +08:00
    nifanle7
        1
    nifanle7  
       2018-05-11 16:32:54 +08:00
    正在学习中,想了解一下常规的用法。
    Mogugugugu
        2
    Mogugugugu  
       2018-05-11 16:47:02 +08:00   ❤️ 3
    1、手写 SQL 只有在复杂查询或者多表关联查询 SQL 的情况下会使用。返回通常是 BaseResultMap,直接改这个 resultMap 就行,不会出现很多的改动。另外提前设计好表结构也是很重要的。
    2、通用 Mapper 我们一直再用,包括该作者的 PageHelper,也是一直再用,好几个项目了,都已经上了生产环境,至今还没出现什么问题,单表的增删改查都是通过通用 Mapper 的方法完成的,当然有些特殊需求我们也有自己的扩展,我们从 3 开始用,最近升级到 4 了,稳定性没啥问题。
    3、纯手写去控制 指的是手写 SQL 么? Mybatis 是半自动的 ORM 框架,所以入门低,如果觉得麻烦的话 Hibernate 考虑一下?
    4、没有什么封装方法,Mybatis 门槛已经很低了,配合通用 Mapper + 代码生成,开发人员写少量 SQL 就能完成任务,PS:项目里面不允许出现特别特别复杂的 SQL,短小 SQL 为主,便于后期扩展优化 。
    daimazha
        3
    daimazha  
       2018-05-11 16:48:07 +08:00
    MBG 有修改的时候重新生成就好了,自己手写的 sql 建议单独一个 mapper,不要跟自动生成的写在一起
    lixueyu001
        4
    lixueyu001  
    OP
       2018-05-11 16:57:39 +08:00
    @Mogugugugu 多谢,配合通用 Mapper + 代码生成 + 少量手写代码的方式不错。
    lixueyu001
        5
    lixueyu001  
    OP
       2018-05-11 16:59:29 +08:00
    @daimazha 一个 Mapper 接口可以去映射多个 xml 文件?还是用别的方式做到。
    lance7in
        6
    lance7in  
       2018-05-11 17:48:02 +08:00
    MyBatis Generator
    这个每次重构的时候用用挺爽的
    日常就算了
    ob
        7
    ob  
       2018-05-11 17:50:22 +08:00 via Android
    @lixueyu001 可以多个,不要跟生成的放在一起
    xuhaoyangx
        8
    xuhaoyangx  
       2018-05-11 17:50:31 +08:00
    xcolder
        9
    xcolder  
       2018-05-11 18:09:41 +08:00
    就用 Generator 生成就可以,然后自己写的 SQL 放在另一个 XML 中,通过 Mapper 继承一下 Generator 生成的 XML 不要改动
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   6121 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 06:15 · PVG 14:15 · LAX 22:15 · JFK 01:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.