Java连接SQL Server :
使用存储过程换回输出参数、还回值、还回结果集
import java.sql.*;
import java.sql.CallableStatement;
import java.sql.ResultSet;
public class DBlink {
public static void main(String args[]) {
String connectionUrl = "jdbc:sqlserver://localhost:1433;" + "databaseName=DBlink;integratedSecurity=true;";
String url = "jdbc:sqlserver://127.0.0.1:1433;databaseName=pubs;user=******;password=*****";//sa身份连接
Connection con = null;
CallableStatement cs=null;
ResultSet rs = null;
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
con = DriverManager.getConnection(url);
String SQL = "{?=call find_good_name_num(?,?,?)}";
String f_name="M";
String l_name="G";
cs=con.prepareCall(SQL);
cs.registerOutParameter(1,Types.INTEGER);
cs.setString(2,f_name);
cs.setString(3,l_name);
cs.registerOutParameter(4,Types.INTEGER);
boolean bl=cs.execute();
while(bl){
rs=cs.getResultSet();
System.out.println("调用存储结构的结果集:");
String resultHead="au_id,au_lname,au_fname,phone,address,city,state,city,state,zip,contract";
System.out.println(resultHead);
while(rs.next()){
String result=rs.getString("au_id")+" "+rs.getString("au_lname")+" "+
rs.getString("au_fname")+" "+rs.getString("phone")+" "
+rs.getString("address")+" "+rs.getString("city")+" "
+rs.getString("state")+" "+rs.getString("zip")+" "+
rs.getString("contract");
System.out.println(result);
}
bl=cs.getMoreResults();
}
int num=cs.getInt(4);
System.out.println("输出的参数是:"+num);
int result=cs.getInt(1);
System.out.println("存储过程还回的结果是:"+result);
}
catch (Exception e) {
e.printStackTrace();
} finally {
if (rs != null)
try {
rs.close();
} catch (Exception e) {
e.printStackTrace();
}
if (con != null)
try {
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}