从Java应用程序和存储过程MSSQL连接

时间:2013-09-26 09:36:39

标签: java sql-server-2008 stored-procedures parameters

我在SQL Sever中有存储过程,它有一些参数。我想从组合框(在java应用程序中)中给出参数的值。我已经阅读了这段代码(见下文)

public static void executeSprocInParams(Connection con) {
   try {
      PreparedStatement pstmt = con.prepareStatement("{call dbo.uspGetEmployeeManagers(?)}");
      pstmt.setInt(1, 50);
      ResultSet rs = pstmt.executeQuery();

      while (rs.next()) {
         System.out.println("EMPLOYEE:");
         System.out.println(rs.getString("LastName") + ", " + rs.getString("FirstName"));
         System.out.println("MANAGER:");
         System.out.println(rs.getString("ManagerLastName") + ", " + rs.getString("ManagerFirstName"));
         System.out.println();
      }
      rs.close();
      pstmt.close();
   }

   catch (Exception e) {
      e.printStackTrace();
    }
}

但我没有理解。是否有任何教程可以像我一样给我一些例子?感谢您的回复

2 个答案:

答案 0 :(得分:0)

PreparedStatement pstmt = con.prepareStatement("{call dbo.uspGetEmployeeManagers(?)}");
  pstmt.setInt(1, 50);
  ResultSet rs = pstmt.executeQuery();

1)第1行使用您的存储过程创建一个prepare语句对象。的?是存储过程的输入参数的占位符 2)第2行将输入参数设置为存储过程 3)executeQuery通过提供输入来执行存储的proc,并将输出作为结果集。

while (rs.next()) {
     System.out.println("EMPLOYEE:");
     System.out.println(rs.getString("LastName") + ", " + rs.getString("FirstName"));
     System.out.println("MANAGER:");
     System.out.println(rs.getString("ManagerLastName") + ", " + rs.getString("ManagerFirstName"));
     System.out.println();
  }
  rs.close();
  pstmt.close();

上面的行迭代结果集并打印每条记录

答案 1 :(得分:0)

public static void executeSprocInParams(Connection con) {
   try {
      PreparedStatement pstmt = con.prepareStatement("{call dbo.uspGetEmployeeManagers(?)}");//Creating a prepared statement with the string to execute your procedure.
      pstmt.setInt(1, 50);//This is to set the parameter to the place holder '?'
      ResultSet rs = pstmt.executeQuery();//This is to execute your procedure and put the result into a table like set

  while (rs.next()) {//To check if there are any values in the set, if so the print those values
     System.out.println("EMPLOYEE:");
     System.out.println(rs.getString("LastName") + ", " + rs.getString("FirstName"));
     System.out.println("MANAGER:");
     System.out.println(rs.getString("ManagerLastName") + ", " + rs.getString("ManagerFirstName"));
     System.out.println();
  }
  rs.close();//close the set
  pstmt.close();//close the statement
   }

   catch (Exception e) {
      e.printStackTrace();
    }
}