在MS SQL server2000中创建和调用存储过程
### 在MS SQL Server 2000中创建和调用存储过程 #### 一、概述 存储过程是在数据库中预编译并存储的一组SQL语句,可以接受输入参数、返回输出参数、返回多行结果集或返回一个整数值。在MS SQL Server 2000中创建和调用存储过程是非常常见的操作,可以提高代码重用性、增强安全性以及提高应用程序性能。 #### 二、创建存储过程 存储过程的创建通常涉及以下几个步骤: 1. **连接到数据库**: - 首先需要使用JDBC驱动来建立与SQL Server 2000数据库的连接。 - JDBC URL格式为:`jdbc:microsoft:sqlserver://服务器名:端口号;DatabaseName=数据库名` - 示例中的URL为:`jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=testjdbc` 2. **加载驱动**: - 使用`Class.forName()`方法加载JDBC驱动。 - 示例中使用的驱动为`com.microsoft.jdbc.sqlserver.SQLServerDriver`。 3. **创建存储过程**: - 使用`Statement`对象执行SQL命令创建存储过程。 - 创建一个名为`INSERT_NAME_EMAIL`的存储过程,该存储过程接受两个参数`@NAME`和`@Email`,并将它们插入到`myBook`表中。 - 示例中的存储过程创建语句如下: ```sql CREATE PROCEDURE INSERT_NAME_EMAIL @NAME VARCHAR(30), @Email VARCHAR(50) AS INSERT INTO myBook (name, Email) VALUES (@NAME, @Email); ``` #### 三、调用存储过程 1. **准备调用**: - 使用`Connection`对象的`prepareCall()`方法来创建`CallableStatement`对象,用于调用存储过程。 - 调用语法为`{call 存储过程名称(参数列表)}`。 - 示例中使用了`conn.prepareCall("{call INSERT_NAME_EMAIL(?,?)}")`。 2. **设置参数值**: - 对于每个输入参数,使用`setXXX()`方法设置其值。 - 示例中设置了`setName()`和`setString()`方法分别为`CHENWEIBO`和`zz3zcwb@sina.com`。 3. **执行调用**: - 使用`executeUpdate()`方法执行存储过程,插入数据到表中。 - 示例中通过`cs.executeUpdate()`执行了存储过程。 4. **查询结果**: - 使用`Statement`对象执行SQL查询命令获取数据。 - 示例中使用了`stmt.executeQuery("select * from myBook")`来查询所有记录。 5. **处理结果集**: - 通过循环遍历`ResultSet`对象,可以获取每一条记录的信息。 - 示例中使用了`while(rs.next())`循环来打印出每一行的`name`和`Email`字段。 #### 四、注意事项 - **错误处理**: - 示例中使用了异常捕获机制来处理可能出现的`ClassNotFoundException`和`SQLException`异常,并将异常信息输出到页面上。 - 在实际应用中,应当更加细致地处理这些异常,避免向用户暴露敏感信息。 - **资源管理**: - 代码示例中未显示关闭`Connection`、`Statement`等资源的操作,这可能会导致资源泄露问题。在实际开发中,应该确保所有打开的资源都得到妥善关闭。 #### 五、总结 通过上述步骤,我们可以有效地在MS SQL Server 2000中创建和调用存储过程,实现对数据库的有效管理和操作。需要注意的是,随着技术的发展,SQL Server版本也在不断更新,一些特性可能在新版本中有所变化,因此,在具体实践中还需要根据所使用的SQL Server版本进行相应的调整。
日期:2004-06-04
请将msbase.jar,mssqlserver.jar,msutil.jar三个文件放入Tomcat 5\common\lib目录下或你的应用程序的WEB-INF\lib下,然后在MS SQL server2000中创建数据库testjddbc和表myBook。
--%>
<%@ page contentType="text/html; charset=GB2312" %>
<%@ page language="java" import="java.sql.*" %>
<%
String url =
"jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=testjdbc";
String user = "sa";
String password = "";
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement();
stmt = conn.createStatement();
//创建存储过程只能运行一次
/* String createProc = "CREATE PROCEDURE INSERT_NANE_EMAIL "+
"@NAME VARCHAR(30),@Email VARCHAR(50) "+
"AS INSERT INTO myBook"+
"(name, Email) "+
"VALUES "+
"(@NAME,@Email);";
stmt.executeUpdate(createProc);
- szkenny2017-10-17还可以,语法基本没有变过 其实没啥用
- 金素妍2015-09-18还可以,语法基本没有变过
- 粉丝: 0
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助