1.使用jdbc每一次调用数据库就会创建,销毁连接,消耗内存,执行效率低 解决方法:SqlMapConfig.xml中配置连接池 2.sql语句写入在java项目代码中,修改sql导致java代码改动,不利于维护 解决方法:将sql语句写在mapper.xml中,是sql和java代码分离 3.使用?占位符时,参数过多过少,需要一一对应参数。不利于维护 解决方法:通过Mybatis自动映射java对象至sql语句,通过statement的parameterType进行传参 4.查询时存在硬编码,当sql语句改变解析的sql语句也发生变化,系统不利于维护。 解决方法:通过Mybatis自动映射sql语句至java对象,通过statement的resultType返回数据
1.Mybatis是一个半自动的ORM持久层框架,需要手动编写sql语句和ResultMap,灵活性强,适合移动互联网高并发,大数据,高性能,高响应的要求。 2.使用起来相对于比较简单。
1.因为使用的是SQL进行数据库的操作,所以与数据库的无关性差,操作不同的数据库需要编写不同的sql语句,拓展性差。 2.没有日子系统,需要借助log4j来记录日志。 3.Mybatis的接口需要接口和Sql 4.使用二级缓存操作不当时,出现脏读程序仍会正常运性,存在安全隐患。
1.Hibernat是一个全自动的ORM框架,无需关心sql,更加专注于流程。无需编写sql语句,开发效率高,与数据库的无关系好,能操作不同的数据库,适用于高关系模型要求高的软件(例如需求固定的定制化软件)。 2.拥有自己的日志统计 3.Hibernate无需噢诶之接口和sql 4.Hibernate对查询对象有着良好的管理机制,二级缓存出现脏读会记性报错
1.使用难度高,开发时需要考虑模块,性能,对象关系映射之间的权衡 2.当Sql出现三个关联时,会造成太多性能的丢失。
转载于:https://www.cnblogs.com/yizhichenfen/p/11331414.html