java连接SqlServer数据库调用存储过程代码

2014-12-16 06:30:01 阅读( 340 )

2499人 收藏本页

标签:Java面试题

下面代码演示java如何连接sql server调用存储过程。

要调用存储过程需要使用Connection类的prepareCall方法创建CallableStatement类实例。

第一个例子调用名字为generateID的存储过程,该存储过程需要一个字符串类型的参数。设置参数的值需要使用setString()方法。因为此存储过程有返回值,所以我们需要调用executeQuery()方法,此方法返回ResultSet对象。

Connection con = null;
CallableStatement proc_stmt = null;
ResultSet rs = null;

try {

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

con = DriverManager.getConnection("jdbc:sqlserver://MYSERVER;databaseName=MYDATABASE", "USERID", "PASSWORD");

proc_stmt = con.prepareCall("{ call generateID(?) }");

proc_stmt.setString(1, "employee");
rs = proc_stmt.executeQuery();

if (rs.next()) {
int employeeId = rs.getInt(1);
System.out.println("Generated employeeId: " + employeeId);
} else {
System.out.println("Stored procedure couldn't generate new Id");
}
} catch (ClassNotFoundException ex) {
ex.printStackTrace();
} catch (SQLException ex) {
ex.printStackTrace();
} finally {

try {

rs.close();
proc_stmt.close();
con.close();

} catch (SQLException ex) {
ex.printStackTrace();
}

}
//outofmemory.cn分享代码

【第二个例子比第一个例子更简单一些,调用了一个没有参数的存储过程】

Connection con = null;
CallableStatement proc_stmt = null;

try {

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
con = DriverManager.getConnection("jdbc:sqlserver://MYSERVER;databaseName=MYDATABASE", "USERID", "PASSWORD");
proc_stmt = con.prepareCall("{ call someStoredProc() }");

proc_stmt.executeQuery();

} catch (ClassNotFoundException ex) {
ex.printStackTrace();
} catch (SQLException ex) {
ex.printStackTrace();
} finally {

try {

proc_stmt.close();
con.close();

} catch (SQLException ex) {
ex.printStackTrace();
}

}
//outofmemory.cn分享代码

下一篇:分享:新浪RSS解析,比较老的一个话题啦

上一篇:使用IMAP协议接收并解析电子邮件

亲~ 如果您有更好的答案 可在评论区发表您独到的见解。

您想查看更多的信息: 面试题