本人在校生,不知道企业级开发是使用的哪种方式进行配置。
看过 刘增辉 的书,他推荐的更多是使用 XML 的方式,利于修改和扩展。
但是我在之前也给学校写过几个大型的项目,类似于预约或者信息录入系统。使用的都是注解的形式,这样看起来整个项目非常清爽。
各位有丰富实战经验的大佬帮忙解答解答呗,小生在此谢过。
1
zhazi 2019-03-14 09:39:37 +08:00 via Android
xml 是 mybatis 的优势 如果用 mybatis 不用 xml 无疑是自费武功,注解方式有更好的选择
|
2
BCy66drFCvk1Ou87 2019-03-14 09:42:47 +08:00
注解比 XML 先进
|
3
luoyikang52066 2019-03-14 09:44:00 +08:00 via Android
结合吧,不复杂注解,复杂 xml
|
4
micean 2019-03-14 09:44:24 +08:00 1
kotlin+注解
xml 有个 p 的优势 |
5
NoKey 2019-03-14 09:49:08 +08:00
其实我觉得是看习惯,我习惯了 xml,就不想写注解,然而有的人习惯注解,就不想写 xml
这东西,我实在找不出先进不先进的差距 难道执行效率上有差异? |
6
AnnieSWonderland 2019-03-14 09:50:42 +08:00
xml 更繁琐,复杂的语句用注解简直是灾难
|
7
blackboom 2019-03-14 09:53:21 +08:00 via Android 3
这还用选吗,当然是 JPA 啊
|
8
pelloz 2019-03-14 09:56:36 +08:00
简单的增删改查用 Mapper[https://github.com/abel533/Mapper/wiki]自动化生成,复杂的使用 XML 进行编写。
XML 有两个功能我们使用比较多。 1.引用 SQL 片段。 2.自定义标签语义,实现一些高级功能。 另外 Java 注解写 SQL 是用字符串拼起来的,不好看也不好修改,我们现在使用的 java8 还不支持 ` ` 反单引号的多行字符串。 |
9
Remote 2019-03-14 10:01:23 +08:00 1
我以前也是用xml,然后注解,再后来JPA
|
10
anzu 2019-03-14 10:01:52 +08:00
复杂查询 XML,可以在 SQL 编辑器格式化好代码后直接粘贴过来,更易读,方便大家。如果是简单查询,用 JPA 更方便。所以我觉得 mybatis 注解基本没什么优势。
|
11
guoyuchuan 2019-03-14 10:02:12 +08:00
这个看情况,如果全是单表查询,那就使用注解(一般都是些 mybatis 的插件),不用 xml,如果涉及到多表查询,还是得用 xml,而 xml 自己手写配置比较累,可以用逆向工程来构建,然后自己再向 xml 中写自己的 SQL ;
|
12
wucao219101 2019-03-14 10:02:40 +08:00
MyBatis Generator
|
13
assiadamo 2019-03-14 10:03:57 +08:00
我习惯在 xml 中配置,不把配置打到包里面,这样改 sql 就不需要重新打包部署了
|
14
chendy 2019-03-14 10:04:04 +08:00
一楼说 xml 是 mybaits 的优势…啥优势啊
|
15
TommyLemon 2019-03-14 10:09:20 +08:00
|
16
br0x 2019-03-14 10:17:03 +08:00 via Android
复杂 sql 使用 xml 还是有优势的,尤其遗留业务系统,因为 sql 过长过复杂,使用注解并不够清晰,也可以把 xml 中的 sql copy 到数据库查询工具中一边查询,这样方便理解业务和 debug.遗留系统一般业务较重而且基本是面向数据库编程为指导思想来设计的,所以 mybatis 适合这类系统。
|
17
ghos 2019-03-14 10:28:40 +08:00
你想象一下 上百行 sql 写在注解里面是一种什么样的体验
|
18
coang 2019-03-14 10:32:41 +08:00
用通用 mapper 实现基础得增删改查 复杂得直接 xml
|
22
Amit 2019-03-14 10:48:09 +08:00
复杂查询用注解的你们开心就好。如果业务简单就用 JPA 了也不会用 mybatis 注解。用 xml 并不丑,java 里写 sql 才是真的丑。
|
23
ahmcsxcc 2019-03-14 11:13:30 +08:00
这种怎么用注解啊
|
24
BBCCBB 2019-03-14 11:23:11 +08:00
当然是配合使用,那种容易理解的一行就能搞定的就注解,复杂点的就 xml
|
25
gejun123456 2019-03-14 11:23:43 +08:00
@ahmcsxcc #23 这个复杂的 sql 你咋写的.. 配置下 IDEA 的数据库就可以做自动补全了 https://www.jianshu.com/p/d997d278813c
如何提升 mybatis 开发的效率,可以试试 https://github.com/gejun123456/MyBatisCodeHelper-Pro IDEA 插件 |
26
Raymon111111 2019-03-14 11:25:49 +08:00
这都说的是啥
正确答案是, 看团队习惯, 定下来了之后大家统一用一种. |
27
ahmcsxcc 2019-03-14 11:27:23 +08:00
@gejun123456 #25
专门的 DBA 写的 |
28
micean 2019-03-14 11:43:52 +08:00
interface OneMapper: AnyMybatisPluginMapper<Entity> {
@Select(""" 1. Idea inject language -> xxxSQL 2. 配置数据库,用于 auto complete 3. 开始写复杂 sql """) fun querySomething(): List<Entity> } 等 jdk13 出来了,多行字符串都有了,xml 这种早该丢了 |
29
lyog 2019-03-14 11:48:58 +08:00 via iPhone
去年底的一个小项目尝试了下注解,难用到爆,回头再用 XML,真香
|
30
serical 2019-03-14 11:50:30 +08:00 via Android
自动生成的不动,自己增加的用注解,省的数据库增加字段重新生成需要整理 xml
|
31
Shynoob 2019-03-14 11:52:13 +08:00
当然是根据业务来啊,那些报表类的 你用注解不是给自己找刺激吗?
|
33
yiyi11 2019-03-14 12:36:42 +08:00 via Android
经常跳槽用注解,否则用 xml。
|
35
gejun123456 2019-03-14 12:59:39 +08:00
@Macolor21 sql 没自动提示,用起来没有 xml 方便
|
36
NoKey 2019-03-14 13:26:25 +08:00 1
@micean 我们这里还大量使用 jdk7,少部分用 8,我感觉就算 jdk 升级到 20,我们这里依然是 7。。。有多少公司是追着 jdk 新版在用的?
|
37
imNull 2019-03-14 13:42:57 +08:00 via Android
这个看团队吧 ,目前在用 xml
|
38
glaucus 2019-03-14 13:53:56 +08:00
出于对 xml 的厌恶和偏见,一般用注解+Provider 的形式
|
40
woscaizi 2019-03-14 14:38:16 +08:00 via iPhone
Mybatis-plus 这个 mybatis 增强框架不错。
简单的 sql 我用注解。 涉及多表或者复杂条件的用 xml。 不过大部分 mybatis-plus 的 QueryWrapper 都可以搞定。 |
41
nita22 2019-03-14 16:41:22 +08:00
简单的查询就直接用 Mybatis-Generator 生成的 Mapper 搞定,复杂的 SQL 语句都是用 xml
|
42
lurenw 2019-03-14 17:41:21 +08:00
把 sql 这种声明式语言糅杂到代码里让人无法忍受,即便是使用 chain call,也觉得是在破坏代码的简洁美感。
|
44
anyele 2019-03-14 18:48:54 +08:00 via Android
肯定是注解
|
47
choice4 2019-03-14 19:06:37 +08:00 via Android
需要复杂 sql 和 resultmap 我选择 xml,简单 sql 返回 pojo 直接注解,mapper 中的每个接口方法打好注释
|
48
CFO 2019-03-15 12:47:17 +08:00 via Android
xml 有什么优势? xml 能干的注解基本都可以 再不济二者也可混用
|
49
autogen 2019-05-10 01:30:24 +08:00
spring 的趋势就是 xml 换成注释
|