解决方案 »
- ejb学习
- 在spring中有没有类似struts2 preparable 预执行的功能
- 高手,救命啊!!TOMCAT 问题
- struts运行出错(基础问题)
- struts 中 validation.xml
- 关于struts2中的值栈问题
- class.forName()没有返回值的问题
- ★ Hibernate 的实际应用的效果好还是不好?【做过Hibernate的项目的高手请进】
- 为什么我的Struts不能运行?
- 在resin下怎样使用servlet类??
- IIS + tomcat 运行struts 项目
- Exception sending context initialized event to listener instance of class org.sp
这样的话与前面的方法相比,只打开一次数据库连接,而且存储过程只需要一次编译,速度也还行?这个说法是正确的,你的程序和数据库的交互只是一次,然后的判断更新则在数据库中执行存储过程来解决。由于不需要把数据传回你的程序,所以速度上肯定会快。但存储过程只需要编译一次,并不是每次连接后使用都需要重新编译。 只要不修改存储过程的代码,那数据库系统就不会重新编译它。还有就是当大家在处理业务逻辑时,是大多用的存储过程实现呢,还是通过代码逻辑多次调用数据库不同表之间的查询方法实现呢?
这个要看个人习惯和开发项目组的要求。
各有优缺点。 用存储过程实现,显然程序上简单,速度上会快。
但缺点也很明显,
1)就是不同的数据库的存储过程的语言风格,显然不统一,当从SQL SERVER移植到ORACLE的时候你需要重写所有存储过程。
2)开发一个项目,需要有人写数据库存储过程,有人写程序代码,毕竟找一个又懂ORACLE PL/SQL又写C#代码的毕竟比仅会写C#要难一些。
3)设计的原则上,数据库应该仅起数据存储层的作用,不应该去参与业务逻辑层。