java持久化方式(JDBC、Mybatis、Hibernate、SpringJDBC)以及各种方式的优缺点

转载。 https://blog.csdn.net/qq_39470733/article/details/80166949

        正常开发过程中中常见的java持久化方案(当然仅仅代表个人观点)JDBC, Mybtais (Ibatis),Hibernate ,SpringJDBC ,具体在开发的选型时该如何抉择呢?下面我们探讨一下各自方式的简单原理和优缺点

 JDBC

 

       首先是JDBC,这个是Java语言提供的规范,原生操作数据库。主要就是定义一些接口和通讯类,接口定义好之后,各个数据库厂商来提供具体的实现,比如Oracle,Mysql等,这些厂商都有自己的JDBC具体实现,当然,我们也可以自己实现一个,不过成本比较高。对于JDBC ,具体实现步骤: ①.载入JDBC驱动程序    ②.定义连接URL   ③.建立连接   ④.创建Statement对象  ⑥.执行查询或更新F.结果处理   ⑦.关闭连接    JDBC主要的优点是原生操作数据库,工作效率高(用得好的情况下),使用起来也比较灵活 ,缺点呢也相对来说比较明显,开发起来代码比较繁重、重复太多、可扩展性不够好。  

 Mybatis

       然后是 Mybtais (Ibatis),前身为mybatis,这是一个半自动化的ORM框架,具体实现需要我们自己写SQL语句,主要特点是把SQL语句和Java的Field做映射,通过parameterMap和resultMap来做映射,所以,Mybtais 使用起来也是比较灵活的,可以自己写Sql,并且如果你家公司有高手DBA,交给他来优化或者写SQl也是很不错的选择。优点:使用灵活、方便sql调优、轻量级学习成本相对较低、降低耦合度。缺点呢:SQL语句的编写工作量较大,尤其是字段多、关联表多时,更是如此,对开发人员编写SQL语句的功底有一定要求。SQL语句依赖于数据库,导致数据库移植性差,不能随意更换数据库。

 Hibernate

       和Mybtais对比的比较多的就是hibernate了,这可以算是一个自动化的ORM框架,完全实现啦操作数据的面向对象话。自带HQL语句解释器,利用这个特性,开发人员可以认真写HQl语句就可以了,只要在不同的数据库中使用不同的驱动,这样就可以比较方便的在不同的DB上切换或者移植 ,但是有些比较复杂的SQL语句在转换为HQL语句的时候还是比较有难度的,如果没有hibernate开发高手,个人觉得还是使用Mybtais比较好。优点:提供大量封装基于JDBC效率相对较高、完全面向对象、更好的移植性、存在缓存机制(session缓存,二级缓存,查询缓存),对于那些改动不大且经常使用的数据,可以将它们放到缓存中,不必在每次使用时都去查询数据库,缓存机制对提升性能大有裨益。

 SpringJDBC

      spring 的核心思想是IOC和AOP,但是为了和其他框架竞争,Spring自己也实现了一套JDBC的东西,其核心接口和实现都是给JdbcTemplate 和 NamedParameterJdbcTemplate这两个接口提供服务的。使用的过程中也可以简化一些开发的代码量,并且Spring本身对事物提供强大的支持能力,对于服务层框架Spring来说 持久层的SpringJDBC 可以更完美的和Spring框架无缝衔接。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值