ORM
本科教学中,SSH框架的学习,貌似是一种基本的套路,毕业设计,求职,都会使用到,哈哈哈,现在所说其中的H的问题。 所谓H就是Hibernate,本文中泛指各种ORM框架
何为ORM
ORM的提出主要是为了解决开发过程中,密密麻麻的Sql编写,以及将提取到的数据变成model对象,这种问题。
ORM问题
虽然,现在ORM框架基本解决了以上的问题,但是,也往往引出了其他问题:
- 为了使用该ORM框架,增加了学习成本
- 过多加载数据,这点在高性能场景中尤其突出
- sql无法控制,dba会发疯吧
- 类爆炸,过多的model造成代码维护的困难
- 数据库应该是企业核心资产,应用可以随意的变化,然而数据库通常需要稳定,所以ORM自动生成的表是不靠谱的
- 当项目变大的时候,ORM会成为系统扩展的瓶颈
- 相信大家都遇到model 转换为JSON的时候,循环依赖的问题吧,哈哈哈哈
ORM的好处
虽然ORM有这样子那样子的问题,但是,不妨ORM流行于快速开发的场景,因为服务器开发大部分的工作就是数据处理。 在app,开发中,也经常使用ORM来开发,虽然升级App数据库会有点问题。
总结
在技术选型的时候,对于数据库的框架要比较谨慎,毕竟数据层是核心资产,需要考虑方方面面,比如说性能,升级,维护等等,当然也有开发速度之类的。不过,个人建议还是采用原生JDBC的方式开发,因为简单可控。以及建议大家把SQL和API操作类放在一起,利于维护。再告诉大家一个利器函数String.format(SELECT %s FROM %s , KEY.FIELD,KEY.TABLE)