gpt4 book ai didi

java - 使用jsp删除数据库中的数据

转载 作者:行者123 更新时间:2023-12-01 12:48:41 25 4
gpt4 key购买 nike

我想从数据库中删除特定记录。

我的代码如下:

<%
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);

  1. 您不需要在此程序中包含 ResultSet,因为您的查询不会返回任何要存储的数据。

  2. 查询末尾不需要有空的“”(双引号)。

  3. 您应该在 finally block 中关闭连接和其他连接,而不是 try block 本身。

如果您尝试使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com