大家好,感谢邀请,今天来为大家分享一下为什么国内流行mybatis,国外反而多用hibernate的问题,以及和不建议使用mybatis的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!
本文目录
为什么国内流行mybatis,国外反而多用hibernate
主要是hibernate提倡以面向对象的方式操作数据库,SQL都是自动生成的,有些复杂的查询orm生成的SQL不会命中索引,导致查询性能不高。一切起源于杰克马提出的去ioe运动,根本原因是没钱就疯狂压榨程序员。
mybatis plus只能用mysql数据库嘛
1.不只能用MySQL数据库。2.MyBatisPlus是一个基于MyBatis的增强工具,它提供了许多便捷的功能和扩展,用于简化数据库操作。虽然MyBatisPlus最初是为MySQL数据库设计的,但它也支持其他主流数据库,如Oracle、SQLServer、PostgreSQL等。因此,你可以根据自己的需求选择合适的数据库来使用MyBatisPlus。3.此外,MyBatisPlus还支持NoSQL数据库,如MongoDB等。这意味着你可以在不同的数据库之间灵活切换,根据项目需求选择最适合的数据库,从而实现更好的性能和扩展性。所以,MyBatisPlus并不限制于特定的数据库,你可以根据需要进行选择和延伸。
mybatis和dbutils比,各自有什么优缺点
首先,mybatis的SQL是可以写在配置文件中,并且可以支持动态SQL,如果你只是使用mybatis的sqlMap而不是当作orm来用,那么无论你是单表还是多表查询,都跟你直接在数据库中写sql查询没多大差别,不存在多表sql不好写的问题。
dbutils比较轻量,但是他的sql是直接传递进去,不支持动态sql,如果你想要将sql从java代码中分离出来,或是要进行动态sql,那么你就mybatis,如果你的应用很小,基本不需要考虑分离sql集中管理,也基本没啥复杂的sql,那么你就使用dbutils,直接将sql写在java代码里。个人推荐还是使用mybatis,一是他的sqlMap功能可以将Sql分离集中管理,而且还支持动态SQL,让你的java代码更加简洁,另外有时候修改SQL不需要重新编译,方便上线后做微调。
mybatis plus优点
Mybatis-Plus是一个Mybatis的增强工具,只是在Mybatis的基础上做了增强却不做改变,MyBatis-Plus支持所有Mybatis原生的特性,所以引入Mybatis-Plus不会对现有的Mybatis构架产生任何影响。
MyBatis-Plus优点
1、依赖少:仅仅依赖Mybatis以及Mybatis-Spring。
2、损耗小:启动即会自动注入基本CURD,性能基本无损耗,直接面向对象操作。
3、预防Sql注入:内置Sql注入剥离器,有效预防Sql注入攻击。
4、通用CRUD操作:内置通用Mapper、通用Service,仅仅通过少量配置即可实现单表大部分CRUD操作,更有强大的条件构造器,满足各类使用需求。
5、多种主键策略:支持多达4种主键策略(内含分布式唯一ID生成器),可自由配置,完美解决主键问题。
6、支持热加载:Mapper对应的XML支持热加载,对于简单的CRUD操作,甚至可以无XML启动
7、支持ActiveRecord:支持ActiveRecord形式调用,实体类只需继承Model类即可实现基本CRUD操作
8、支持代码生成:采用代码或者Maven插件可快速生成Mapper、Model、Service、Controller层代码(生成自定义文件,避免开发重复代码),支持模板引擎、有超多自定义配置等。
9、支持自定义全局通用操作:支持全局通用方法注入(Writeonce,useanywhere)。
10、支持关键词自动转义:支持数据库关键词(order、key…)自动转义,还可自定义关键词。
11、内置分页插件:基于Mybatis物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通List查询。
12、内置性能分析插件:可输出Sql语句以及其执行时间,建议开发测试时启用该功能,能有效解决慢查询。
13、内置全局拦截插件:提供全表delete、update操作智能分析阻断,预防误操作。
14、默认将实体类的类名查找数据库中的表,使用@TableName(value="table1")注解指定表名,@TableId指定表主键,若字段与表中字段名保持一致可不加注解
好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!