mybatis入门--mybatis和其他持久层工具比较
2017-02-14 01:18
211 查看
mybatis和hibernate的比较
Mybatis和hibernate不同,它不完全是一个ORM框架,因为MyBatis需要程序员自己编写Sql语句,不过mybatis可以通过XML或注解方式灵活配置要运行的sql语句,并将java对象和sql语句映射生成最终执行的sql,最后将sql执行的结果再映射生成java对象。Mybatis学习门槛低,简单易学,程序员直接编写原生态sql,可严格控制sql执行性能,灵活度高,非常适合对关系数据模型要求不高的软件开发,例如互联网软件、企业运营类软件等,因为这类软件需求变化频繁,一但需求变化要求成果输出迅速。但是灵活的前提是mybatis无法做到数据库无关性,如果需要实现支持多种数据库的软件则需要自定义多套sql映射文件,工作量大。
Hibernate对象/关系映射能力强,数据库无关性好,对于关系模型要求高的软件(例如需求固定的定制化软件)如果用hibernate开发可以节省很多代码,提高效率。但是Hibernate的学习门槛高,要精通门槛更高,而且怎么设计O/R映射,在性能和对象模型之间如何权衡,以及怎样用好Hibernate需要具有很强的经验和能力才行。
总之,按照用户的需求在有限的资源环境下只要能做出维护性、扩展性良好的软件架构都是好架构,所以框架只有适合才是最好。
mybatis和jdbc的比较
jdbc是我们连接数据库的基础,所有框架在使用的时候都要比jdbc简单,但是所有框架在性能上都没有jdbc的速度快(优化相同的情况下)这里就介绍一下mybatis对jdbc的哪些问题进行了优化吧:1、 数据库链接创建、释放频繁造成系统资源浪费从而影响系统性能,如果使用数据库链接池可解决此问题。
解决:在SqlMapConfig.xml中配置数据链接池,使用连接池管理数据库链接。
2、 Sql语句写在代码中造成代码不易维护,实际应用sql变化的可能较大,sql变动需要改变java代码。
解决:将Sql语句配置在XXXXmapper.xml文件中与java代码分离。
3、 向sql语句传参数麻烦,因为sql语句的where条件不一定,可能多也可能少,占位符需要和参数一一对应。
解决:Mybatis自动将java对象映射至sql语句,通过statement中的parameterType定义输入参数的类型。
4、 对结果集解析麻烦,sql变化导致解析代码变化,且解析前需要遍历,如果能将数据库记录封装成pojo对象解析比较方便。
解决:Mybatis自动将sql执行结果映射至java对象,通过statement中的resultType定义输出结果的类型。
相关文章推荐
- wxWidgets与其他工具库的比较(下)
- wxWidgets与其他工具库的比较(上)
- 使用mybatis+SQLServer做持久层入门
- Web框架梳理:第三章:Mybatis入门、Mybatis代理开发、log4j:日志管理工具
- Mybatis入门:(4)代码生成工具
- Style Report和其他web报表工具的比较
- wxWidgets与其他工具库的比较(上)
- mybatis入门到精通(九):mybatis 代码生成工具的使用
- 我的Linux书架:入门 编程 内核 工具 其他
- 优雅高效的MyBatis-Plus工具快速入门使用
- 为什么选择GIT--GIT与其他SCM工具的比较
- wxWidgets与其他工具库的比较(上)
- wxWidgets与其他工具库的比较(下)
- wxWidgets与其他工具库的比较
- wxWidgets与其他工具库的比较(下)
- wxWidgets与其他工具库的比较
- wxWidgets与其他工具库的比较(上)
- wxWidgets与其他工具库的比较
- mybatis入门&三种接口代理开发&别名、返回值、类型转换&比较
- readelf工具深入剖析(入门概念请参考其他文章)