我有一個sql文件,如下所示(僞代碼)。使用Callable語句獲取結果集
Begin
Create Table1
Create Table2
Insert values into Table1 by joining 20 different tables
Insert values into Table2 by joining 16 different tables
End
當我在MS Sql服務器中執行此操作時,我得到了具有多列的輸出。我在我的計算機中的物理位置存儲了相同的SQL查詢,並試圖獲取Java中的ResultSet。這是我正在嘗試的。
Connection conn = null;
Class.forName(driver);
conn = DriverManager.getConnection(dbUrl + dbName, userName,password);
FileInputStream input = new FileInputStream("E:\\Query2.sql");
CallableStatement cs = conn.prepareCall(IOUtils.toString(input));
cs.execute();
ResultSet rs = cs.getResultSet();
System.out.println("Done" + rs);
當我運行這個,我得到的結果設置爲空,我哪裏去錯了?請幫忙。
你從不檢查'cs.execute()'的值。請閱讀解釋['execute()']返回值含義的Javadoc(http://docs.oracle.com/javase/7/docs/api/java/sql/PreparedStatement.html#execute() ),['getResultSet'](http://docs.oracle.com/javase/7/docs/api/java/sql/Statement.html#getResultSet())和['getMoreResults'](http:// docs .oracle.com/JavaSE的/ 7 /文檔/ API/JAVA/SQL/Statement.html#getMoreResults可())。最初的結果很可能是更新計數而不是結果集。 –