hibernate

大家好,感谢邀请,今天来为大家分享一下为什么国内流行mybatis,国外反而多用hibernate的问题,以及和不建议使用mybatis的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!

本文目录

  1. 为什么国内流行mybatis,国外反而多用hibernate
  2. mybatis plus只能用mysql数据库嘛
  3. mybatis和dbutils比,各自有什么优缺点
  4. mybatis plus优点

为什么国内流行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指定表主键,若字段与表中字段名保持一致可不加注解

好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!

揭秘MyBatis为什么在阿里等大厂这么流行