Spring+SpringMVC+MyBatis+layui实现列表分页,模糊查询

在这里插入图片描述
前端html代码

<!DOCTYPE html>
<html xmlns:shiro="http://www.pollix.at/thymeleaf/shiro" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="utf-8">
    <title>layui</title>
    <!--//不缓存-->
    <META HTTP-EQUIV="pragma" CONTENT="no-cache">
    <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
    <META HTTP-EQUIV="expires" CONTENT="0">
    <meta http-equiv="Pragma" content="no-cache" />
    <meta http-equiv="Cache-Control" content="no-cache" />
    <meta http-equiv="Cache" content="no-cache" />
    <link rel="stylesheet" href="/plugins/layui/css/layui.css"  media="all">
    <script src="/src/js/jquery-2.1.0.min.js"></script>
    <!--<script src="/js/personal/theme.js"></script>-->
    <!-- 注意:如果你直接复制所有代码到本地,上述css路径需要改成你本地的 -->
</head>
<body>
            <form class="layui-form layui-col-md12 x-so" id="complain_search">
                id:
                <div class="layui-input-inline">
                    <input type="text" name="teThemeId" id="teThemeId"
                           placeholder="请输入id" autocomplete="off" class="layui-input">
                </div>
                标题内容:
                <div class="layui-input-inline">
                    <input type="text" name="teThemeTitle" id="teThemeTitle"
                           placeholder="请输入内容" autocomplete="off" class="layui-input">
                </div>
                是否显示:
                <div class="layui-input-inline">
                    <select name="teThemeDisplay" id="teThemeDisplay" lay-filter="aihao">
                        <option value="">---请选择---</option>
                        <option value="0"></option>
                        <option value="1"></option>
                    </select>
                </div>
                <button type="button" class="layui-btn" data-type="reload" id="queryRole">
                    <i class="layui-icon">&#xe615;</i>
                </button>
            </form>

    <table class="layui-hide" id="test" lay-filter="complainList"></table>

    <!--<script type="text/html" id="complain_toolbar">-->
        <!--<div class="layui-btn-container">-->
            <!--<button class="layui-btn layui-btn-sm" lay-event="add" onclick="add()"><i class="layui-icon"></i>添加</button>-->
            <!--<a class="layui-btn btn-add btn-default" ><i class="layui-icon">&#x1002;</i></a>-->
        <!--</div>-->
    <!--</script>-->

    <script type="text/html" id="barDemo">
        <a class="layui-btn 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>

<script src="/plugins/layui/layui.js" charset="utf-8"></script>
<script>
        layui.use(['table','layer','form','laypage'], function () {
            var table = layui.table,
                layer = layui.layer,
                form = layui.form,
                laypage = layui.laypage;
            var tableIns=table.render({
                elem: '#test'
                ,id:'lioyt'
                , url: '/templateTheme/queryCara'
                , method: 'post' //默认:get请求
                ,toolbar: '#complain_toolbar'
                // ,data:{teThemeId:teThemeId,teThemeTitle:teThemeTitle}
                , cols: [
                    [
                        {field: 'teThemeId', width: "15%", title: 'ID', sort: true}
                        , {field: 'teThemeTitle', width: "15%", title: '标题'}
                        , {field: 'teThemeDisplay', width: "15%", title: '是否显示',
                        templet: function (data) {
                            if (data.teThemeDisplay == 0) {
                                return "<span>是</span>";
                            } else {
                                return "<span>否</span>";
                            }
                        }
                    }
                        , {field: 'teThemeType', width: "15%", title: '类型'}
                        , {field: 'teThemeCreationtime', width: "15%", title: '时间', sort: true}
                        , {fixed: 'right', title:'操作', toolbar: '#barDemo'}

                    ]
                ]
                , page: true//开启分页,默认page=1,limit=10
                , done: function (res, curr, count) {
                    //数据的回调用,可不写
                }  });
            $('#queryRole').on('click', function(){
               // debugger
                tableIns.reload({
                    page:{
                        curr:1
                    },
                    where:{
                        teThemeId: $("input[name='teThemeId']").val(),
                        teThemeTitle: $("input[name='teThemeTitle']").val(),
                        teThemeDisplay: $("select[name='teThemeDisplay']").val()
                    }
                })
            });

            table.on('tool(complainList)', function(obj){ //注:tool是工具条事件名,test是table原始容器的属性 lay-filter="对应的值"
                var data = obj.data; //获得当前行数据
                var layEvent = obj.event; //获得 lay-event 对应的值(也可以是表头的 event 参数对应的值)
                var tr = obj.tr; //获得当前行 tr 的DOM对象
                var teThemeId = data.teThemeId;
                var teThemeTitle= data.teThemeTitle;
                switch(obj.event) {
                    case 'del':
                        var delIndex = layer.confirm('真的删除id为' + data.teThemeId + "的信息吗?", function(delIndex) {
                            $.ajax({
                                url: '/templateTheme/deleteid?teThemeId='+data.teThemeId,
                                type: "post",
                                //data:{data.teThemeId},
                                success: function(ctr) {
                                    if(ctr.data == true) {
                                        obj.del(); //删除对应行(tr)的DOM结构,并更新缓存
                                        layer.close(delIndex);
                                        console.log(delIndex);
                                        layer.msg("删除成功", {
                                            icon: 1
                                        });
                                        //  history.go(0)
                                    } else {
                                        layer.msg("删除失败", {
                                            icon: 5
                                        });
                                    } }
                            });
                            layer.close(delIndex);
                        });
                        break;

                    case 'edit':
                        var index = layer.open({
                            type: 2,
                            title: "编辑",
                            area: ['30%', '60%'],
                            fix: false,
                            maxmin: true,//开启最大化最小化按钮
                            shadeClose: true,
                            shade: 0.4,
                            skin: 'layui-layer-rim',
                            content: ["/personal/themeEdit.html", "no"],
                            success : function(layero, index){
                                var body = layui.layer.getChildFrame('body', index);
                                if(data){
                                    body.find(".teThemeId").val(data.teThemeId);
                                    body.find(".teThemeTitle").val(data.teThemeTitle);
                                    body.find(".teThemeType").val(data.teThemeType);
                                    body.find(".teThemeCreationtime").val(data.teThemeCreationtime);
                                    body.find(".teThemeDisplay").val(data.teThemeDisplay);
                                    // 记得重新渲染表单
                                    form.render();
                                }
                            }
                        });
                        break;
                }
            });
        });

    //添加
   function add() {
       var index = layer.open({
           type: 2,
           title: "添加",
           area: ['30%', '60%'],
           fix: false,
           maxmin: true,
           shadeClose: true,
           shade: 0.4,
           skin: 'layui-layer-rim',
           content: ["/personal/themeAdd.html", "no"],
       });
   }

