数据库到Java对象的解决方案初探

概述

从事Java后台开发的程序员,几乎天天在和数据库打交道,无论是久经考验的关系型数据库,还是主键普及的NoSQL数据库,不可避免的都需要将数据转换到Java对象中,进入内存,才能被应用程序使用。
本文作为这一系列技术的初探,着眼于从数据库到Java对象的转换。

关系型数据库表到Java对象
  • 经典的处理方案(jdbc)
    • jdbc作为经典的Java对象和数据库交互的方式,在很长一段时间内占据着重要地位,用户通过加载驱动,建立连接,编写sql,解析数据和对象,完成一系列的操作。
    • 不得不承认,尽管jdbc非常的重要,但易用性的确不够好,无论何时,软件开发人员不得不写大量的模板代码,即使只是完成了非常简单的数据访问,比如select * from tablename;并且开发人员不得不被迫处理大量的异常,无法将有限的精力投放到需要实现的业务逻辑。
  • 常用的数据库到Java对象的解决方案(ORM框架)
    • Hibernate框架
      • 作为当下Java世界中流行的ORM框架,Hibernate提供了Java对象(POJO)和关系型数据库表框架的轻便型解决方案。
      • 以MySQL为例,每一张数据库表,都能够和Java对象组成映射关系,每一个Java对象的属性对应着相应数据表中的一个字段。多个数据表之间的依赖关系,主外键关联都能够通过对象之间的关系表达。当然,这样方便得表达不得不感谢Hibernate提供的强大功能,通过Hibernate提供的简单注解,完成数据到对象的完美转换。
      • 软件开发人员在绝大多数情况下,更可以通过方便得API,使用面向对象的方式处理和数据库之间的交互,从而摆脱了sql编码的时代。
    • Mybatis框架
      • 和Hibernate一样,作为方便高效的ORM框架,MyBatis是Hibernate的强有力的竞争对手。
      • 与Hibernate不同的是,MyBatis在做数据库表和Java对象的映射转换时,给予用户更加宽松的选择。用户可以在配置中填写需要的sql,由此达到更加针对性的映射对象的构成。
      • 只要用户可以想到的sql,都可以在MyBatis的配置中完成数据库和Java对象间的转换支持。
  • ORM框架带来的问题
    由于ORM框架是将Java对象和表定义进行映射的,那么在表设计和业务需求相对复杂的情况下,entity类的数量也会同样的增加,复杂度也相应提高,开发人员不得不去维护大量的实体类以及实体类之间的关系。
  • 其他解决方案

    • 数据库表定义到HashMap的映射转换
      • 熟悉oracle,mysql等关系型数据库的人员都知道,这些优秀的数据库提供了足够多的数据库维护的表和视图,比如oracle的v$instance,user_tables,user_tab_columns等,
      • 如果对这些加以利用,可以将数据库的表定义,数据维护,转换为Map对象,进行维护,当然这样的处理方式,必须要有进行多层次框架封装,优化和简化和数据库之间的交互,这样的处理方案是需要时间和成本的。
  • 优秀的开发者总有新的解决方案,对数据库的探索永无止境

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值