jsp执行mysql带参数的存储过程

<% @ page contentType = " text/html; charset=gb2312 "   %>
<% @ page language = " java "   %>
<% @ page  import = " com.mysql.jdbc.Driver "   %>
<% @ page  import = " java.sql.* "   %>
<%
// 驱动程序名
String driverName = " com.mysql.jdbc.Driver " ;
// 数据库用户名
String userName = " root " ;
// 密码
String userPasswd = " 123 " ;
// 数据库名
String dbName = " stock " ;
// 表名
String tableName = " users " ;
// 联结字符串
String url = " jdbc:mysql://localhost/ " + dbName + " ?user= " + userName + " &password= " + userPasswd;
Class.forName(
" com.mysql.jdbc.Driver " ).newInstance();
Connection conn
= DriverManager.getConnection(url);
String WhereCondition
= " age<=30 " ;
String OrderByExpress
= " id Desc " ;
// 调用存储过程的方法,并且传递了参数,不传参数就 call GetUsersDynamic可以了
CallableStatement cstmt = conn.prepareCall( " {call GetUsersDynamic(?,?)} " );
cstmt.setString(
1 ,WhereCondition);
cstmt.setString(
2 ,OrderByExpress);
ResultSet rs 
=  cstmt.executeQuery(); 

// 获得数据结果集合
ResultSetMetaData rsmd  =  rs.getMetaData();
// 确定数据集的列数,亦字段数
int  numColumns = rsmd.getColumnCount();
//  输出每一个列名
out.print( " <table border=1><tr> " );
for ( int  i = 1 ;i <= numColumns;i ++ ) // 注意下标从1开始的 
{
    out.print(
"<td>"+rsmd.getColumnName(i)+"</td>");
}

out.print(
" </tr> " );
while (rs.next()) 
{
out.print(
"<tr>");
    
for(int i=1;i<=numColumns;i++)
    
{
    
//输出数据
    out.print("<td>"+rs.getString(i)+"</td>");
    }

out.print(
"</tr>"); 
}
 
out.print(
" </table> " );

out.print(
" 数据库操作成功,恭喜你 " ); 
rs.close(); 
cstmt.close(); 
conn.close(); 

%>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值