学习 springboot 的困惑

2020-06-26 16:47:28 +08:00
 fxjson

一直比较抵触编译型语言,可能是我太懒了,感觉干啥都费劲和麻烦,搭建过 ssm,最终因为感觉配置麻烦而放弃,接触了 springboot,感觉还是蛮好的,一些默认配置已经帮我们做了,现在学习到集成 db,貌似可选的有 jpa 个 mybatis, 尝试写了个 user 表,忽然发现 mybatis 挺灵活,但是感觉写 xml 总感觉不爽,不知道大家的实际项目中用的什么 db 层

9618 次点击
所在节点    Java
83 条回复
darrenfang
2020-06-26 17:00:42 +08:00
jpa
BenjaminReed
2020-06-26 17:01:30 +08:00
mybatis 总写 xml ?
试试 MyBatis-Plus ?
mp.baomidou.com
murmur
2020-06-26 17:03:45 +08:00
xml 才灵活呢,你写复杂一点的 sql 写到 annotation 里光一个排版就恶心死你
dcalsky
2020-06-26 17:07:04 +08:00
借楼问,用 jpa 的同学是按照最佳实践来用的吗( entitygraph 之类的),还是只用 @query 写 sql ?
felixin
2020-06-26 18:35:50 +08:00
试试 jooq
draymonder
2020-06-26 18:52:18 +08:00
数据量小 直接查全表,然后程序负责 join 就好了, 关联比较多的话 用 mybatis 好
Mcorleon
2020-06-26 19:04:03 +08:00
都用 springboot 了难道不是注解+application.yml 一套解决了吗?估计你使用姿势有误
napsterwu
2020-06-26 19:06:03 +08:00
复杂 sql 不用 xml 写就是给自己挖坑
EastLord
2020-06-26 19:06:53 +08:00
mybatis 和 jpa 一起用,复杂查询用 mybatis
xuanbg
2020-06-26 19:37:34 +08:00
mybatis 也可以用注解,不写 xml 。

譬如:
/**
* 查询报表模板
*
* @param dto 查询参数 DTO
* @return 报表模板集合
*/
@Select("<script>select id, `code`, `name`, remark, is_invalid from icc_template where tenant_id = #{tenantId} " +
"<if test = 'keyword != null'>and (`code` = #{keyword} or `name` like concat('%',#{keyword},'%')) </if>" +
"order by created_time</script>")
List<TemplateDto> getTemplates(SearchDto dto);
echo1937
2020-06-26 19:52:37 +08:00
mybatis 和 jpa 一起用,复杂查询用 mybatis
CoderGeek
2020-06-26 19:56:35 +08:00
jap
wjup
2020-06-26 19:57:30 +08:00
JdbcTemplate
CoderGeek
2020-06-26 19:58:24 +08:00
MyBatis-Plus
还有种叫 AR ( Active Record )
java 的 ORM 很多
pomelotea2009
2020-06-26 20:02:34 +08:00
#7 和#10 正解,排版你自己换行加缩进(没找过有没有插件可以自动格式化),动态 sql 用<script>注意特殊字符的转义
Spring data jpa 也有 Native 查询,只是动态 sql 就没那么灵活,而且如果要动态表名 /动态排序分页也不太好办
anguiao
2020-06-26 20:05:50 +08:00
一般情况下我都很讨厌 XML,但是 MyBatis 的 XML 并没有很复杂,反而很灵活,所以我并不抵触。
cheng6563
2020-06-26 20:36:38 +08:00
原生 mybatis 挺不好用的,用 mybatiscplus 吧
xiangyuecn
2020-06-26 21:42:12 +08:00
@murmur #3 不喜欢 mybatis 的原因就是因为:它太拘泥于要创建 xml 文件了。如果能用 xml 字符串也不会有这么嫌弃,哪里要用定义到哪 豪情奔放😂 最后我用 SqlMapper,这样就不用再去定义 xml 文件也能用上 mybatis 的高级特性。
nullpointerskz
2020-06-26 21:43:30 +08:00
领域驱动设计+jpa
murmur
2020-06-26 21:44:50 +08:00
@xiangyuecn 企业应用开发不可能不写 sql 的,稍微几个复杂查询和报表叫各种教做人,简单的查询 hibernate 真挺好

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/684884

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX