站内搜索: 请输入搜索关键词

当前页面: 开发资料首页JSP 专题Struts复选框的批量删除问题

Struts复选框的批量删除问题

摘要: Struts复选框的批量删除问题


//execute方法
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm,
HttpServletRequest servletRequest,
HttpServletResponse servletResponse){
NewsActionForm newsActionForm =null;
String[] news = servletRequest.getParameterValues("newsID");
if(news !=null){
for(int i=o;inewsActionForm = new NewsActionForm();
newsActionForm.setNewsID(Integer.valueOf(news[i]));
this.newsFacade.newsDelete(newsActionForm);
}

return actionMapping.findForward("newsDeleteAction");
}
}


//删除数据方法
public void newsDelete(NewsActionForm newsActionForm) {
ConnDB conn = new ConnDB();
String sql = "delete form tb_news where id="
+ newsActionForm.getNewsID();
conn.executeUpdate(sql);
conn.close();
}

点击删除时页面提示删除成功,但是数据还没被删除,头疼了几天了...
有谁指点下我这菜鸟,555...


//execute方法
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm,
HttpServletRequest servletRequest,
HttpServletResponse servletResponse){
NewsActionForm newsActionForm =null;
String[] news = servletRequest.getParameterValues("newsID");
if(news !=null){
this.newsFacade.newsDelete(news);
}
return actionMapping.findForward("newsDeleteAction");
}
}


//删除数据方法
public int[] newsDelete(String[] news) {
ConnDB conn = new ConnDB();
Statement st = null;
try{
st = conn.createStatement();
for(int i=o;ist.addBatch("delete form tb_news where id=" + news[i]);
conn.executeBatch();
}catch(Exception ex){
}finally{
if (conn != null){
conn.close();
}
conn.close();
}
}
应该用以上的方法,如果在循环中访问数据库会很消耗性能


修改上面的方法
public int[] newsDelete(String[] news) {
ConnDB conn = new ConnDB();
Statement st = null;
int[] delRowNum = null;
try{
st = conn.createStatement();
for(int i=o;ist.addBatch("delete form tb_news where id=" + news[i]);
delRowNum = conn.executeBatch();
}catch(Exception ex){
}finally{
if (conn != null){
conn.close();
}
conn.close();
}
return delRowNum;
}



呵呵,谢谢了,原来是我的sql语句错了,上面的"delete form tb_news"这里,呵呵,没办法,form表单这个词写得多了,谢谢大哥帮我解答,这个方法小弟就用了啊,呵呵,下面是经过测试后的代码:

//execute方法
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest servletRequest,
HttpServletResponse servletResponse) {

String[] news = servletRequest.getParameterValues("newsID");
if (news != null) {
this.newsFacade.newsDelete(news);
}
return actionMapping.findForward("newsDeleteAction");
}

// 批量删除方法
public int[] newsDelete(String[] news) {
Connection conn = ConnDB.getConnection();
Statement st = null;
int[] delRowNum = null;
try {
st = conn.createStatement();
for (int i = 0; i < news.length; i++) {
st.addBatch("delete from tb_news where id=" + news[i]);
delRowNum = st.executeBatch();
}
st.close();
conn.close();
} catch (Exception ex) {
}
return delRowNum;
}



还有就是要在catch里打印输出出错信息,要不出错也不知道


↑返回目录
前一篇: 简单的servlet问题,我是新手!!!
后一篇: Jfreechart中画双Y坐标的折线图