2017-04-05 84 views
0

我正在使用preparedStmts和resultSets在賦值時第一次運行此程序時,它會運行到完成,但它不會將任何內容添加到sql表中。我們必須一起使用這兩者,並且我已經搜索了互聯網,試圖找出如何使這個工作,但我仍然有問題。任何幫助將是偉大的,謝謝。PreparedStatments和ResultSet JDBC

<% 
int result = 0; 
Connection conn = null; 
PreparedStatement stmt = null; 
ResultSet rs = null; 
try { 
    conn = JdbcManager.getConnection(); 
    String sqlcmd = "select * from APP.STOCK_TBL"; 
    stmt = conn.prepareStatement(sqlcmd, rs.TYPE_SCROLL_INSENSITIVE, rs.CONCUR_UPDATABLE, rs.HOLD_CURSORS_OVER_COMMIT); 
    String symbol = request.getParameter("SYMBOL"); 
    String name = request.getParameter("NAME"); 
    rs = stmt.executeQuery(); 

    while(rs.next()){ 

     if(rs.getString("SYMBOL").equals(rs.getString(1))){ 

      rs.updateString("SYMBOL", rs.getString("SYMBOL")); 
      rs.updateString("NAME", rs.getString("NAME")); 
      rs.updateRow(); 

      } 
     if(!(rs.getString("SYMBOL").equals(rs.getString(1)))){ 

      if(rs.isAfterLast()){ 

       rs.moveToInsertRow(); 
       rs.updateString(1, rs.getString("SYMBOL")); 
       rs.updateString(2, rs.getString("NAME")); 
       rs.insertRow(); 

      } 
      } 
     } 
%> 

編輯*對不起忘了說明問題,當我運行這個程序,它運行到完成,但它不向SQL表添加任何東西。 編輯**更新代碼

+1

也許你應該說明你遇到什麼問題。 – Kayaman

+0

對不起,我忘了解釋這個問題,我編輯併發布在底部。 – Beartato327

+0

爲什麼SELECT語句*將*數據添加到表中?你確定你的查詢對你想完成的工作是否正確? – Makoto

回答

0

你可以使用以這個例子來插入值SQL表:

String name, last_name, phone; 
PreparedStatement stmt = conn 
         .prepareStatement("INSERT INTO `admins` (`name`, `last_name`,`phone`) VALUES (?,?,?)"); 

       stmt.setString(1, name); 

       stmt.setString(2, lastname); 

       stmt.setString(3, phone); stmt.executeUpdate(); 
+0

是的,我在之前的任務中這樣做過,但是我們必須將resultSet與prepareStatement一起使用,謝謝您的建議! – Beartato327