最近在一家企业工作,主要从事互联网网站开发的,但是由于公司项目中不是使用的传统的如iBATIS、hibernate等类似的ORM框架,而是全部采用字符串拼接,使用spring jdbc插件来完成数据库操作,感觉sql代码凌乱难于维护。故一直在想ORM在项目中会有多大的性能影响,然后看了许多项目里面也会有公司自己封装的一些映射操作,即便如此也不能保证sql代码整洁,所以一直猜想既然都做到这一步了为何还不如直接引入iBATIS这类ORM框架来的方便。
所以想了解使用ORM框架或不使用ORM框架有多大区别,区别在哪儿,我指的是针对如淘宝,京东,QQ空间类似这种访问量比较大的网站。

解决方案 »

  1.   

    区别就是效率啊~
    spring jdbc 只是针对jdbc进行了很薄一层的封装,比起hibernate这种大型ORM框架效率要高的多~
    主要还是看需求,像网站应该还是要保证效率优先的~  
      

  2.   

    不用ORM主要就是工程师需要最大限度的了解自己往数据库到底发了些什么东西,访问量大的时候sql调优是很重要的,中间隔了一层ORM,都不知道ORM干了什么,调优起来太麻烦。我是愿意用JDBC自己简单封装一下,不喜欢ORM
      

  3.   

    一般小的项目用个JDBC就行了,但如果大的项目用ORM要方便,还有有些ORM对sql要求不高
      

  4.   

    这点我很赞同,就像jsp经过应用服务器一样需要被解析一遍一样,如iBATIS,也是需要将xml文件解析一遍然后再调用spring jdbc插件去执行数据。所以这个过程肯定会耗去一部分性能的,不过对于其他ORM框架我不敢说,但是对于iBATIS来说我觉得应该不至于性能有多大差异,而且sql直观可见可于维护。
      

  5.   

    互联网网站并发一大光靠那些数据库是顶不住的, 毕竟连接数就那么点,使用hibernate 和 ibatis(mybatis), 除了orm以外 , 还有他们的二级缓存设置可以大大的提高网站访问速度 . 
      

  6.   

    代码优先,所以现在纯用JDBC搞网站的几乎就没了。ibatis的封装轻量级。就搞那个呗
      

  7.   

    最开始使用的Entity Framework;
    EF用不好后期会比较坑,主要是自己没用好,而不是EF本身的问题;
    后来自己做了一个小型ORM ;最近开源了,可以考虑试试
    名称:LambdaToSql 
    开源地址: https://gitee.com/wangshuyu/LambdaToSql/wikis