2017-04-05 81 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