</script>
</body>
</html>

java TemplateThemeController

@CrossOrigin(origins="*")
@Api(value = "主题管理", tags = {"主题管理"})
@RestController
@Slf4j
@RequestMapping(value = "/templateTheme" ,method= RequestMethod.GET)
public class TemplateThemeController{
  @Autowired
    private TemplateThemeService templateThemeService;
 @PostMapping("queryCara")
    public String getTemp(@RequestParam Map<String, Object> params) {
        //查询列表数据
        int page = Integer.parseInt(params.get("page").toString()),
                limit = Integer.parseInt(params.get("limit").toString());
        params.remove("limit");
        params.remove("page");
        Page<TemplateTheme> result = templateThemeService.getTemp(new Page<>(page, limit), params);
        int count = baseService.count(params);
        result.setTotal(count);
        JSONObject json = new JSONObject();
        json.put("code", 0);
        json.put("count", result.getTotal());
        json.put("data", result.getRecords());
        return json.toString();
    }
    }

TemplateThemeService

public interface TemplateThemeService  {
    //查询所有主题
    Page<TemplateTheme> getTemp(Page<TemplateTheme> objectPage, Map<String, Object> params);
    }

TemplateThemeServiceImpl

@Service
public class TemplateThemeServiceImpl implements TemplateThemeService {
    @Autowired
  	  private TemplateThemeMapper templateThemeMapper;
    @Override
    /* 查询所有主题 */
    public Page<TemplateTheme> getTemp(Page<TemplateTheme> page, Map<String, Object> params) {
        return page.setRecords(templateThemeMapper.getTemp(page,params));
    }
    }

TemplateThemeMapper

@Mapper
public interface TemplateThemeMapper{

    //查询所有主题
    List<TemplateTheme> getTemp(Pagination page,Map<String, Object> params);
    }

TemplateThemeMapper.xml

<!--查询列表-->
    <select id="getTemp" resultMap="BaseResultMap" >
        select * from template_theme
        where te_theme_state=0
        <if test='teThemeTitle!=null and teThemeTitle!=""'>
            and te_theme_title like CONCAT(CONCAT('%', #{teThemeTitle}),'%')
        </if>
        <if test='teThemeId!=null and teThemeId!=""'>
            and te_theme_id like CONCAT(CONCAT('%', #{teThemeId}),'%')
        </if>
        <if test='teThemeDisplay!=null and teThemeDisplay!=""'>
            and te_theme_display like CONCAT(CONCAT('%', #{teThemeDisplay}),'%')
        </if>
        <if test='teThemeType!=null and teThemeType!=""'>
            and te_theme_type =#{teThemeType}
        </if>
        order by  template_id asc
    </select>
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智能排班系统是一个应用了SpringSpring MVC、MyBatis、PageHelper等技术的系统。Spring是一个开源的Java开发框架,提供了依赖注入和面向切面编程等功能,可以简化应用程序开发的复杂性。Spring框架的主要特点是易于扩展和集成其他框架。 Spring MVC是Spring框架中的模块,用于开发基于Model-View-Controller模式的Web应用程序。它通过请求映射和视图解析等功能,将用户请求和响应进行有效地处理和分发。 MyBatis是一种Java持久层框架,通过XML或注解对数据库操作进行配置,提供了对SQL语句的执行和结果的映射功能。它简化了数据库访问的复杂性,提供了更好的SQL控制和性能优化。 PageHelper是一个开源的MyBatis物理分页插件,可以自动地对查询结果进行分页处理。它提供了简单的配置和使用方式,能够有效地减轻数据库的查询压力,提高系统性能。 GitHub是一个基于Git版本控制系统的代码托管平台,开发人员可以在上面创建和管理项目的代码仓库。它提供了多人协同开发、版本控制、代码审查、问题追踪等功能,能够有效地提高开发效率和代码质量。 综上所述,智能排班系统应用了SpringSpring MVC、MyBatis和PageHelper等技术,通过依赖注入、面向切面编程、模型-视图-控制器模式和物理分页等功能,实现了对数据库操作的简化、Web应用程序的高效处理和查询结果的分页处理。同时,利用GitHub进行代码托管,实现了多人协同开发和版本控制,提高了系统的可维护性和代码的质量。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值