我想从数据库中删除特定记录。
我的代码如下:
<%
String value = request.getParameter("Meter_No");
int v=Integer.parseInt(value);
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDirver");
Connection conn = DriverManager.getConnection ("jdbc:sqlserver://localhost:1433;databaseName=myDatabase;
user=shakir;password=shakir123");
Statement st = conn.createStatement();
ResultSet rs =st.executeQuery("DELETE * FROM qesco_table
WHERE Meter_No ="+v+"");
rs.close();
conn.close();
}catch(Exception e){
System.out.print(e.getMessage());
}
%>
但是它不是从数据库中删除数据。
谁能指导我代码的问题在哪里?
最佳答案
代码中的所有内容都可以。
但是您需要使用st.executeUpdate()
运行查询。
因此,更改以下行
ResultSet rs =st.executeQuery("DELETE * FROM qesco_table WHERE Meter_No ="+v+"");
至
st.executeUpdate("DELETE * FROM qesco_table WHERE Meter_No ="+v);
加
您不需要在此程序中有ResultSet,因为查询不会返回任何要存储的数据。
您不需要在查询末尾有空的“”(双引号)。
您应该在
finally
块中关闭连接和其他连接,而不是尝试自身阻塞。如果您尝试使用PreparedStatements编写动态查询,那就更好了。所以它会变成这样,
<%
String value = request.getParameter("Meter_No");
int v=Integer.parseInt(value);
Connection conn = null;
PreparedStatement pst = null;
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDirver");
conn = DriverManager.getConnection ("jdbc:sqlserver://localhost:1433;databaseName=myDatabase;user=shakir;password=shakir123");
pst = conn.prepareStatement("delete from qesco_table where Meter_No = ?");
pst.setInt(1,v);
pst.executeUpdate();
}catch(Exception e){
System.out.print(e.getMessage());
}finally{
pst.close();
conn.close();
}
%>
关于java - 使用jsp从数据库中删除数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24429224/