jsp调用sql server 2000存储过程的问题。

javagxc 2009-07-08 03:05:33
我现在写了个存储过程:
CREATE PROCEDURE spWWWClear
@YearMonth varchar(8) --费用年月

AS
declare @Ynum int,@Wnum int

if isnull(@YearMonth,'')=''
set @YearMonth=cast(year(getdate())*100+month(getdate()) as varchar(8))

select isnull(clTotal1,0)+isnull(clTotal2,0)+isnull(clTotal3,0) as Total,isnull(clTotal1,0) clTotal1,isnull(clTotal2,0) clTotal2,isnull(clTotal3,0) clTotal3 into #temp1 from ClearRate where clYearMonth=cast(@YearMonth as int) and clPayed=0

select isnull(clTotal1,0)+isnull(clTotal2,0)+isnull(clTotal3,0) as Total,isnull(clTotal1,0) clTotal1,isnull(clTotal2,0) clTotal2,isnull(clTotal3,0) clTotal3 into #temp2 from ClearRate where clYearMonth=cast(@YearMonth as int) and clPayed=1

select @Ynum=count(*)from #temp1
select @Wnum=count(*)from #temp2

select '未收' as 状态,@Ynum 户数,sum(clTotal1) 费用一,sum(clTotal2) as 费用二,sum(clTotal3) as 其他费,sum(Total) as 总金额 from #temp1
union all
select '已收' as 状态, @Wnum 户数,sum(clTotal1) 费用一,sum(clTotal2) as 费用二,sum(clTotal3)as 其他费,sum(Total) as 总金额 from #temp2
GO


我想在jsp中调用这个存储过程,该怎么调用呢?

想在jsp中显示下面的内容:
状态 户数 费用一 费用二 其他费 总金额
未收 5190 527930.2000 731029.0000 .0000 1258959.2000
已收 1413 96211.2000 149832.0000 .0000 246043.2000
...全文
221 46 打赏 收藏 转发到动态 举报
写回复
用AI写文章
46 条回复
切换为时间正序
请发表友善的回复…
发表回复
三少爷 2010-12-15
  • 打赏
  • 举报
回复
试试看
三少爷 2010-12-15
  • 打赏
  • 举报
回复
...
sea_hawk 2010-07-07
  • 打赏
  • 举报
回复
hao111111111111111111111111
zhaoyunrui 2009-08-02
  • 打赏
  • 举报
回复
定下啊。。。。我要的就是这个
javagxc 2009-07-14
  • 打赏
  • 举报
回复
用35楼的方法解决了,谢谢大家,结贴给分!
jklot66 2009-07-13
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 sportli 的回复:]
Connection conn = DatabaseConnection.getConnection(); // 获得数据库连接
CallableStatement proc =conn.prepareCall("{(?,?,?,?,?,?)=call spNewbumf(?)}");//调用存储过程
proc.registerOutParameter(1,Types.INTEGER);//传出参数
proc.registerOutParameter(2,Types.INTEGER);
proc.registerOutParameter(3,Types.INTEGER);
proc.registerOutParameter(4,Types.INTEGER);
proc.registerOutParameter(5,Typ…
[/Quote]
对这个就是你2楼要问的答案,1,2,3,4,5是你储存过程中的输出的参数的位置,后面的Types表示类型。
shuangfang 2009-07-13
  • 打赏
  • 举报
回复
学习中了,
yooyoozoo 2009-07-13
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 withwind_ 的回复:]
调用代码:


Java code
public ResultSet getData(String queryString) {
ResultSet rs = null;
try {
cst = conn.prepareCall(queryString);

cst.executeQuery();
return rs = cst.getResultSet();
} catch (Exception ex) {
System.out.print("调用存储过程时发生错误!:" + ex.toString());
return rs;

[/Quote]


这个好像可以的吧!
b47248054 2009-07-12
  • 打赏
  • 举报
回复
调用sqlserver 存储过程。直接拿rs就行,和执行sql语句一样,不用call
例如:
String sql = "select * from user";
Connection conn = DatabaseConnection.getConnection(); // 获得数据库连接
stmt = conn.prepareStatement(sql);
rs = stmt.executeQuery();


以上没问题吧,如果是调用存储过程
String sql = "spWWWClear 200812";
Connection conn = DatabaseConnection.getConnection(); // 获得数据库连接
stmt = conn.prepareStatement(sql);
rs = stmt.executeQuery();

这样就OK了
money8899 2009-07-11
  • 打赏
  • 举报
回复
看贴必回~!
money8899 2009-07-11
  • 打赏
  • 举报
回复
建议楼主去它的官方网站上看看....
MJunnnn 2009-07-11
  • 打赏
  • 举报
回复
我也想知道用JSP如何操作sql中各种语句...
sportli 2009-07-11
  • 打赏
  • 举报
回复
Connection conn = DatabaseConnection.getConnection(); // 获得数据库连接
CallableStatement proc =conn.prepareCall("{(?,?,?,?,?,?)=call spNewbumf(?)}");//调用存储过程
proc.registerOutParameter(1,Types.INTEGER);//传出参数
proc.registerOutParameter(2,Types.INTEGER);
proc.registerOutParameter(3,Types.INTEGER);
proc.registerOutParameter(4,Types.INTEGER);
proc.registerOutParameter(5,Types.INTEGER);
proc.registerOutParameter(6,Types.INTEGER);
proc.setString(7,YearMonth);
//传入参数
proc.execute();//执行


1、2、3、4、5、6、7代表conn.prepareCall("{(?,?,?,?,?,?)=call spNewbumf(?)}");里面的第几个?
想在jsp中显示的话首先你要将得到的结果集封装成一个个对应的对象成为一个list,然后放在request中,在jsp 中可以通过struts标签或el表达式得到。
jokerdx 2009-07-11
  • 打赏
  • 举报
回复
帮顶~~~~~~~~~~~
New_Mao_Er 2009-07-11
  • 打赏
  • 举报
回复
我觉得两个点。
1.怎么样将结果集拿出来。这里不管是放到哪儿显示,不重要。关键就是将数据拿出来。
并成功的封装成一个集合。
2.页面显示,显示只要你在作用域中已经将 第一步的集合传过去了,还怕不能显示吗
灵度创想 2009-07-11
  • 打赏
  • 举报
回复
存储过程在jsp中没试过
帮顶
yubangqi 2009-07-11
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 duanjingyu 的回复:]
学习中....
是不是回帖就给加分?没分了,不能下载资料
[/Quote]
合金猫 2009-07-11
  • 打赏
  • 举报
回复
帮顶!
yangxuebao123 2009-07-10
  • 打赏
  • 举报
回复
在JSP页面上用for循环,或则用标签显示。 调用存储过程,得到结果集。
List list = new ArrayList();
用while(rs.next){
Module m = new Module();
m.setMm( rs.getString("名称"));
list.add(m);
}


页面
<%
List list = request.getSession().getAttribute("list");
for(Iterator it=list.iterator();it.hasNext();){
Module m = (Module)it.next;
%>
${m.mm}
<%
}
%>

<c:foreach item="><c:foreach>
fanyuanwaifdl 2009-07-10
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 withwind_ 的回复:]
调用代码:


Java code
public ResultSet getData(String queryString) {
ResultSet rs = null;
try {
cst = conn.prepareCall(queryString);

cst.executeQuery();
return rs = cst.getResultSet();
} catch (Exception ex) {
System.out.print("调用存储过程时发生错误!:" + ex.toString());
return rs;

[/Quote]`
加载更多回复(23)

67,517

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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