EasyUI——对上节引入的样式的删除按钮的功能实现

修改dao层的数据库,加上一个删除的方法

dao层的完整代码如下,其中对比上一个博客的学习,在这个类中加了一个删除的方法

package dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import model.PageBean;
import model.User;
import util.StringUtil;

/**
 * 用戶Dao类
 * @author 我是一个点
 *
 */
public class UserDao {
	
	public User login(Connection con,User user) throws Exception{
		User resultUser=null;
		String sql="select * from t_user where userName=? and password=?";
		PreparedStatement pstmt=con.prepareStatement(sql);
		pstmt.setString(1, user.getUserName());
		pstmt.setString(2, user.getPassword());
		ResultSet rs=pstmt.executeQuery();
		if(rs.next()){//查到之后对它进行实例化,
			resultUser=new User();
			resultUser.setId(rs.getInt("id"));
			resultUser.setUserName(rs.getString("userName"));
			resultUser.setPassword(rs.getString("password"));
		}
		return resultUser;
	}
	
	//主要用户页面初始化的时候获得所有的数据
	public ResultSet userList(Connection con,PageBean pageBean,User user)throws Exception{
		StringBuffer sb=new StringBuffer("select * from t_user");
		if(user!=null&&StringUtil.isNotEmpty(user.getUserName())){
			sb.append(" and userName like '%"+
			user.getUserName()+"%'");
		}
		//这里是分页的条件
		if(pageBean!=null){
			sb.append(" limit "+pageBean.getStart()+","+pageBean.getRows());
		}
		PreparedStatement pstmt=con.prepareStatement(sb.toString().replace("and","where"));
		return pstmt.executeQuery();
	}
	
		//获得数据库中t_buyerUser这个表中的数据的个数
		public int userCount(Connection con,User user)throws Exception{
			//下面的sql这句话的意义就是一条获取数据库中的数据总数的sql语句
			StringBuffer sb=new StringBuffer("select count(*) as total from t_user");
			if(StringUtil.isNotEmpty(user.getUserName())){
				//数据库中的模糊查找:1>通过_限制,2>通过%限制
				sb.append(" and userName like '%"+
				user.getUserName()+"%'");
			}
			PreparedStatement pstmt=con.prepareStatement(sb.toString().replaceFirst("and", "where"));
			ResultSet rs=pstmt.executeQuery();
			//如果有记录存在的话,返回存在的记录的数量
			if(rs.next()){
				return rs.getInt("total");
			}else{
				return 0;
			}
		}
		
		/**
		 * 删除方法的实现
		 * @param con
		 * @param delIds
		 * @return
		 * @throws Exception
		 */
		public int userDelete(Connection con,String delIds) throws Exception{
			//数据库中的SQL语句,这句话的意思是删除数据库中一个表中的某个id的数据
			//对于这个表,我们的主键是id
			String sql="delete from t_user where id in("+delIds+")";
			PreparedStatement pstmt=con.prepareStatement(sql);
			//返回受影响的结果集的个数,删了几条就返回几条
			return pstmt.executeUpdate();
		}
}

简单的说一下上面删除部分的代码,我们的delIds格式是1,2,3,4这样的,所以会删除1,2,3,4这四条数据,这是数据库删除部分的SQL语句的一种写法

前台代码的编写

body 中的代码变动
<div id="tb">
		<div>
			<a href="#" class="easyui-linkbutton" iconCls="icon-add" plain="true">添加</a>
			<a href="#" class="easyui-linkbutton" iconCls="icon-edit" plain="true">修改</a>
			<a href="javascript:deleteManager()" class="easyui-linkbutton" iconCls="icon-remove" plain="true">删除</a>
		</div>
		<div>
		&nbsp;管理员姓名:<input type="text" name="s_userName" id="s_userName"/>
		<a href="javascript:searchManager()" class="easyui-linkbutton" iconCls="icon-search" plain="true">&nbsp;查找</a>
		</div>
	</div>
