用户登录
用户注册

分享至

mybatis 例子

  • 作者: 格林GG
  • 来源: 51数据库
  • 2020-09-27
看这边文章,基本能解决你的全部问题
spring mybatis 真正的快速开发



  struts2.2.3 + spring3.1.0 + mybatis3.1.0集成简单demo

你可以下载下来,不需要积分的,入门级别的示例



  mybatis的优缺点:

优点:
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的优缺点:

优点
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中要写很多代码、控制器过于灵活,缺少一个公用控制器

以上内容,是我在网络上找到的,希望对你有帮助~~
软件
前端设计
程序设计
Java相关