很久没有写jdbc调用存储过程,都忘记了,于是查找资料,看来两页google,未找到不设定返回参数调用存储过程返回数据集
的正确方法。
试了一下,方法如下(大致表意,主键、代码等都没有进行细化):
---------- 建表------------------
CREATE TABLE tbl_user (
id integer not null,
name varchar(32) not null
)
---------- 建存储过程------------------
CREATE PRODUCE pro_user
AS
BEGIN
SELECT * FROM tbl_user
END
---------- jdbc查询------------------
Connection conn = null;
CallableStatement call = null;
ResultSet rs = null;
String className = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String url = "jdbc:microsoft:sqlserver://192.168.x.x:1433;DatabaseName=xxxxxx";
String name = "sa";
String password = "xx";
try {
Class.forName(className);
conn = DriverManager.getConnection(url,name,password);
// call = conn.prepareCall("{?=call pro_user()}");
// call.registerOutParameter(1, Types.VARCHAR);
// 调用不带参数的存储过程
call = conn.prepareCall("{call pro_user()}");
// 调用带参数的存储过程
//call = conn.prepareCall("{call pro_user('参数1','...')}");
rs = call.executeQuery();
while(rs.next()){
System.out.println(rs.getString("id") + ": " + rs.getString("name"));
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if(rs != null)
rs.close();
if(call != null)
call.close();
if(conn != null)
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
分享到:
相关推荐
如果存储过程返回结果集,可以像处理`ResultSet`一样处理它们。 需要注意的是,如果存储过程有结果集返回,调用格式应为`{? = call 过程名[(?, ?, ...)]}`,其中`?`是结果集的占位符。在Java中,可以使用`...
总的来说,Java通过JDBC调用SQL Server存储过程涉及连接数据库、创建CallableStatement对象、设置参数、执行存储过程以及处理结果。了解这些步骤,将使你能够灵活地在Java应用程序中集成和利用SQL Server的存储过程...
压缩文件 "mssql2000-jdbc" 可能包含的内容可能有:JDBC驱动的jar文件、示例代码、连接配置示例、用户手册或API文档等,帮助开发者更好地理解和使用JDBC连接SQL Server 2000。对于初学者来说,这些资源可以帮助他们...
如果存储过程返回结果集,你可以使用 `cs.getResultSet()` 来获取,并通过迭代遍历结果集进行进一步的处理。对于复杂的数据操作,可能需要使用 `ResultSetMetaData` 来获取列的信息。 在实际开发中,通常会将这些...
**JDBC MSSQL驱动详解** Java Database Connectivity (JDBC) 是Java编程语言中用于与数据库交互的一组标准接口和类。它允许Java开发者通过编写Java代码来访问和操作各种类型的数据库,包括Microsoft SQL Server。...
使用 JDBC 驱动程序调用不带参数的存储过程时,必须使用 call SQL 转义序列。不带参数的 call 转义序列的语法如下所示: {call procedure-name} 作为实例,在 SQL Server 2005 AdventureWorks 示例数据库中...
本示例主要讲解如何利用Java的SWING库构建图形用户界面(GUI),通过JDBC(Java Database Connectivity)与Microsoft SQL Server数据库进行交互,实现数据的基本增删改操作。下面将详细阐述这一过程。 首先,SWING...
在IT行业中,数据库操作是应用程序开发的关键环节,而Ibatis作为一个优秀的持久层框架,与Microsoft SQL Server(MSSQL)数据库结合,可以高效地实现数据的增、删、改、查(CRUD)操作,并且支持存储过程的调用。...
Java连接Microsoft SQL Server(MSSQL)主要依赖于特定的驱动程序,通常称为JDBC驱动。JDBC(Java Database Connectivity)是Java平台中用于与数据库交互的一种标准接口。在这个场景中,我们需要的是一个支持MSSQL的...
SQL Server 2000是一款关系型数据库管理系统,广泛应用于企业级数据存储和管理,而JDBC驱动则使得开发者能够通过编写Java代码来访问和操作这个数据库。 在提供的压缩包中,有两个文件:`setup.exe`和`install.txt`...
对于存储过程的调用,则需使用`CallableStatement`: ```java String strSQL = "{call procedure_name(?, ?, ?)}"; CallableStatement cstmt = con.prepareCall(strSQL); cstmt.setString(1, "value1"); cstmt.set...
SQL Server JDBC驱动3.0版本相比于早期版本可能引入了性能优化、新的功能特性和对SQL Server 2008特定功能的支持,比如对XML数据类型、存储过程、事务处理等方面的改进。对于开发与SQL Server 2008数据库交互的Java...
此外,MSSQL JDBC驱动还支持高级特性,如批量操作、存储过程调用、事务控制、游标处理等。开发者可以根据实际需求,利用这些特性来优化数据库交互,提高应用程序的性能和稳定性。 总结起来,MSSQL驱动程序包是Java...
6. **CallableStatement**:用于调用数据库的存储过程。 7. **结果集ResultSet**:执行查询后返回的结果集,可以遍历并处理查询结果。 8. **事务处理**:JDBC支持事务控制,如`Connection`的`commit()`和`rollback...
除了基本的数据库操作,MSSQL还支持高级特性如存储过程、触发器、视图、索引、分区表等,这些都可以通过SQL语句进行定义和调用。同时,性能优化也是MSSQL中的重要话题,包括查询优化、索引优化、统计信息更新等。 ...
1. **JDBC驱动**: JDBC是Java中用于访问数据库的标准接口,它定义了Java应用程序如何调用SQL命令。对于MSSQL,我们需要一个特定的JDBC驱动,例如微软提供的JDBC驱动(Microsoft JDBC Driver for SQL Server),它有...
6. **处理结果集**: 对于查询操作,`executeQuery()`返回一个`ResultSet`,可以通过迭代遍历其中的数据。记住关闭所有打开的资源,包括`ResultSet`、`Statement`和`Connection`。 7. **安全考虑**: 直接在客户端...
SQL Server 2005 JDBC驱动还支持高级特性,如批处理操作、存储过程调用、游标、事务控制以及错误和警告处理等。这些特性使得Java开发者能够充分利用SQL Server 2005的功能,同时保持跨平台的灵活性。 在实际应用中...
标题中的“excel+jdbc.rar”表明这是一个关于使用Java(标签为“java”)处理Excel数据并利用JDBC(Java Database Connectivity)与SQL Server 2012进行交互的压缩文件。接下来,我将详细讲解Excel操作和JDBC连接的...
在IT领域,数据库管理是存储和管理信息的核心部分,而MSSQL Server作为一款广泛应用的关系型数据库管理系统,提供了高效、安全的数据存储和处理能力。在本主题中,我们将深入探讨如何与MSSQL2000建立连接,实现数据...