如何删除一条记录? 我用jsp写的页面中有一列一列的记录,每条记录后面都对应着一个“删除”,如何写这个“删除”,使一点击这个“删除”就可以直接从数据库中删除这条记录,同时刷新这个页面? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 点击“删除”后将标示该行的字段(可以是主键)传到后台,根据该字段做删除操作,之后再查询,将查询结果返回给页面进行显示可以用ajax做无刷新删除 写一个jsp 页面用于删除 如 d.jsp本来的页面 如show.jsp, 点删除后,转到d.jsp(同时把要删的东西信息传过去), 里面进行数据库的删除操作,最后再 转回show.jsp注意d.jsp必须不能直接访问(即在url中直接输入d.jsp的路径和参数),否则谁都可以删了,这可以通过session来限制,判断是否已登录 删除按纽绑定一个ID,在后台通过ID删除对应就搞定了,删除功能是很简单的 一般删除绑定一个id,把id传递过去,用sql语句删除这条记录。 点击删除记录时,传递该记录的id,通过id删除记录,然后再转到当前界面~~~ LZ提出的问题过于基础,我相信LS几位的答案依然不能帮楼主解惑,LZ先整基础书吧 嗯,传个 ID 过去就可以了,不过再删除之前需要对这个 ID 进行严格的检查,以防别人乱删掉数据。 在删除连接上使用history.go(-0);就可以刷新当前页面,删除记录需要传递一个数据的主键值(一般为id), 主键ID对应一条数据,通过主键ID找到相应数据进行删除然后进方法重新查找数据然后显示,你现在需要的是看看这方面的知识,给你的删除链接加上对应的id参数在通过方法删除对应数据 获取该记录对应的id,传到后台在数据库中delete掉该记录后再返回到这个页面。#11楼说了,要仔细检查这个id是不是你要删的,不要搞错了啊 传个id过去,用sql语句直接就删了还有看你的dao层是用JDBC还是Hibernate实现的,因为这两种方式的sql语句有点不同 用A标签绑定主建ID 传回本页面, 删除功能应该很简单就写好了 可以通过ID来删除,你在删除链接上把ID传到后台然后通过ID来删除一条记录。重新刷新页面要用Response.Redirect()这样就会重新发送一次请求刷新页面。这样就可以实现你点删除冒一个字段刷新一下页面的效果,也用不到Ajax。 传个ID到后台,然后根据ID删除就行啦 把id传过去啊uri?id = "sql_id"再在你的业务逻辑层里面根据它删除指定的数据就好了 <%@ page contentType="text/html;charset=GBK" %> <%@ page language="java" import="java.sql.*" %> <head><link rel="stylesheet" type="text/css" href="../css.css" /></head><center><table width=100%><tr><td align=center valign=top><script language="javascript"> function chec(){var i;var f=0;for(i=0;i<document.mysel.elements.length-1;i++){ if(document.mysel.selectcheck[i].checked==true){ f=f+1; }} alert("请选择要删除的条目!"); alert(f); document.mysel.submit();}function allselect(){var i;if(document.mysel.temp.checked){ for(i=0;i<document.mysel.elements.length-1;i++){ document.mysel.selectcheck[i].checked=true; }}else{ for(i=0;i<document.mysel.elements.length-1;i++){ document.mysel.selectcheck[i].checked=false; }}}function newwin(url) { var newwin=window.open(url,"newwin","toolbar=no,location=no,directories=no,status=no, menubar=no,scrollbars=yes,resizable=yes,width=600,height=450"); newwin.focus(); return false; } </script> <script LANGUAGE="javascript"> function submit10() { self.location.replace("fenye1.jsp") } </script> <%java.sql.Connection sqlCon; java.sql.Statement sqlStmt; java.sql.ResultSet sqlRst;java.lang.String strCon; java.lang.String strSQL; int intPageSize;int intRowCount; int intPageCount;int intPage; java.lang.String strPage; int i; intPageSize = 20; strPage = request.getParameter("page"); if(strPage==null){intPage = 1; } else{intPage = java.lang.Integer.parseInt(strPage); if(intPage<1) intPage = 1; } Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); strCon ="jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ="+application.getRealPath("/database/winnetdata.mdb"); sqlCon = java.sql.DriverManager.getConnection(strCon); sqlStmt = sqlCon.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);//准备SQL语句 strSQL = "select doc_id,doc_title,doc_kind,doc_origin,doc_releasedate from winet_technologydoc order by doc_id desc"; sqlRst = sqlStmt.executeQuery(strSQL); sqlRst.last();intRowCount = sqlRst.getRow();intPageCount = (intRowCount+intPageSize-1) / intPageSize; if(intPage>intPageCount) intPage = intPageCount; %> <table border=1" cellspacing="0" cellpadding="0" width=100%> <form name="mysel" method="post" action="itdoc_alldelete.jsp"><tr> <td align="left" colspan="8" bgcolor="#A4B6D7"></td></tr> <tr> <td align="center" bgcolor="A4B6D7"><input type="checkbox" name="temp" onclick="allselect()">全选<br/><input type=submit value="删除"></td><td align="center" bgcolor="A4B6D7">内部编号</td><td align="center" bgcolor="A4B6D7">标题</td> <td align="center" bgcolor="A4B6D7">类型</td> <td align="center" bgcolor="A4B6D7">来源</td><td align="center" bgcolor="A4B6D7">日期</td><td align="center" bgcolor="A4B6D7">修改</td><td align="center" bgcolor="A4B6D7">删除</td> </tr> <% if(intPageCount>0){ sqlRst.absolute((intPage-1) * intPageSize + 1); i = 0; int j=1;String tcolor=null;String id,pname,pkind,pprice,pimages,pdoc,pforwho; while(i<intPageSize && !sqlRst.isAfterLast()){ j=j*-1;if(j==1) tcolor="#EBECF3";else tcolor="#ffffff"; id=sqlRst.getString(1); pname=sqlRst.getString(2); pkind=sqlRst.getString(3);pforwho=sqlRst.getString(4);pprice=sqlRst.getString(5);%> <tr> <td bgcolor=<%=tcolor%>><input type="checkbox" name="selectcheck" value=<%=id%>></td> <td bgcolor=<%=tcolor%>><%=id%></td> <td bgcolor=<%=tcolor%>><%=pname%></td> <td bgcolor=<%=tcolor%>><%=pkind%></td> <td bgcolor=<%=tcolor%>><%=pforwho%></td> <td bgcolor=<%=tcolor%>><%=pprice%></td><td bgcolor=<%=tcolor%>><a target=rbottom href="itdoc_modify_pro.jsp?docID=<%=id%>" align="center">修改</a></td> <td bgcolor=<%=tcolor%>><a target=rbottom href="itdoc_do_delete.jsp?docID=<%=id%>" align="center">删除</a></td> </tr> <% sqlRst.next(); i++; } } %> </form></table> <form method="POST" action="itdoc_manage.jsp"> 第<%=intPage%>页 共<%=intPageCount%>页 <%if(intPage>1){%><a href="itdoc_manage.jsp?page=<%=intPage-1%>"> 上一页</a><%}%> <%if(intPage<intPageCount){%><a href="itdoc_manage.jsp?page=<%=intPage+1%>">下一页 </a><%}%> 转到第:<select name="page"><%for(int sm=1;sm<=intPageCount;sm++){%><option value=<%=sm%>><%=sm%></option><%}%></select> 页 <span><input class=buttonface type=submit value=GO name=cndok></span> </form><% sqlRst.close(); sqlStmt.close(); sqlCon.close(); %></td></tr></table></center>//每行末尾显示修改、删除等按钮//ITDOC_DO_DELETE.JSP<%@ page import="java.sql.*"%><head><link rel="stylesheet" type="text/css" href="../css.css" /></head><%! int all,i,m_count; String odbcQuery; %><% Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); String url="jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ="+application.getRealPath("./database/winnetdata.mdb"); Connection odbcconn=DriverManager.getConnection(url); Statement odbcstmt=odbcconn.createStatement(); odbcQuery="delete From winet_technologydoc where doc_id="+request.getParameter("docID"); odbcstmt.executeUpdate(odbcQuery); out.println("<table width=100% align=center><tr><td idth=100% align=center>已删除 <A href=itdoc_manage.jsp>返回</A></td></tr></table>");odbcstmt.close(); odbcconn.close(); %>//通过ID调用ITDOC_DO_DELETE.JSP的删除功能。 把主键传到后台,在用sql语句删除就好了呀 根据ID 就可以删除 如果你用的是jsp那就用servlet做吧 可以跳回本页面就可以刷新了 通过jsp传一个ID,当然了,这个ID是和这条记录在数据库里存的ID对应的,把ID传到后台,通过sql删掉再通过查询那个方法回到页面就相当于刷新了。 点击“删除”绑定一个id(主键),把id传递到后台实现类里用sql语句删除这条记录。 使用点聚WebOffice的问题 求教关于servlet的问题 java如何实现wp-cumulus标签云3D效果的那种 怎样用SAXReader分析出xml的节点? 访问网站获取客户端的信息 项目路径问题求解 急,怎么用session做一个最简单的购物系统 连接数据库问题,一百分 jsp:include 的问题 jsp有点小错误,请大神帮忙,感激不敬 模块化编程, 关于使用伪静态后 找不到namespace的问题
本来的页面 如show.jsp, 点删除后,转到d.jsp(同时把要删的东西信息传过去), 里面进行数据库
的删除操作,最后再 转回show.jsp注意d.jsp必须不能直接访问(即在url中直接输入d.jsp的路径和参数),否则谁都可以删了,这可以通过session来限制,判断是否已登录
传回本页面, 删除功能应该很简单就写好了
uri?id = "sql_id"
再在你的业务逻辑层里面根据它删除指定的数据就好了
<%@ page language="java" import="java.sql.*" %>
<head>
<link rel="stylesheet" type="text/css" href="../css.css" />
</head>
<center>
<table width=100%><tr><td align=center valign=top>
<script language="javascript"> function chec(){
var i;
var f=0;
for(i=0;i<document.mysel.elements.length-1;i++){
if(document.mysel.selectcheck[i].checked==true){
f=f+1;
}
}
alert("请选择要删除的条目!");
alert(f);
document.mysel.submit();}
function allselect(){
var i;
if(document.mysel.temp.checked){
for(i=0;i<document.mysel.elements.length-1;i++){
document.mysel.selectcheck[i].checked=true;
}
}else
{
for(i=0;i<document.mysel.elements.length-1;i++){
document.mysel.selectcheck[i].checked=false;
}}
}
function newwin(url) {
var newwin=window.open(url,"newwin","toolbar=no,location=no,directories=no,status=no, menubar=no,scrollbars=yes,resizable=yes,width=600,height=450");
newwin.focus();
return false;
}
</script>
<script LANGUAGE="javascript">
function submit10()
{
self.location.replace("fenye1.jsp")
}
</script>
<%
java.sql.Connection sqlCon;
java.sql.Statement sqlStmt;
java.sql.ResultSet sqlRst;
java.lang.String strCon;
java.lang.String strSQL;
int intPageSize;
int intRowCount;
int intPageCount;
int intPage;
java.lang.String strPage;
int i;
intPageSize = 20;
strPage = request.getParameter("page");
if(strPage==null){
intPage = 1;
}
else{
intPage = java.lang.Integer.parseInt(strPage);
if(intPage<1) intPage = 1;
}
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
strCon ="jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ="+application.getRealPath("/database/winnetdata.mdb");
sqlCon = java.sql.DriverManager.getConnection(strCon);
sqlStmt = sqlCon.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);//准备SQL语句
strSQL = "select doc_id,doc_title,doc_kind,doc_origin,doc_releasedate from winet_technologydoc order by doc_id desc";
sqlRst = sqlStmt.executeQuery(strSQL);
sqlRst.last();
intRowCount = sqlRst.getRow();
intPageCount = (intRowCount+intPageSize-1) / intPageSize;
if(intPage>intPageCount) intPage = intPageCount;
%>
<table border=1" cellspacing="0" cellpadding="0" width=100%>
<form name="mysel" method="post" action="itdoc_alldelete.jsp">
<tr>
<td align="left" colspan="8" bgcolor="#A4B6D7"></td></tr>
<tr>
<td align="center" bgcolor="A4B6D7"><input type="checkbox" name="temp" onclick="allselect()">全选<br/><input type=submit value="删除"></td>
<td align="center" bgcolor="A4B6D7">内部编号</td>
<td align="center" bgcolor="A4B6D7">标题</td>
<td align="center" bgcolor="A4B6D7">类型</td>
<td align="center" bgcolor="A4B6D7">来源</td>
<td align="center" bgcolor="A4B6D7">日期</td>
<td align="center" bgcolor="A4B6D7">修改</td>
<td align="center" bgcolor="A4B6D7">删除</td>
</tr>
<%
if(intPageCount>0){
sqlRst.absolute((intPage-1) * intPageSize + 1);
i = 0;
int j=1;
String tcolor=null;
String id,pname,pkind,pprice,pimages,pdoc,pforwho;
while(i<intPageSize && !sqlRst.isAfterLast()){
j=j*-1;
if(j==1)
tcolor="#EBECF3";
else
tcolor="#ffffff";
id=sqlRst.getString(1);
pname=sqlRst.getString(2);
pkind=sqlRst.getString(3);
pforwho=sqlRst.getString(4);
pprice=sqlRst.getString(5);
%>
<tr>
<td bgcolor=<%=tcolor%>><input type="checkbox" name="selectcheck" value=<%=id%>></td>
<td bgcolor=<%=tcolor%>><%=id%></td>
<td bgcolor=<%=tcolor%>><%=pname%></td>
<td bgcolor=<%=tcolor%>><%=pkind%></td>
<td bgcolor=<%=tcolor%>><%=pforwho%></td>
<td bgcolor=<%=tcolor%>><%=pprice%></td>
<td bgcolor=<%=tcolor%>><a target=rbottom href="itdoc_modify_pro.jsp?docID=<%=id%>" align="center">修改</a></td>
<td bgcolor=<%=tcolor%>><a target=rbottom href="itdoc_do_delete.jsp?docID=<%=id%>" align="center">删除</a></td>
</tr> <%
sqlRst.next();
i++;
}
}
%>
</form>
</table>
<form method="POST" action="itdoc_manage.jsp">
第<%=intPage%>页 共<%=intPageCount%>页
<%if(intPage>1){%><a href="itdoc_manage.jsp?page=<%=intPage-1%>"> 上一页</a><%}%> <%if(intPage<intPageCount){%><a href="itdoc_manage.jsp?page=<%=intPage+1%>">下一页 </a><%}%>
转到第:
<select name="page">
<%for(int sm=1;sm<=intPageCount;sm++){%>
<option value=<%=sm%>><%=sm%></option>
<%}%>
</select> 页
<span><input class=buttonface type=submit value=GO name=cndok></span>
</form>
<%
sqlRst.close();
sqlStmt.close();
sqlCon.close();
%></td></tr></table>
</center>
//每行末尾显示修改、删除等按钮
//ITDOC_DO_DELETE.JSP
<%@ page import="java.sql.*"%>
<head>
<link rel="stylesheet" type="text/css" href="../css.css" />
</head>
<%! int all,i,m_count;
String odbcQuery;
%>
<%
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url="jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ="+application.getRealPath("./database/winnetdata.mdb");
Connection odbcconn=DriverManager.getConnection(url);
Statement odbcstmt=odbcconn.createStatement();
odbcQuery="delete From winet_technologydoc where doc_id="+request.getParameter("docID");
odbcstmt.executeUpdate(odbcQuery);
out.println("<table width=100% align=center><tr><td idth=100% align=center>已删除 <A href=itdoc_manage.jsp>返回</A></td></tr></table>");odbcstmt.close();
odbcconn.close();
%>//通过ID调用ITDOC_DO_DELETE.JSP的删除功能。
再通过查询那个方法回到页面就相当于刷新了。
点击“删除”绑定一个id(主键),把id传递到后台实现类里用sql语句删除这条记录。