问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

淘宝里面卖的那个spring mybatis框架可信吗?

发布网友 发布时间:2022-04-10 21:40

我来回答

1个回答

热心网友 时间:2022-04-10 23:09

mybatis的优缺点:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
优点:
1. 易于上手和掌握。
2. sql写在xml里,便于统一管理和优化。
3. 解除sql与程序代码的耦合。
4. 提供映射标签,支持对象与数据库的orm字段关系映射
5. 提供对象关系映射标签,支持对象关系组建维护
6. 提供xml标签,支持编写动态sql。
缺点:
1. sql工作量很大,尤其是字段多、关联表多时,更是如此。
2. sql依赖于数据库,导致数据库移植性差。
3. 由于xml里标签id必须唯一,导致DAO中方法不支持方法重载。
4. 字段映射标签和对象关系映射标签仅仅是对映射关系的描述,具体实现仍然依赖于sql。(比如配置了一对多Collection标签,如果sql里没有join子表或查询子表的话,查询后返回的对象是不具备对象关系的,即Collection的对象为null)
5. DAO层过于简单,对象组装的工作量较大。
6. 不支持级联更新、级联删除。
7. 编写动态sql时,不方便调试,尤其逻辑复杂时。
8 提供的写动态sql的xml标签功能简单(连struts都比不上),编写动态sql仍然受限,且可读性低。
9. 使用不当,容易导致N+1的sql性能问题。
10. 使用不当,关联查询时容易产生分页bug。
11. 若不查询主键字段,容易造成查询出的对象有“覆盖”现象。
12. 参数的数据类型支持不完善。(如参数为Date类型时,容易报没有get、set方法,需在参数上加@param)
13. 多参数时,使用不方便,功能不够强大。(目前支持的方法有map、对象、注解@param以及默认采用012索引位的方式)
14. 缓存使用不当,容易产生脏数据。

总结:
mybatis的优点其实也是mybatis的缺点,正因为mybatis使用简单,数据的可靠性、完整性的瓶颈便更多依赖于程序员对sql的使用水平上了。sql写在xml里,虽然方便了修改、优化和统一浏览,但可读性很低,调试也非常困难,也非常受限,无法像jdbc那样在代码里根据逻辑实现复杂动态sql拼接。mybatis简单看就是提供了字段映射和对象关系映射的jdbc,省去了数据赋值到对象的步骤而已,除此以外并无太多作为,不要把它想象成hibernate那样强大,简单小巧易用上手,方便浏览修改sql就是它最大的优点了。
mybatis适用于小型且程序员能力较低的项目和人群使用,对于中大型项目来说我并不推荐使用,如果觉得hibernate效率低的话(实际上也是使用不当所致,hibernate是实际上是不适用于拥有高负载的工程项目),还不如直接用spring提供的jdbc简单框架(Template),同样支持对象映射。
spring的优缺点:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
优点
a. Spring能有效地组织你的中间层对象,不管你是否选择使用了EJB。如果你仅仅使用了Struts或其他为J2EE的 API特制的framework,
Spring致力于解决剩下的问题。
b. Spring能消除在许多工程中常见的对Singleton的过多使用。根据我的经验,这是一个很大的问题,它降低了系统的可测试性和面向对
象的程度。
c. 通过一种在不同应用程序和项目间一致的方法来处理配置文件,Spring能消除各种各样自定义格式的属性文件的需要。曾经对某个类
要寻找的是哪个魔法般的属性项或系统属*到不解,为此不得不去读Javadoc甚至源编码?有了Spring,你仅仅需要看看类的JavaBean属性
。Inversion of Control的使用(在下面讨论)帮助完成了这种简化。
d.? 通过把对接口编程而不是对类编程的代价几乎减少到没有,Spring能够促进养成好的编程习惯。
e. Spring被设计为让使用它创建的应用尽可能少的依赖于他的APIs。在Spring应用中的大多数业务对象没有依赖于Spring。
f. 使用Spring构建的应用程序易于单元测试。
g. Spring能使EJB的使用成为一个实现选择,而不是应用架构的必然选择。你能选择用POJOs或local EJBs来实现业务接口,却不会影响
调用代码。
h. Spring帮助你解决许多问题而无需使用EJB。Spring能提供一种EJB的替换物,它们适用于许多web应用。例如,Spring能使用AOP提
供声明性事务管理而不通过EJB容器,如果你仅仅需要与单个数据库打交道,甚至不需要一个JTA实现。
i. Spring为数据存取提供了一个一致的框架,不论是使用的是JDBC还是O/R mapping产品(如Hibernate)。
Spring确实使你能通过最简单可行的解决办法来解决你的问题。而这是有有很大价值的。
缺点:使用人数不多、jsp中要写很多代码、控制器过于灵活,缺少一个公用控制器

以上内容,是我在网络上找到的,希望对你有帮助~~
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
夫妻养狗狗把谁当主人 两人同养狗认谁当主人 什么蔬菜和水果可以美容祛斑呢? vivox60怎么查看参数配置详情 怎样查看vivo手机的屏幕参数? vivo手机怎么看手机参数 vi##手机怎么看配置? 义乌到湖州没有直达快客???必须到南浔?? 湖州到绍兴的汽车有几班? 注销驾考需要本人吗 建行信用卡分期购车需要多久 谀五笔怎么打 柔五笔怎么打 办理信用卡需要什么证件,多久能下来? 天然气灶尺寸都一样吗 办理建行信用卡做分期购车,从递交申请到银行放款提车大概需要多上时间?请教懂行的! 建行贷款购车的信用卡多久能审批下来? 筱的五笔怎么打 5岁宝宝发烧能游泳吗 明字用五笔怎么打 孩子五岁了,打预防针的当天晚上可以洗澡吗 柔用五笔怎么打 五岁宝宝无原因发烧无任何症状怎么回事 在建行办购车信用卡怎么办? 5岁的小孩半夜发烧38.5度该怎么办 梦见三双鞋,红黑白,我把红的穿走了? 明五笔怎么打字 信用卡分期买车需多长时间_信用卡分期买车流程 4岁小孩发烧感冒刚好没到4-5小时可不可以洗头洗澡。 急,贷款购车审核已经通过,信用卡要多久才能拿到? BCD-256WPMB/A除霜容声冰箱冷凝水排水总管产生冰堵怎么解决,按网上说... 我家的容声冰箱这几天有漏水,上网查说可能是排水口堵了,我找不到排水... 借条与欠条区别有多大? 欠条和借条的区别有多大呢? 重装系统时导致系统文件丢失无法开机怎么办? 2021辽宁北镇梨花节是几月几日 箱式图的介绍 各城市各月份的平均相对湿度的箱线图特征有哪些 下列哪个数值不能在箱线图中表现出 最小值 离群值 平均值 全距 田庙梨花节开放时间 四分位数是衡量中位数的重要指标么? 从营口自驾上北镇看梨花怎么走 什么图表现的是在一个阶段项目数据增减或者说收支的过程 1箱形图2树状图3瀑布图4折线图_百度问一问 知道医巫闾山的梨花节就要开始了,今年的具体的时间是什么时候啊? oppor17怎么传输到另外手机- 问一问 下列哪个数值不能在箱线图中表现出 空调制冷感觉还可以,但开制热一会压缩机就热保护是什么原因,是压缩机老化吗 罗江梨花节时间2022 统计学题目:(1)分别计算描述两个班成绩分布特征的各种统计指标,并进行比较分析。 考研数学必做的书有哪些?