二、mybaits 简介
mybatis,前称ibatis,后改名为mybatis,截止本文成文,最新 版本是3.0.6。它和hibernate 是java世界使用最多的两种orm 框 架。hibernate 理念最为先进,完全实现面向对象的数据库编程,不需要掌握sql 语句,即可实现数据库 *** 作,能够节省开发人员编 写大量sql语句的时间。但是,hibernate 在处理多表关联时,可 能会出现n+1 问题,性能会有较大影响,要解决性能问题,需要较 深的hibernate 知识和项目经验。mybatis 需要自己写sql 语句, 开发效率不如hibernate,很难做到底层多数据库的通用。但对程 序员来说有更高的可控性,可以更容易的对sql 语句进行优化,提 高效率。
在开发中直接使用jdbc 一个非常普遍的问题就是动态sql。如果 参数值、参数本身和数据列都是动态sql,通常的解决方法就是写很多if-else 条件语句和字符串连接。而mybatis 通过ognl 提供 了一套非常清晰的方法来解决动态sql 的问题。
物理分页和逻辑分页。1.物理分页 :使用数据库本身提供的分页 *** 作来完成数据查询,查询到的就是当前页的信息。例如mysql可以使用limit oracle数据库可以使用rownum来完成。这种方案的优点是性能比较好,但是它存在不通用问题。2.逻辑分页 :它是利用数据库的游标来 *** 作 (将数据库所有数据都查询出来,存储在内存中),性能比较低,但是它通用。分页实现可以使用ajax分页,也可以使用服务器端分页,它们原理是一样的。
原因在这句异常:org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 10
你使用了selectOne方法,这个方法返回一条数据,但是你的find中查询出了10条数据,这块改一下就好了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)