使用jsp从sql数据库中删除一个值
Posted
技术标签:
【中文标题】使用jsp从sql数据库中删除一个值【英文标题】:Deleting a value from sql database using jsp 【发布时间】:2012-09-11 22:13:51 【问题描述】:我正在尝试使用 jsp 来呈现一个简单的数据库,并能够使用按钮删除一行。我遇到了无法从行中获取主键的麻烦,因为我一直在使用遍历表。我尝试只传递简单的数字来表示主键(整数),但它没有抓住它。
假设我想删除主键为 12 的行。
<form action="deleteResponse.jsp">
<c:set var="numId" value="12"/>
<input type="submit" name="delete" value="Delete"/>
</form>
这会生成一个打开 deleteResponse.jsp 的按钮,该按钮具有以下捕获值。
<sql:update var="counselorDelete" dataSource="jdbc/IFPWAFCAD">
DELETE FROM Counselor
WHERE counselor_id = ?<sql:param value="$param.numId"/>
</sql:update>
它什么也没做,我不确定它发生了什么。如果我在 sql 查询中手动输入值 12,它将删除该行,但如果我尝试获取该值,它将不会这样做。
提前非常感谢!
也作为旁注。我很难理解如何正确编写 JSP。我看到大多数时候人们使用 但在 netbean 教程中,它使用了 and 函数。有人可以向我解释一下吗?我还使用 glassfish 作为 localhost sql 服务器。 Netbean 生成一个 glassfish xml,但我也看到人们使用 DriverManager.getConnection 方法。传统上哪一个更好?
【问题讨论】:
【参考方案1】:我会尝试将 UI/JSP 代码与 DAO 层分开,使用单独的 Bean 来处理所有插入/uodate/delete 操作。
看看你的应用服务器的日志文件,这可能会给你一些提示。
氪,R
编辑:关于 sql:
<sql:update var="counselorDelete" dataSource="jdbc/IFPWAFCAD"
sql="DELETE FROM Counselor WHERE counselor_id = ?" >
<sql:param value="$param.numId"/>
</sql:update>
【讨论】:
+ 我不知道这种方法是否提供了正确的输入验证。像罗伯特这样的朋友;删除表;在值字段中插入他们的名字可能会造成一些损害;-) xkcd.com/327 分离有什么作用?我尝试了更改,但问题仍然存在。 我在另一个例子中发现了这个语法。 jsptutorial.org/content/jstl_sql 我想也许通配符在你写它的方式上没有被识别。您确定 $param.numId 不为空/空吗?目前我没有其他想法。以上是关于使用jsp从sql数据库中删除一个值的主要内容,如果未能解决你的问题,请参考以下文章