数据库作业3-3

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();
                }
        }
    }
}

猜你喜欢

转载自blog.csdn.net/qq_36381573/article/details/82975554
3-3