程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> jsp調用SQL server 2000存儲過程-初學

jsp調用SQL server 2000存儲過程-初學

編輯:關於SqlServer

這些天頭頭常在唠叨,存儲過程的重要。由於手上的任務已經完成(頭頭沒有反饋要求修改,嘿嘿),時間充裕, 便投入存儲過程的學習。今天做了一個超級簡單的例子,測試成功 :)

新建表:


CREATE TABLE [mytest] (
    [id] [int] NOT NULL ,
    [name] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
    [phone] [varchar] (13) COLLATE Chinese_PRC_CI_AS NULL ,
    [addr] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL 
) ON [PRIMARY]
GO
新建存儲過程:


create procedure get_info @name varchar(50),@phone varchar(13),@addr varchar(50)
as 
select * 
from mytest 
go
JSP代碼:


<%@ page language="java" pageEncoding="UTF-8" import="Java.sql.*,tools.Database"%>

<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="Html" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-tiles" prefix="tiles" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD Html 4.01 Transitional//EN">
<html:Html locale="true">
  <head>
    <Html:base />
    
    <title>proc_test.JSP</title>


    
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyWord3">
    <meta http-equiv="description" content="This is my page">
  </head>
  
  <body>
    This is a test for procedure. <br>
    <% ;   
        String username="sa";
        String passWord = "123456";
        String url = "jdbc:microsoft:sqlserver://192.168.1.112:1433;DatabaseName=test";
        Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
        Connection conn = DriverManager.getConnection(url, username, passWord);
        
        String sql = "execute get_info";
            //創建一個CallableStatement 對象來調用數據庫存儲過程
        //CallableStatement comm = conn.prepareCall(sql);
        Statement stmt = conn.createStatement();
        
        ResultSet res = stmt.executeQuery(sql);
        while(res.next())...{
    %>
   <table>
        <tr>
            <td><%=res.getString("id")%></td>
            <td><%=res.getString("name")%></td>
            <td><%=res.getString("phone")%></td>
            <td><%=res.getString("addr")%></td>
        </tr>
    </table>
    <%}
    res.close();
    stmt.close();
    conn.close();
    %>
  </body>
</html:Html>



執行結果:
This is a test for procedure.

1 cc 1234 cs 2 dd 4567 bj 3 ee 1245 ca
總結:
使用存儲過程還可做更多的事,現在已經會應用,所以再復雜也不怕了:P

有一個疑惑:
//CallableStatement comm = conn.prepareCall(sql); 這個不創建也可以執行,好像是因為sql已經執行了的樣子

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved