如何在特殊条件下向表中插入值?

时间:2018-12-20 05:50:36

标签: sql oracle jdbc

我想将String div值保存在名为BASKET的表列中。但应将其存储在id列为str的行中,该行由session属性给出。 变量strdiv确实具有值。错误消息是ORA-00933,与我认为的SQL查询有关。 我编写的查询是否存在一些问题?请让我知道如何处理。

<%
    session.getAttribute("id");
    String str = session.getAttribute("id").toString();
        String div = request.getParameter("div");

Class.forName("oracle.jdbc.driver.OracleDriver");

Connection conn = null;
PreparedStatement pstmt = null; 



try{
    String jdbcDriver = "jdbc:oracle:thin:@localhost:1521:xe";
    String dbUser = "scott";
    String dbPass = "1111";

    conn = DriverManager.getConnection(jdbcDriver,dbUser,dbPass);
    pstmt = conn.prepareStatement(
        "insert into NEW_MEMBER(BASKET) values(?) where id = str "); 

    pstmt.setString(1, div);


    pstmt.executeUpdate();


}finally{
    if(pstmt!=null)try{pstmt.close();}catch(SQLException ex){}
    if(conn!=null)try{conn.close();}catch(SQLException ex){}
}

%>

1 个答案:

答案 0 :(得分:0)

我认为您需要在此处进行更新

pstmt = conn.prepareStatement("UPDATE NEW_MEMBER SET BASKET = ? WHERE id = ?"); 

pstmt.setString(1, div);
pstmt.setString(2, str);

正如我在评论中所提到的,只有在插入表时使用WHERE子句才有意义。