问个问题:我写jsp有必要用存储过程吗?

dgnApo 2003-06-30 10:30:11
还有,如何测试我写的存储过程是否正确?(sql server)
...全文
27 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
dgnApo 2003-07-12
  • 打赏
  • 举报
回复
分数可能分得不是很公正,不过谢谢各位关注我的帖子!
zhxx 2003-07-07
  • 打赏
  • 举报
回复
复杂操作还是有必要的,比如需要满足多个条件才能添加,删除,修改,如果用存储
过程要方便一些
gucs 2003-07-07
  • 打赏
  • 举报
回复
有必要是不容质颖的
crazymens 2003-07-07
  • 打赏
  • 举报
回复
搂主的问题问的不好,如果说是jsp页面中调用存储过程,这样不好,最好把它放到bean中去。
如果问是否可以再jsp的工程中使用存储过程,那回答是肯定的。好处主要是再性能上,这是任何模式不能取代的
poolnet 2003-07-06
  • 打赏
  • 举报
回复
一些企业系统中的计算规则因随时间变化而变化,所以许多计算规则是放在存储过程中,而非程序里,这对于C/S结构的系统来说是非常有利的(因为很多规则变化不是通过几个参数设置就可实现的).对于N层结构,因其许多规则是封装的,采用存储过程也是有必要的
poolnet 2003-07-06
  • 打赏
  • 举报
回复
很多大型项目的数据表操作是不允许你直接操作的,大都通过存储过程的执行!!!
zhoukai1980 2003-07-06
  • 打赏
  • 举报
回复
有EJB,为什么还要用存储过程,他不通用的,万一客户想改用其他的rdbms怎么办?

程序全部的重写,j2ee中不是有实体bean吗?

建议你用它,很简单的。而且是主流应用,早晚都地掌握。

但如果是简单的应用,而且后台数据库固定不变,存储过程还是可以用的。
调用方法也很简单。
好像上面已经有人叫你怎么做了,我在这就不抢生意了
祝你好运·!!
醉马不肖 2003-07-06
  • 打赏
  • 举报
回复
复杂的数据库处理,用存储过程是有必要的
dgnApo 2003-07-06
  • 打赏
  • 举报
回复
up~
编程指南针 2003-06-30
  • 打赏
  • 举报
回复
写它干吗,用不着
dgnApo 2003-06-30
  • 打赏
  • 举报
回复
我用的是jsp + javabean + 连接池(tomcat4)
所以就感到很困惑啊,因为我想把这些和存储过程整合起来用,但又不知道如何写?
zkjbeyond 2003-06-30
  • 打赏
  • 举报
回复
不会吧。既然要用JSP,不用JAVABEAN,EJB。数据流量也不大吧,项目要求也不高吧。用他干吗。
zeeler 2003-06-30
  • 打赏
  • 举报
回复
对不起,没写完就不小心发上去了,续:
}
然后将上面的Java程序加载到Oracle数据库中:
loadjava -user 用户名/密码@服务名 -o -v -f -r [路径]MyTestPro.java
建立存储过程:
create or replace procedure insert_agt (
id varchar2,
name varchar2)
as language java name 'MyTestPro.insert_agt(java.lang.String,java.lang.String)';

最后就是开头讲的调用了。
zeeler 2003-06-30
  • 打赏
  • 举报
回复
当然要调用了,对于大的项目,把所有的可以在数据库中处理的逻辑部分都放在JSP中简直是很愚蠢的做法。大中型数据库(例如Oracle,SQL Server,DB2)本身的性能很好,内置函数比较丰富,能处理很多问题。所以,使用存储过程是提高程序性能的不错的选择!JSP也不例外!
调用方法简单说明如下:
有个存储过程名为insert_agt
......
CallableStatement cstmt = conn.prepareCall("{call insert_agt(?,?)}");
cstmt.setString(1,"A122");
cstmt.setString(2,"Bill Gates");
cstmt.execute();
......

当然了,存储过程可以用Java来写:
import java.sql.*;
import java.io.*;
import oracle.jdbc.driver.*;
public class MyTestPro{
public static void insert_agt (String id, String name) throws SQLException {
/* 建立到数据库的缺省连接 */
Connection conn = new OracleDriver().defaultConnection();
/* 构造动态SQL语句 */
String sql = "INSERT INTO students(id,name) VALUES (?,?)";
try {
PreparedStatement pstmt = conn.prepareStatement(sql);
/* 设置动态SQL参数值 */
pstmt.setString(1, id);
pstmt.setString(2, name);
/* 执行动态SQL语句 */
pstmt.executeUpdate();
/* 关闭动态SQL语句 */
pstmt.close();
}
catch (SQLException e) { }
}



swj_20 2003-06-30
  • 打赏
  • 举报
回复
看你自己了,喜欢就用,不喜欢不用,
yhjvc 2003-06-30
  • 打赏
  • 举报
回复
调用procduct 可以减少网络流量,提高综合运算效率。
多表查询的时候,效果会更好!
zanpo 2003-06-30
  • 打赏
  • 举报
回复
为什么不能调用???

小弟也很关注呀!!!
dgnApo 2003-06-30
  • 打赏
  • 举报
回复
说说理由啊,我不明白!
煜知搬砖者 2003-06-30
  • 打赏
  • 举报
回复
你找K啊,jsp里面调用存储过程,呵呵!

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