请教下大家 java 下操作数据库的 orm 用 jpa 多还是 mybatis,感觉 jpa 不太灵活,另外如果用 mybatis 多,不知道大家 xml 中写 resultmap 字段映射吗,还是直接 sql 中用 as 字段别名为 java 字段名,关联查询 xml 中写 collection 标签还是一条 sql 查询出结果,java 代码去组装数据,个人不太喜欢 resultmap 这样的标签,不知道实际商业项目大家怎么用
![]() | 1 404E 2023-12-09 12:00:42 +08:00 公司项目,小厂自己用的管理后台 有很多数据都是计算得出的,sql 里面直接 as vo 的字段名字 不过也有用 mp 查询出来然后在 java 里计算的 |
![]() | 2 jackytang520 2023-12-09 12:09:09 +08:00 其实国内还是 mybatis 多些, mybatis 一般会搭配 mybatis plus 吧, 只有挺复杂的查询才会写 xml, 一般不用写吧. jpa 应该就是以前的 hibernate, 自己用过感觉驾驭起来有些难度 |
3 ZZ74 2023-12-09 12:09:57 +08:00 看你项目,业务简单,查询简单 jpa 业务复杂就 mybatis |
![]() | 4 silentsky 2023-12-09 12:24:37 +08:00 via Android mybatis 虽然开始费劲了点 可是好维护 当你遇到一个问题时很容易就定位到具体位置 |
5 fxjson OP @silentsky 请教下你们是 resultmap 映射字段还是 sql 语句中 as bean 字段名 |
![]() | 6 guyeu 2023-12-09 13:40:02 +08:00 via iPhone 准备在新项目里上 eclipsestore 了,不折腾数据库写业务都会快一些 |
![]() | mybatis ,写注解不写 xml |
![]() | 8 looo 2023-12-09 14:11:40 +08:00 可以使用 QueryDSL 啊 |
9 yooomu 2023-12-09 15:09:48 +08:00 mybatis 配合 mybatis plus 使用,简单单表查询就不写 xml 了,联表复杂查询就写 xml 了。resultmap 自己项目都是能不写就不写,让框架自动映射字段。公司项目还是尽量每个字段都写全,方便调试和协作,现在都有 IDE 插件生成这些东西,也算不上多麻烦 |
10 unregister 2023-12-09 15:13:11 +08:00 ![]() 内心总觉的 mybaits 土 ,不是很面向国际,大家不要喷我哈。特别是 mybatis plus 标志挺丑的 |
11 fxjson OP @unregister 您工作用什么方案 |
![]() | 12 lifespy 2023-12-09 16:46:19 +08:00 mybatis plus 用下来确实是体验最好的,兼顾了灵活性和方便 |
![]() | 13 iv8d 2023-12-09 16:49:58 +08:00 via Android mybatis plus 就是灵活,方便定位,入门容易 |
14 unregister 2023-12-09 17:00:37 +08:00 @fxjson 我用的比 mybatis 更古早,更麻烦。pl/sql |
15 unregister 2023-12-09 17:05:59 +08:00 我的工作经验不是很丰富,但是就业务代码来说吧,很多人喜欢把业务放在 sql 中实现,有一个人特别夸张,有一定工作经验,完全放 sql ,我觉得写代码里不是更好吗?万一以后重构不是完蛋吗。我觉得查询就简简单单查询就可以了。 |
![]() | 16 yechentide 2023-12-09 18:06:20 +08:00 via iPhone 喜欢手写 SQL ,我选择 DOMA2 |
18 lvdream 2023-12-09 20:09:50 +08:00 小公司,小项目,迭代少就 jpa ,省事 迭代多的就 mybatis |
![]() | 19 zigaai 2023-12-09 21:50:41 +08:00 jooq 逃~ |
20 xaxb 2023-12-09 22:56:06 +08:00 via iPhone Jpa+JdbcClient |
21 ZeawinL 2023-12-10 00:14:37 +08:00 via iPhone MyBatis Plus 简单灵活易懂,对 多表连接+动态条件+分页 这类能写复杂业务友好。都是用 SQL 入门门槛低。 |
22 machilus 2023-12-10 07:12:56 +08:00 via iPhone 大公司在做的项目用的 mybatis ,resultmap 中 column 名字对应 model 的属性名,关联是在 resultmap 中加对应的 collection 标签。确实个人更喜欢这样子的灵活性,jpa 束手束脚 |
![]() | 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 ?还是国产的小众框架? |
24 flmn 2023-12-10 14:46:59 +08:00 没人研究过 Spring Data JDBC 么?还用什么 mybatis |