小弟,开发经验不足,希望向大家问一下实际开发中,底层开发的技巧
(这里所谓的底层是指三层中的数据层,牵涉到操作数据库的代码。)现在的困惑:见很多软件后台牵涉到数据库的代码都是使用的存储过程,
小弟也知道存储过程有它的优势,
比如:
可以把程序代码和数据库操作代码分离,这样扩展能力更好;
在编写存储过程时,数据库就会对编写的存储过程进行分析;
......问题1:我也见到很多开发人员把存储过程的定义(或者说SQL语句)还是放到程序代码中,
而没有放到数据库中定义,这和SQL语句执行有什么差别,执行性能上又有什么差别?问题2:是不是对于数据层的编写,尽量使用存储过程来代替基本的SQL语句?问题3:不知道大家在开发中,对数据层操作数据库代码的编写有什么好的习惯?分不是问题,希望和大家交流!
(这里所谓的底层是指三层中的数据层,牵涉到操作数据库的代码。)现在的困惑:见很多软件后台牵涉到数据库的代码都是使用的存储过程,
小弟也知道存储过程有它的优势,
比如:
可以把程序代码和数据库操作代码分离,这样扩展能力更好;
在编写存储过程时,数据库就会对编写的存储过程进行分析;
......问题1:我也见到很多开发人员把存储过程的定义(或者说SQL语句)还是放到程序代码中,
而没有放到数据库中定义,这和SQL语句执行有什么差别,执行性能上又有什么差别?问题2:是不是对于数据层的编写,尽量使用存储过程来代替基本的SQL语句?问题3:不知道大家在开发中,对数据层操作数据库代码的编写有什么好的习惯?分不是问题,希望和大家交流!
解决方案 »
- 我的Eclipse安装后没有新建一个Web项目的选项
- <%@ include file=Comment-list?id=<s:property value='blog.id' /> %>这样包含对吗?
- java中的递归问题
- ######怎么把流存入数据库########
- (急急-在线等)一个多条记录登记、保存问题
- 为什么我的Tomcat安装后无法启动?
- 请教各位一个关于servlet-mapping的问题
- Tomcat 6 部署文本项目后一直报内存外溢的错误
- Springboot博客
- 求助:JSP页面读取数据库中文乱码
- css javascript的问题getElementById.type.display
- 该数据库该如何设计
而对于见到很多开发人员把存储过程的定义(或者说SQL语句)还是放到程序代码中,
而没有放到数据库中定义,这和SQL语句执行有什么差别,执行性能上又有什么差别?
这种方式,我感觉也就没有体现出来存储过程的优势,和执行SQL语句也就没有太大区别了
比如说:别人看到我的程序 如果是用sql语句写的 那么数据结构 别人就能够推测出来
但是如果你是用 存储过程写的 在程序中就只是调用存储过程 那么别人就只能够看到你
的存储过程名称 尤其是像银行等保密性比较强的软件
问题1:我也见到很多开发人员把存储过程的定义(或者说SQL语句)还是放到程序代码中,
而没有放到数据库中定义,这和SQL语句执行有什么差别,执行性能上又有什么差别?
回答:在数据库中定义的存储过程执行比在程序中执行效率一定会高的,这个可以通过试验确认。问题2:是不是对于数据层的编写,尽量使用存储过程来代替基本的SQL语句?
回答:不是,要根据项目具体情况来看。譬如,如果项目需要一直到其他数据库下运行编写过多存储过程在移植过程中会比较麻烦。问题3:不知道大家在开发中,对数据层操作数据库代码的编写有什么好的习惯?
回答:通编码规范,呵呵。
2.至于性能方面,我觉得基本差不多,感觉执行单独sql的时候更快些。
如果我要修改一个表中某些记录的一个字段sql:update XXX set xxx=1111 where id=id1;
如果采用存储过程的话,如果执行多次,那么可能循环要调用多次存储过程。
然而你在程序中完全可以使用循环先组装出一条sql:update XXX set xxx=1111 where id in(id1,id2,id3.....);然后统一执行,这样效率就会大大的提高!