-->

java中实体映射该采用哪种方式?

2019-01-02 21:37发布

问题:

在上一家公司我们的dao层使用的是springjdbc,没有做实体类映射,数据全部是以List<Map<String,Object>>的格式向前台返回从数据库中检索出来的数据,
后来跳槽,这家公司用的是mybatis,用一张表对应一个实体类,查询出的数据一一映射到具体的实体类中。
限于自己见识不够,不能知道两者各自优势,不能具体明白用Map和具体实体类的各自优劣,
还请大神指点。

回答1:

如果不用框架,那就只能自己封装,这两种方式我觉得还是差别挺大的。
第一点就是效率:使用框架的开发效率明显高于自己封装的开发效率,一般的公司都使用框架,因为能降低开发周期,从而解决开发成本,比较大的公司自己内部会有自己的一些开发规则,再成熟一些,就是自己的一套体系,后面的人进来就只能按照那样的开发方式,因为重构代码是件很痛苦的事情,大家都想只要把自己的事情搞定,没人愿意主动重构,对公司而言,反正项目能跑,他们也不愿意花人力和经历在这种事情上,大不了下一个项目用新的就好。
第二点是复用性:如果使用框架,很多东西我们都只写一两次,别的地方都用对象封装,但是如果你使用自己封装的话,每次对数据库操作都可能牵扯到封装,同样的工作重复性太高。
第三点是灵活性:自己封装肯定是最灵活的,映射框架最早的是Hibernate吧(你可以稍微看看Hibernate的作者为什么开发Hibernate,也是一个对比),Hibernate算是最笨重的一个,所以后来的mybatis算是一个居中的框架。
第四点是开发专注度:敢问你自己如果写一个是几行的sql语句十几张表各种统计各种关联,你是什么感受?使用框架的一个好处就是程序员只用更专注的负责自己的开发逻辑,不用写复杂的sql语句。另外一点,假设我需要什么,我不管我现在能不能拿到,定义好对象,我就当它存在了,剩下的是差数据库的事情,最开始表设计出来的时候,对象就有了表里面的所有字段,我不担心我会混乱需要什么字段不需要什么字段。
所以现在大部分公司都使用框架开发。



回答2:

Map和实体类的优劣?我第一想到的就是字段的名称,如果是实体类那么字段名称就是实体类的属性名,如果是map的话,key值作为字段名称不是会很麻烦吗?而且如果字段后期调整,修改起来也会更麻烦吧,这是我想到的其中一点。
至于它两还有没有别的优劣,可能还需要看项目本身或者开发团队的情况了。



标签: