• layui增删改查


    首先要导入layui的css以及js

    <link rel="stylesheet" type="text/css" href="statis/css/layui.css">   
    <script type="text/javascript" src="js/jquery-3.3.1.js"></script>
    <script type="text/javascript" src="statis/layui.all.js"></script>
    <script type="text/javascript" src="js/index.js"></script>

    dao层

    package com.hmc.dao;
    
    import java.io.UnsupportedEncodingException;
    import java.sql.SQLException;
    import java.util.List;
    import java.util.Map;
    
    import javax.servlet.http.HttpServletRequest;
    
    import com.hmc.entity.Book;
    import com.hmc.util.BaseDao;
    import com.hmc.util.JsonBaseDao;
    import com.hmc.util.JsonUtils;
    import com.hmc.util.PageBean;
    import com.hmc.util.StringUtils;
    
    public class MVC_Book_dao extends JsonBaseDao{
    
        /**
         * 查询分页
         * @param paMap
         * @param pageBean
         * @return
         * @throws Exception 
         * @throws Exception
         */
         public  List<Map<String, Object>> list(Map<String, String[]> paMap,PageBean pageBean) throws InstantiationException, IllegalAccessException, SQLException, Exception{
            //String sql="SELECT * FROM t_book";
            
             String bid=JsonUtils.getParamVal(paMap, "bid");
         
             String sql="SELECT * FROM t_mvc_book  ";        
             if(StringUtils.isNotBlank(bid)) {
                 sql+=" where bid like '%"+bid+"%'";
             }
             
            return super.executeQuery(sql, pageBean);
              
          }
          
         
         /**
          *修改 
         * @throws SQLException 
         * @throws IllegalAccessException 
         * @throws IllegalArgumentException 
         * @throws SecurityException 
         * @throws NoSuchFieldException 
          */
         public int upbook(Map<String, String[]> paMap,PageBean pageBean) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException, SQLException {
             String sql="update t_mvc_book set bname=?,price=? where bid=?";
             
             return executeUpdate(sql, new String[] {"bname","price","bid"}, paMap);
         }
    
         /**
          * 新增
          * @param paMap
          * @param pageBean
          * @return
          * @throws NoSuchFieldException
          * @throws SecurityException
          * @throws IllegalArgumentException
          * @throws IllegalAccessException
          * @throws SQLException
          */
         public int adbook(Map<String, String[]> paMap,PageBean pageBean) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException, SQLException {
             String sql="insert into t_mvc_book (bname,price) values(?,?)";
             return executeUpdate(sql, new String[] {"bname","price"}, paMap);
         }
         
         /**
          *删除
          * @param paMap
          * @param pageBean
          * @return
          * @throws NoSuchFieldException
          * @throws SecurityException
          * @throws IllegalArgumentException
          * @throws IllegalAccessException
          * @throws SQLException
          */
         public int dele(Map<String, String[]> paMap,PageBean pageBean) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException, SQLException {
              String bid=JsonUtils.getParamVal(paMap, "bid");
             String sql="delete from t_mvc_book where bid=?";
             System.out.println(sql);
             return executeUpdate(sql, new String[] {"bid"}, paMap);
         }
            
    }

     action层

    package com.hmc.action;
    
    import java.net.URL;
    import java.net.URLDecoder;
    import java.sql.SQLException;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import com.fasterxml.jackson.databind.ObjectMapper;
    import com.hmc.dao.MVC_Book_dao;
    import com.hmc.entity.Book;
    import com.hmc.util.PageBean;
    import com.zking.framework.ActionSupport;
    
    public class MVC_Book_Action extends ActionSupport{
          
        private  MVC_Book_dao book_dao=new MVC_Book_dao();
        
        private ObjectMapper mapper=new ObjectMapper();
        
        /**
         * 书籍查询所有加分页
         * @param request
         * @param response
         * @return
         * @throws Exception
         */
        public  String list(HttpServletRequest request,HttpServletResponse response) throws Exception {
         request.setCharacterEncoding("utf-8");
            
            PageBean pageBean=new PageBean();
            pageBean.setRequest(request);
             List<Map<String, Object>> list = this.book_dao.list(request.getParameterMap(), pageBean);
             Map<String, Object> map=new HashMap<>();
             map.put("count", pageBean.getTotal());
             map.put("data", list);
             map.put("code", 0);
             map.put("limit", pageBean.getRows());
             mapper.writeValue(response.getOutputStream(),map);
             return null;
                 
            }  
        
        public String updeBook(HttpServletRequest request,HttpServletResponse response) throws Exception {
            int upbook = this.book_dao.upbook(request.getParameterMap(), null);
             Map<String, Object> map=new HashMap<>();
             map.put("code", 0);
             mapper.writeValue(response.getOutputStream(),map);
            return null;
        }
        
        /**
         * 新增书籍
         * @param request
         * @param response
         * @return
         * @throws Exception
         */
        public String adBook(HttpServletRequest request,HttpServletResponse response) throws Exception {
            int adbook = this.book_dao.adbook(request.getParameterMap(), null);
             Map<String, Object> map=new HashMap<>();
             map.put("code", 0);
             mapper.writeValue(response.getOutputStream(),map);
            return null;
        }
        
        
        /**
         * 删除书籍
         * @param request
         * @param response
         * @return
         * @throws Exception
         */
        public String dele(HttpServletRequest request,HttpServletResponse response) throws Exception {
            int adbook = this.book_dao.dele(request.getParameterMap(), null);
             Map<String, Object> map=new HashMap<>();
             map.put("code", 0);
             mapper.writeValue(response.getOutputStream(),map);
            return null;
        }
    }

     jsp页面

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <base href="${pageContext.request.contextPath}/">
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    <link rel="stylesheet" type="text/css" href="statis/css/layui.css">   
    <script type="text/javascript" src="js/jquery-3.3.1.js"></script>
    <script type="text/javascript" src="statis/layui.all.js"></script>
    <script type="text/javascript" src="js/index.js"></script>
    <input type="hidden" id="absolutePath" value="${pageContext.request.contextPath}/">
    </head>
    <body>
    <div class="demoTable" style="margin-top: 20px;margin-left: 10px;">
      搜索ID:
      <div class="layui-inline">
        <input class="layui-input"  id="demoReload" autocomplete="off">
      </div>
      <button class="layui-btn" id="btn" data-type="reload">搜索</button>
    </div>
    <table class="layui-hide" id="demo" lay-filter="test"></table>
     
    <script type="text/html" id="barDemo">
      <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">查看</a>
      <a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>
      <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
    </script>
     
    <div class="layui-tab layui-tab-brief" lay-filter="demo">
      <div class="layui-tab-content">
        <div class="layui-tab-item layui-show">
        
          <div class="layui-carousel" id="test1">
           
          </div>
        </div>
        <div class="layui-tab-item">
          <div id="laydateDemo"></div>
        </div>
        <div class="layui-tab-item">
          <div id="pageDemo"></div>
        </div>
        <div class="layui-tab-item">
          <div class="layui-upload-drag" id="uploadDemo">
            <i class="layui-icon">�</i>
            <p>点击上传,或将文件拖拽到此处</p>
          </div>
        </div>
        <div class="layui-tab-item">
          <div id="sliderDemo" style="margin: 50px 20px;"></div>
        </div>
      </div>
    </div>
    
    
      

     js代码

    <script src="//res.layui.com/layui/dist/layui.js?t=1560414887305"></script>
    <script>
    layui.config({
      version: '1560414887305' //为了更新 js 缓存,可忽略
    });
    
    layui.use(['laydate', 'laypage', 'layer', 'table', 'carousel', 'upload', 'element', 'slider'], function(){
     var laydate = layui.laydate //日期
      ,laypage = layui.laypage //分页
      ,layer = layui.layer //弹层
      ,table = layui.table //表格
      ,upload = layui.upload //上传
      ,element = layui.element //元素操作
      ,slider = layui.slider //滑块
     
      tables();
      var text;
      $('#btn').click(function(){
          
          text=$('#demoReload').val();
          tables();
        });
     
      //执行一个 table 实例
     function tables(){
      table.render({
        elem: '#demo'
        ,height: 420
        ,url: 'bookAction.action?methodName=list&&bid='+text+'' //数据接口
        ,title: '用户表'
        ,totalRow :true
        ,page: true //开启分页
        ,toolbar: 'default' //开启工具栏,此处显示默认图标,可以自定义模板,详见文档
        ,totalRow: true //开启合计行
        ,cols: [[ //表头
          {type: 'checkbox', fixed: 'left'}
          ,{field: 'bid', title: 'ID', 300, align:'center', sort: true, fixed: 'left', totalRowText: '合计:'}
          ,{field: 'bname', title: '书本名称', 300 ,align:'center'}
          ,{field: 'price', title: '价格',  300,align:'center', sort: true, totalRow: true}
          ,{fixed: 'right',  400, align:'center', toolbar: '#barDemo'}
        ]]
      });
      }
      //监听头工具栏事件
      table.on('toolbar(test)', function(obj){
        var checkStatus = table.checkStatus(obj.config.id)
        ,data = checkStatus.data; //获取选中的数据
        switch(obj.event){
          case 'add':
           add();
          break;
          case 'update':
            if(data.length === 0){
              layer.msg('请选择一行');
            } else if(data.length > 1){
              layer.msg('只能同时编辑一个');
            } else {
              layer.alert('编辑 [id]:'+ checkStatus.data[0].bid);
            }
          break;
          case 'delete':
            if(data.length === 0){
              layer.msg('请选择一行');
            } else {
              layer.msg('删除');
            }
          break;
        };
      });
      
      //监听行工具事件
      table.on('tool(test)', function(obj){ //注:tool 是工具条事件名,test 是 table 原始容器的属性 lay-filter="对应的值"
        var data = obj.data //获得当前行数据
        ,layEvent = obj.event; //获得 lay-event 对应的值
        if(layEvent === 'detail'){
          layer.msg('查看操作');
        } else if(layEvent === 'del'){
          layer.confirm('真的删除行么', function(index){
           // obj.del(); //删除对应行(tr)的DOM结构
             var params={
                     'bid':data.bid,
                  }
                 
             dele(params);
            layer.close(index);
            //向服务端发送删除指令
          });
        } else if(layEvent === 'edit'){
            
            edit(data)
        }
      });
      
     
     
      //分页
      laypage.render({
        elem: 'pageDemo' //分页容器的id
        ,count: 100 //总页数
        ,skin: '#1E9FFF' //自定义选中色值
        //,skip: true //开启跳页
        ,jump: function(obj, first){
          if(!first){
            layer.msg('第'+ obj.curr +'页', {offset: 'b'});
          }
        }
      });
      
     
     
      function edit(data){
         layer.open({
                type : 2,
                title : '修改',
                area : [ '500px', '300px' ],
                offset : '160px',
                shadeClose : true, // 点击遮罩关闭
                btn : ['保存','取消'],
                content : 'bookDetail.jsp',
                success : function(layero, index) { // 成功弹出后回调
                    layer.iframeAuto(index);
                     var body = layer.getChildFrame('body', index);  //巧妙的地方在这里哦
                        body.contents().find("#bname").val(data.bname);
                        body.contents().find("#price").val(data.price);
                        body.contents().find("#bid").val(data.bid);
                },
                
                yes : function(index, layero) { // 保存按钮回调函数
                                 // 获取iframe层的body
                     var body = layer.getChildFrame('body', index);  //巧妙的地方在这里哦
                                 // 找到隐藏的提交按钮模拟点击提交
                   // body.find('#permissionSubmit').click();
                     var name = body.contents().find("#bname").val();
                     var price=body.contents().find("#price").val();
                     var bid= body.contents().find("#bid").val();
                     var params={
                             'bname':name,
                             'price':price,
                             'bid':bid
                     };
                       upbook(params);
                       layer.close(index);
                },
                btn2 : function(index, layero) { // 取消按钮回调函数
                    layer.close(index); // 关闭弹出层
                }
    
          
        });
    }
    
      
      
      
      function add(){
             layer.open({
                    type : 2,
                    title : '新增书本',
                    area : [ '500px', '300px' ],
                    offset : '160px',
                    shadeClose : true, // 点击遮罩关闭
                    btn : ['保存','取消'],
                    content : 'bookDetail.jsp',
                    success : function(layero, index) { // 成功弹出后回调
                        
                    },
                    
                    yes : function(index, layero) { // 保存按钮回调函数
                                     // 获取iframe层的body
                       // var body = layer.getChildFrame('body', index);
                                     // 找到隐藏的提交按钮模拟点击提交
                      //  body.find('#permissionSubmit').click();
                        layer.iframeAuto(index);
                         var body = layer.getChildFrame('body', index);  //巧妙的地方在这里哦
                         var bname=body.contents().find("#bname").val();
                         var price=body.contents().find("#price").val();
                             var params={
                                      'bname':bname,
                                      'price':price,
                                      
                              };
                             addtabls(params);
                             layer.close(index);
                    },
                    btn2 : function(index, layero) { // 取消按钮回调函数
                        layer.close(index); // 关闭弹出层
                    }
                
              
            });
        }
      
      function upbook(params){
          $.ajax({
              url:"bookAction.action?methodName=updeBook",
              type:"post",
              dataType:'json',
              data:params,
              success:function(data){
                  layer.msg('修改成功');
                tables();
              },
              error:function(or){
                  alert('失败')
              }
          })
      }
      
      function  addtabls(params){
          $.ajax({
              url:"bookAction.action?methodName=adBook",
              type:"post",
              dataType:'json',
              data:params,
              success:function(data){
                  layer.msg('新增成功');
                 tables();
              },
              error:function(or){
                  alert('失败')
              }
          })
      }
      
      
      function  dele(params){
          $.ajax({
              url:"bookAction.action?methodName=dele",
              type:"post",
              dataType:'json',
              data:params,
              success:function(data){
                  layer.msg('删除成功');
                 tables();
              },
              error:function(or){
                  alert('失败')
              }
          })
      }
      
      
    });
    
    
    </script>

    表单代码

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <base href="${pageContext.request.contextPath}/">
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    <link rel="stylesheet" type="text/css" href="statis/css/layui.css">   
    <script type="text/javascript" src="js/jquery-3.3.1.js"></script>
    <script type="text/javascript" src="statis/layui.all.js"></script>
    <script type="text/javascript" src="js/index.js"></script>
    <input type="hidden" id="absolutePath" value="${pageContext.request.contextPath}/">
    </head>
    <body>
    <form id="ff" method="post">
    <script type="text/javascript" src="static/js/bookList.js"></script>
    
     <div class="layui-form-item" style="margin-top: 30px;">
     
       <div class="layui-inline">
           <label class="layui-form-label">书本名称</label>
          <div class="layui-input-inline">
         
            <input type="text" name="bid"  readonly="readonly" id="bid" class="layui-input">
          </div>
        </div>
     
        <div class="layui-inline">
           <label class="layui-form-label">书本名称</label>
          <div class="layui-input-inline">
         
            <input type="text" name="bname"  placeholder="请输入名称"  id="bname" class="layui-input">
          </div>
        </div>
        <div class="layui-inline">
          <label class="layui-form-label">书本价格</label>
          <div class="layui-input-inline">
            <input type="text" name="price" placeholder="请输入价格" id="price" class="layui-input">
          </div>
        </div>
      </div>
      
    
    
    </form>
    </body>
    </html>

    indexTree.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath }/static/js/layui/css/layui.css">   
    <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath }/static/js/layui/css/index.css">  
    <script type="text/javascript" src="${pageContext.request.contextPath }/static/js/layui/layui.js"></script>
    <script type="text/javascript" src="${pageContext.request.contextPath }/static/js/layui/layui.all.js"></script>
    <script type="text/javascript" src="${pageContext.request.contextPath }/static/js/layui/jquery-3.3.1.js"></script> 
    <script type="text/javascript" src="${pageContext.request.contextPath }/static/js/layui/indexTree.js"></script>  
    <title>Insert title here</title>
    </head>
    
    <body >
    <div class="layui-layout layui-layout-admin " id="app">
        <div class="layui-header">
            <div class="layui-logo">后台管理界面</div>
            <!-- 头部区域(可配合layui已有的水平导航) -->
            <ul class="layui-nav layui-layout-right">
                <li class="layui-nav-item"><a href="#" onclick="exit()">退出登录</a></li>
            </ul>
        </div>
     
     
        <div class="layui-side layui-bg-black">
            <div class="layui-side-scroll ">
                <div id="demo" ></div>
            </div>
        </div>
        
        <div class="layui-body">
            <div class="layui-tab" lay-filter="tabs" lay-allowClose="true">
                <ul class="layui-tab-title">
                </ul>
                <div class="layui-tab-content">
                </div>
            </div>
        </div>
        <div class="layui-footer" align="center" >
            <!-- 底部固定区域 -->
        </div>
    </div>
    </body>
    </html>

    indexTree.js

    $(function () {
        $.ajax({
            type: "post",
            url:'menuAction.action?methodName=treeMenu',
            dataType: "json",
            contenttype:"application/json",
            success: function (date) {
            var data=JSON.parse(date);
            	console.info(data);
                layui.tree({
                    elem: '#demo',// 传入元素选择器
                    nodes: data,
                    click: function (node) {// 点击tree菜单项的时候
                    	alert("123");
                        var element = layui.element;
                        var exist = $("li[lay-id='" + node.id + "']").length;//判断是不是用重复的选项卡
                        if (exist > 0) {
                            element.tabChange('tabs', node.id);// 切换到已有的选项卡
                        } else {
                            if (node.attributes.menuURL != null && node.attributes.menuURL != "") {// 判断是否需要新增选项卡
                                element.tabAdd(
                                    'tabs',
                                    {
                                        title: node.name,
                                        content: '<iframe   scrolling="yes" frameborder="0" src=" '
                                        + node.attributes.menuURL
                                        + ' " width="100%" height="100%"></iframe>'// 支持传入html
                                        ,
                                        // width="99%" height="99%"
                                        id: node.id
                                    });
                                element.tabChange('tabs', node.id);
                            }
                        }
    
                    }
                });
            }
        });
    })
    

      

    测试效果如下

     

     删除圣墟26章

     

    结果

     

    新增书籍

     

     结果

    修改豆豆1号为为红楼梦

     

     

    模糊查询(id含有55的)

     

  • 相关阅读:
    《Java课程实习》日志(周二)
    spring helloworld
    [Android L or M ]解除SwitchPreference与Preference的绑定事件
    Smobiler实现列表展示—GridView(开发日志十二)
    LA 4329(树状数组)
    CreateDialog Win32 API调用的一个小问题
    Android Gallery2源代码分析
    你男朋友是程序猿吧
    javaEE之--------统计站点在线人数,安全登录等(观察者设计模式)
    AppFuse 3常见问题与解决方法
  • 原文地址:https://www.cnblogs.com/xmf3628/p/11210541.html
Copyright © 2020-2023  润新知