V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
fxjson
V2EX  ›  程序员

springboot orm 选型

  •  
  •   fxjson · 2023-12-09 11:51:47 +08:00 via Android · 2305 次点击
    这是一个创建于 387 天前的主题,其中的信息可能已经有所发展或是发生改变。

    请教下大家 java 下操作数据库的 orm 用 jpa 多还是 mybatis,感觉 jpa 不太灵活,另外如果用 mybatis 多,不知道大家 xml 中写 resultmap 字段映射吗,还是直接 sql 中用 as 字段别名为 java 字段名,关联查询 xml 中写 collection 标签还是一条 sql 查询出结果,java 代码去组装数据,个人不太喜欢 resultmap 这样的标签,不知道实际商业项目大家怎么用

    404E
        1
    404E  
       2023-12-09 12:00:42 +08:00
    公司项目,小厂自己用的管理后台
    有很多数据都是计算得出的,sql 里面直接 as vo 的字段名字
    不过也有用 mp 查询出来然后在 java 里计算的
    jackytang520
        2
    jackytang520  
       2023-12-09 12:09:09 +08:00
    其实国内还是 mybatis 多些, mybatis 一般会搭配 mybatis plus 吧, 只有挺复杂的查询才会写 xml, 一般不用写吧. jpa 应该就是以前的 hibernate, 自己用过感觉驾驭起来有些难度
    ZZ74
        3
    ZZ74  
       2023-12-09 12:09:57 +08:00
    看你项目,业务简单,查询简单 jpa
    业务复杂就 mybatis
    silentsky
        4
    silentsky  
       2023-12-09 12:24:37 +08:00 via Android
    mybatis 虽然开始费劲了点 可是好维护 当你遇到一个问题时很容易就定位到具体位置
    fxjson
        5
    fxjson  
    OP
       2023-12-09 13:21:00 +08:00 via Android
    @silentsky 请教下你们是 resultmap 映射字段还是 sql 语句中 as bean 字段名
    guyeu
        6
    guyeu  
       2023-12-09 13:40:02 +08:00 via iPhone
    准备在新项目里上 eclipsestore 了,不折腾数据库写业务都会快一些
    xuanbg
        7
    xuanbg  
       2023-12-09 14:02:12 +08:00
    mybatis ,写注解不写 xml
    looo
        8
    looo  
       2023-12-09 14:11:40 +08:00
    可以使用 QueryDSL 啊
    yooomu
        9
    yooomu  
       2023-12-09 15:09:48 +08:00
    mybatis 配合 mybatis plus 使用,简单单表查询就不写 xml 了,联表复杂查询就写 xml 了。resultmap 自己项目都是能不写就不写,让框架自动映射字段。公司项目还是尽量每个字段都写全,方便调试和协作,现在都有 IDE 插件生成这些东西,也算不上多麻烦
    unregister
        10
    unregister  
       2023-12-09 15:13:11 +08:00   ❤️ 2
    内心总觉的 mybaits 土 ,不是很面向国际,大家不要喷我哈。特别是 mybatis plus 标志挺丑的
    fxjson
        11
    fxjson  
    OP
       2023-12-09 15:34:05 +08:00 via Android
    @unregister 您工作用什么方案
    lifespy
        12
    lifespy  
       2023-12-09 16:46:19 +08:00
    mybatis plus 用下来确实是体验最好的,兼顾了灵活性和方便
    iv8d
        13
    iv8d  
       2023-12-09 16:49:58 +08:00 via Android
    mybatis plus 就是灵活,方便定位,入门容易
    unregister
        14
    unregister  
       2023-12-09 17:00:37 +08:00
    @fxjson 我用的比 mybatis 更古早,更麻烦。pl/sql
    unregister
        15
    unregister  
       2023-12-09 17:05:59 +08:00
    我的工作经验不是很丰富,但是就业务代码来说吧,很多人喜欢把业务放在 sql 中实现,有一个人特别夸张,有一定工作经验,完全放 sql ,我觉得写代码里不是更好吗?万一以后重构不是完蛋吗。我觉得查询就简简单单查询就可以了。
    yechentide
        16
    yechentide  
       2023-12-09 18:06:20 +08:00 via iPhone
    喜欢手写 SQL ,我选择 DOMA2
    linmt
        17
    linmt  
       2023-12-09 19:51:20 +08:00
    @looo 我也在用这个,但是好像已经不维护了,仓库最后一次提交以经是一年前了,release 也是两年前的了,有啥替代的吗
    lvdream
        18
    lvdream  
       2023-12-09 20:09:50 +08:00
    小公司,小项目,迭代少就 jpa ,省事

    迭代多的就 mybatis
    zigaai
        19
    zigaai  
       2023-12-09 21:50:41 +08:00
    jooq 逃~
    alex8
        20
    alex8  
       2023-12-09 22:56:06 +08:00 via iPhone
    Jpa+JdbcClient
    ZeawinL
        21
    ZeawinL  
       2023-12-10 00:14:37 +08:00 via iPhone
    MyBatis Plus 简单灵活易懂,对 多表连接+动态条件+分页 这类能写复杂业务友好。都是用 SQL 入门门槛低。
    machilus
        22
    machilus  
       2023-12-10 07:12:56 +08:00 via iPhone
    大公司在做的项目用的 mybatis ,resultmap 中 column 名字对应 model 的属性名,关联是在 resultmap 中加对应的 collection 标签。确实个人更喜欢这样子的灵活性,jpa 束手束脚
    gowk
        23
    gowk  
       2023-12-10 10:37:42 +08:00
    这么成熟的 Java 没有一个好用的 ORM 真的挺感慨的
    JPA 不灵活,学起来繁琐,多表联查要配合 QueryDSL ?个人不喜欢 DSL ,SQL 之上再封装一层,纯属无聊
    Mybatis 还 tm 在用古早的 XML ,虽然有注解但 SQL 写在源码里更丑
    Mybatis Plus 现在选择这个的比较多,但是想到它在 Mybatis 基础上又封装一层,再配合上 Spring Boot/Spring 那一套诘屈聱牙的技术迷宫,顿时性趣全无,另外就是上面的朋友说的,Mybatis Plus LOGO 丑 😀
    再还有什么好的选择? JOOQ ?还是国产的小众框架?
    flmn
        24
    flmn  
       2023-12-10 14:46:59 +08:00
    没人研究过 Spring Data JDBC 么?还用什么 mybatis
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1185 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 18:12 · PVG 02:12 · LAX 10:12 · JFK 13:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.