我想将String div值保存在名为BASKET
的表列中。但应将其存储在id列为str的行中,该行由session属性给出。
变量str
和div
确实具有值。错误消息是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){}
}
%>
答案 0 :(得分:0)
我认为您需要在此处进行更新:
pstmt = conn.prepareStatement("UPDATE NEW_MEMBER SET BASKET = ? WHERE id = ?");
pstmt.setString(1, div);
pstmt.setString(2, str);
正如我在评论中所提到的,只有在插入表时使用WHERE
子句才有意义。