layui增删改查

目录

一,查

        1.主界面代码(mian.jsp)

     2.查询dao方法

 3.action代码

   4.js代码

二,增

        1.增加dao方法

 2.增加action代码

 5.js代码

三,删

        1.删除dao方法

   2.删除action代码

   5.js代码

四,改

        1.修改dao方法

 2.修改action代码


一,查

        1.主界面代码(mian.jsp)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ include file="common/header.jsp" %>







main.js

let $,element;
layui.use(['jquery','element'],function(){
	 $ = layui.jquery,element = layui.element;
	$.ajax({
		url:'Permission.action?methodName=menus'
		,dataType:'json'
		,success:function(data){
			console.log(data);
			let htmlstr = '';
			$.each(data,function(i,n){
				htmlstr += '  
  • '; htmlstr += ' '+data[i].text+''; //判断当前一级节点是否存在子节点 if(data[i].hasChildren){ htmlstr += '
    '; let children = data[i].children; $.each(data,function(index,node){ htmlstr += '
    '+children[index].text+'
    '; }); htmlstr += '
    '; } htmlstr += '
  • '; }); $("#menu").html(htmlstr); } }); }); /* 1.查找layui的选项卡页面布局代码-静态 2.动态的添加选项卡 3.将选项卡名称换成菜单名 4.重复的tap选项卡不添加,改为选中 5.跳转页面 */ function openTab(title,url,id){ //alert(1) let $node = $("li[lay-id='"+id+"']"); if($node.length == 0){ element.tabAdd('openTab', { title: title ,content: "" ,id: id }) } element.tabChange('openTab', id); //切换到:用户管理 }
  • 效果:layui增删改查_第1张图片

     

         2.查询dao方法

    要查询表中的数据:

    layui增删改查_第2张图片

      dao方法:sql语句记得打空格

    package com.zking.dao;
    
    import java.sql.SQLException;
    import java.util.List;
    import java.util.Map;
    
    import com.zking.entity.User;
    import com.zking.util.BaseDao;
    import com.zking.util.PageBean;
    import com.zking.util.StringUtils;
    
    public class UserDao extends BaseDao{
    	public User login(User user) throws Exception {
    		String sql = "select * from t_oa_user where loginName = '"
    				+user.getLoginName()+"' and pwd = '"+user.getPwd()+"'";
    		//根据SQL查询符号条件的用户,通常只会返回一条数据
    		List users = super.executeQuery(sql, User.class,null);
    		return users == null || users.size() == 0 ? null : users.get(0);
    		//		return super.executeQuery(sql, clz, pageBean);
    	}
    //	查询用户信息及对应的角色,角色是通过case when得来的
    	public List> list(User user,PageBean pageBean ) throws InstantiationException, IllegalAccessException, SQLException{
    		String sql = "SELECT *  \r\n" + 
    				",(case rid \r\n" + 
    				"when 1 then '管理员' \r\n" + 
    				"when 2 then '发起者' \r\n" + 
    				"when 3 then '审批者' \r\n" + 
    				"when 4 then '参与者' \r\n" + 
    				"when 5 then '会议室管理员' \r\n" + 
    				"else '其他' end \r\n" + 
    				") roleName \r\n" + 
    				"from \r\n" + 
    				" t_oa_user where 1=1 ";
    		String name = user.getName();
    		if(StringUtils.isNotBlank(name)) {
    			sql += " and name like '%"+name+"%'";
    		}
    //		当实体类的属性完全包含数据库查询出来的列段时候使用
    //		super.executeQuery(sql, clz, pageBean)
    //		返回List>, 对应的是联表查询,单个实体类对象不完全包含查询列段
    		return super.executeQuery(sql, pageBean);
    		
    	}
    	
    	public int add(User user) throws Exception {
    		String sql = "insert into t_oa_user(name,loginName,pwd) values(?,?,?)";
    		return super.executeUpdate(sql, user, new String [] {"name","loginName","pwd"});
    	}
    	
    	public int del(User user) throws Exception {
    		String sql = "delete from t_oa_user where id = ?";
    		return super.executeUpdate(sql, user, new String [] {"id"});
    	}
    	
    	public int edit(User user) throws Exception {
    		String sql = "update t_oa_user set name=?, loginName=?, pwd=? where id=?";
    		return super.executeUpdate(sql, user, new String [] {"name","loginName","pwd","id"});
    	}
    	
    	
    }
    

     3.action代码

    用户查询
    	public String list(HttpServletRequest req, HttpServletResponse resp) {
    		try {
    			PageBean pageBean = new PageBean();
    			pageBean.setRequest(req);
    			List> users = userdao.list(user, pageBean);
    //		注意:layui中的数据表的格式
    			ResponseUtil.writeJson(resp, R.ok(0, "用户数据查询成功",pageBean.getTotal(),users));
    		} catch (Exception e) {
    			e.printStackTrace();
    			try {
    				ResponseUtil.writeJson(resp, R.ok(0, "用户数据查询失败"));
    			} catch (Exception e1) {
    				// TODO Auto-generated catch block
    				e1.printStackTrace();
    			}
    		}
    		return null;
    	}

       4.js代码

    此时还不能直接加载数据:

    //1.初始化数据表格
    function initTable(){
    	table.render({           //执行渲染
            elem: '#tb',         //指定原始表格元素选择器(推荐id选择器)
    //        url: 'user.action?methodName=list',     //请求地址
            height: 340,         //自定义高度
            loading: false,      //是否显示加载条(默认 true)
            cols: [[             //设置表头
                {field: 'id', title: '用户编号', width: 120},
                {field: 'name', title: '用户名', width: 120},
                {field: 'loginName', title: '登录账号', width: 140},
                {field: '', title: '操作', width: 220,toolbar:'#toolbar'},
            ]]
        });
    }

    绑数据

    //2.点击查询
    function query(){
    	table.reload('tb', {
            url: $("#ctx").val()+'/user.action',     //请求地址
            method: 'POST',                    //请求方式,GET或者POST
            loading: true,                     //是否显示加载条(默认 true)
            page: true,                        //是否分页
            where: {                           //设定异步数据接口的额外参数,任意设
            	'methodName':'list',
            	'name':$('#name').val()
            },  
            request: {                         //自定义分页请求参数名
                pageName: 'page', //页码的参数名称,默认:page
                limitName: 'rows' //每页数据量的参数名,默认:limit
            }
       });
    }

    效果:点击查询即可查出,还可以模糊查询layui增删改查_第3张图片

     

    二,增

            1.增加dao方法

    	//增加
    	public int add(User user) throws Exception {
    		String sql = "insert into t_oa_user(name,loginName,pwd) values(?,?,?)";
    		return super.executeUpdate(sql, user, new String[] {"name","loginName","pwd"});
    	}

     2.增加action代码

    	//用户增加
    	public String add(HttpServletRequest req,HttpServletResponse resp) {
    		
    		try {
    			//影响行数
    			int rs = userdao.add(user);
    			if(rs>0) {
    				ResponseUtil.writeJson(resp, R.ok(200, "用户数据新增成功"));
    			}
    			else {
    				ResponseUtil.writeJson(resp,R.error(0, "用户数据新增失败"));
    			}
    		} catch (Exception e) {
    			e.printStackTrace();
    			try {
    				ResponseUtil.writeJson(resp,R.error(0, "用户数据新增失败"));
    			} catch (Exception e1) {
    				e1.printStackTrace();
    			}
     
    		}
    			return null;
    	
    	}

    点击查询弹出弹出层layui增删改查_第4张图片

     

     5.js代码

    注意layui版本问题:

    //3.对话框
    function open(title){
        layer.open({
           type: 2,                    //layer提供了5种层类型。可传入的值有:0(信息框,默认)1(页面层)2(iframe层)3(加载层)4(tips层)
           title:title,
           area: ['660px', '340px'],   //宽高
           skin: 'layui-layer-rim',    //样式类名
           content:  $("#ctx").val()+'/jsp/system/userEdit.jsp', //书本编辑页面
           btn:['保存','关闭','...'],
           yes: function(index, layero){
        	   //jquery.find
        	   //调用子页面中提供的getData方法,快速获取子页面的form表单数据
               let data= $(layero).find("iframe")[0].contentWindow.getData();
               console.log(data);
               //判断title标题
               let methodName="add";
               if(title=="编辑")
            	   methodName="edit";
               $.post($("#ctx").val()+'/user.action?methodName='+methodName,
            		   data,function(rs){
            	   if(rs.success){
            		   //关闭对话框
            		   layer.closeAll();
            		   //调用查询方法刷新数据
            		   query();
            	   }else{
            		   layer.msg(rs.msg,function(){});
            	   }
               },'json');
           },
           btn2: function(index, layero){
        	   layer.closeAll();
           },
           btn3: function(index, layero){
        	   layer.msg("批量新增");
        	   return false;
           },
           btn4: function(index, layero){
        	   layer.closeAll("批量新增");
           }
        });
     }

    layui增删改查_第5张图片

     

    三,删

            1.删除dao方法

    	//删
    	public int del(User user) throws Exception {
    		String sql = "delete from t_oa_user where id=?";
    		return super.executeUpdate(sql, user, new String[] {"id"});
    	}

       2.删除action代码

    	//用户删除
    	public String del(HttpServletRequest req,HttpServletResponse resp) {
    		
    		try {
    			//影响行数
    			int rs = userdao.del(user);
    			if(rs>0) {
    				ResponseUtil.writeJson(resp, R.ok(200, "用户数据删除成功"));
    			}
    			else {
    				ResponseUtil.writeJson(resp,R.error(0, "用户数据删除失败"));
    			}
    		} catch (Exception e) {
    			e.printStackTrace();
    			try {
    				ResponseUtil.writeJson(resp,R.error(0, "用户数据删除失败"));
    			} catch (Exception e1) {
    				e1.printStackTrace();
    			}
     
    		}
    			return null;
    	
    	}

    会有弹出层layui增删改查_第6张图片

       5.js代码

    	//在页面中的中必须配置lay-filter="tb_goods"属性才能触发属性!!!
    	table.on('tool(tb)', function (obj) {
    		row = obj.data;
    		if (obj.event == "edit") {
    			open("编辑");
    		}else if(obj.event == "del"){
    			layer.confirm('确认删除吗?', {icon: 3, title:'提示'}, function(index){
    			  $.post($("#ctx").val()+'/user.action',{
    				  'methodName':'del',
    				  'id':row.id
    			  },function(rs){
    				  if(rs.success){
    	        		   //调用查询方法刷新数据
    	        		   query();
    	        	   }else{
    	        		   layer.msg(rs.msg,function(){});
    	        	   }
    			  },'json');
    			  layer.close(index);
    			});
    		}else{
     
    		}
    	});

    四,改

            1.修改dao方法

    	//改
    	public int edit(User user) throws Exception {
    		String sql = "update  t_oa_user set name=?,loginName=?,pwd=? where id=?";
    		return super.executeUpdate(sql, user, new String[] {"name","loginName","pwd","id"});
    	}

     2.修改action代码

    	//用户修改
    	public String edit(HttpServletRequest req,HttpServletResponse resp) {
    		
    		try {
    			//影响行数
    			int rs = userdao.edit(user);
    			if(rs>0) {
    				ResponseUtil.writeJson(resp, R.ok(200, "用户数据修改成功"));
    			}
    			else {
    				ResponseUtil.writeJson(resp,R.error(0, "用户数据修改失败"));
    			}
    		} catch (Exception e) {
    			e.printStackTrace();
    			try {
    				ResponseUtil.writeJson(resp,R.error(0, "用户数据修改失败"));
    			} catch (Exception e1) {
    				e1.printStackTrace();
    			}
     
    		}
    			return null;
    	
    	}

    效果layui增删改查_第7张图片

     目前修改不了,我们还要重新写一个js

    layui增删改查_第8张图片

     代码

    let layer,form,$;
    layui.use(['layer','form','jquery'],function(){
    	layer=layui.layer,form=layui.form,$=layui.jquery;
    	initData();
    });
    
    function initData(){
    	console.log(parent.row);
    	if(null!=parent.row){
    	     //因为layui.each内部的逻辑问题导致的所以要先深拷贝一份然后再去val
    	     //parent.row:表格行对象
    //		table的数据在父页面 userMange.jsp
    //		点击编辑按钮的时候,当前行赋值给予页面userEdit.jsp
    	     form.val('user',$.extend({}, parent.row||{}));
    	     $('#name').attr('readonly','readonly');
    	}
    }
    
    function getData(){
    //	取user from中的值
        return form.val('user');
    }

    你可能感兴趣的:(前端,前端框架,layui,java,前端)