实现body中为删除加的一个函数
//实现删除的方法
	function deleteManager() {
		//获取选中行的一个集合
		var seletedRows=$("#dg").datagrid('getSelections');
		if(seletedRows.length==0){
			//这个是easyUI自带的提醒框
			$.messager.alert("系统提示","请选择要删除的数据!");
			return;
		}
		var strIds=[];//定义一个数组,获取所选内容的id
		for(var i=0;i<seletedRows.length;i++){
			strIds.push(seletedRows[i].id);//指明是第几个对象,并取出这个对象中的id属性,塞给这个数组
		}
		//将数组拼接成一个字符串,这个字符串中每个元素是以逗号分隔的
		var ids=strIds.join(",");
		alert(ids);
	}

先写个弹框看看效果
在这里插入图片描述在这里插入图片描述

ajax向后台传数据,并进项行简单的逻辑处理
//实现删除的方法
	function deleteManager() {
		//获取选中行的一个集合
		var seletedRows=$("#dg").datagrid('getSelections');
		if(seletedRows.length==0){
			//这个是easyUI自带的提醒框
			$.messager.alert("系统提示","请选择要删除的数据!");
			return;
		}
		var strIds=[];//定义一个数组,获取所选内容的id
		for(var i=0;i<seletedRows.length;i++){
			strIds.push(seletedRows[i].id);//指明是第几个对象,并取出这个对象中的id属性,塞给这个数组
		}
		//将数组拼接成一个字符串,这个字符串中每个元素是以逗号分隔的
		var ids=strIds.join(",");
		$.messager.confirm("系统提示","您确定要删除这<font color=red>"
				+selectedRows.length+"</font>条数据吗?",function(r){
			if(r){
				//上面的r是true或false,如果用户点确认,就是true
				//下面的是ajax的一个异步提交,提交的url是managerDelete,post方法,json的数据格式
				//提交的数据是ids这个串,后台以delIds这个属性名来获取,传回的是result,它有两个属性,这是后台自己写的
				$.post("managerDelete",{delIds:ids},function(result){
					if(result.success){
						$.messager.alert("系统提示","您已成功删除<font color=red>"+result.delNums+"</font>条数据!");
						//这句话的作用是刷新
						$("#dg").datagrid("reload");
					}else{
						$.messager.alert('系统提示','<font color=red>'+result.errorMsg+'</font>');
					}
				},"json");
			}
		});
	}

搭建后台的Servlet

配置web.xml文件

在这里插入图片描述

<servlet>
    <description></description>
    <servlet-name>managerDeleteServlet</servlet-name>
    <servlet-class>web.ManagerDeleteServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>managerDeleteServlet</servlet-name>
    <url-pattern>/managerDelete</url-pattern>
  </servlet-mapping>
ManagerDeleteServlet.java的编写,实现删除的逻辑层
package web;

import java.io.IOException;
import java.sql.Connection;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import dao.UserDao;
import net.sf.json.JSONObject;
import util.DbUtil;
import util.ResponseUtil;

public class ManagerDeleteServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
	DbUtil dbUtil=new DbUtil();   
	UserDao userDao=new UserDao();
    public ManagerDeleteServlet() {
        super();
    }

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		this.doPost(request, response);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String delIds=request.getParameter("delIds");
		System.out.println(delIds);
		Connection con=null;
		try{
			con=dbUtil.getCon();
			JSONObject result=new JSONObject();
			//直接传过去就行了,传的是一个字符串
			int delNums=userDao.userDelete(con, delIds);
			if(delNums>0){
				result.put("success", "true");
				result.put("delNums", delNums);
			}else{
				result.put("errorMsg", "删除失败");
			}
			ResponseUtil.write(response, result);
		}catch(Exception e){
			e.printStackTrace();
		}finally{
			try {
				dbUtil.closeCon(con);
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}

}

现在已经圆满的完成删除的任务了,nice

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值