zoukankan      html  css  js  c++  java
  • SpringBoot.2.4.0整合mybatis-plus

    引入依赖

            <!--整合mybatis-plus,因为其中整合了spring-boot-starter-data-jdbc和mybatis-spring-boot-starter,所以注释掉-->
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-boot-starter</artifactId>
                <version>3.4.1</version>
            </dependency>
    

    编写测试类

    @AllArgsConstructor
    @NoArgsConstructor
    @Data
    public class AccountTem {
    
        private Integer id;
        private String contact;
        private String addressDesc;
        private String postCode;
        private String tel;
    }
    
    import com.baomidou.mybatisplus.core.mapper.BaseMapper;
    
    /**
     * @auther kaka
     * @create 2021-08-19 15:35
     */
    public interface AccountTemMapper extends BaseMapper<AccountTem> {
    
    }
    
    import com.baomidou.mybatisplus.extension.service.IService;
    
    /**
     * @auther kaka
     * @create 2021-08-19 17:23
     */
    public interface AccountTemService extends IService<AccountTem> {
    
    }
    
    import com.atguigu.admin.bean.AccountTem;
    import com.atguigu.admin.mapper.AccountTemMapper;
    import com.atguigu.admin.service.AccountTemService;
    import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
    import org.springframework.stereotype.Service;
    
    /**
     * @auther kaka
     * @create 2021-08-19 17:24
     */
    @Service
    public class AccountTemServiceImpl extends ServiceImpl<AccountTemMapper, AccountTem> implements AccountTemService {
    
    }
    

    添加@Mapper注解,不加的话,测试不成功
    image

        @Autowired
        AccountTemService accountTemService;
    
        @Test
        public void test4(){
            AccountTem accountTem = accountTemService.getById(1);
            System.out.println(accountTem);
    
            List<AccountTem> accountTems = accountTemService.list();
            accountTems.forEach(System.out::println);
        }
    

    其他配置

    想实现分页,可以用mybatis-plus分页拦截器

    import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
    import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    /**
     * @auther kaka
     * @create 2021-08-19 23:38
     */
    @Configuration
    public class MyBatisConfig {
    
        @Bean
        public MybatisPlusInterceptor paginationInterceptor(){
            MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
            //这是分页拦截器
            PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor();
            paginationInnerInterceptor.setOverflow(true);
            paginationInnerInterceptor.setMaxLimit(500L);
            mybatisPlusInterceptor.addInnerInterceptor(paginationInnerInterceptor);
            return mybatisPlusInterceptor;
        }
    }
    

    在controller使用可以这样用

    @GetMapping("/dynamic_table")
        public String dynamic_table(@RequestParam(value = "pn",defaultValue = "1")Integer pn, Model model){
            List<AccountTem> accountTems = accountTemService.list();
            //要分页必须配置分页拦截器,参考 MyBatisConfig.java
            Page<AccountTem> page = new Page<>(pn, 5);
            Page<AccountTem> accountTemPage = accountTemService.page(page, null);
            model.addAttribute("page",page);
    
            return "table/dynamic_table";
        }
    
        @GetMapping("/delete/{id}")
        public String delete(@PathVariable("id")Long id, @RequestParam(value = "pn",defaultValue = "1")Integer pn, RedirectAttributes redirectAttributes){
            accountTemService.removeById(id);
            //删除的第几页,重定向之后依然是第几页
            redirectAttributes.addAttribute("pn",pn);
            return "redirect:/dynamic_table";
        }
    

    前台用thymeleaf

                            <div class="panel-body">
                                <div class="adv-table">
                                    <table class="display table table-bordered table-striped" id="dynamic-table">
                                        <thead>
                                        <tr>
                                            <th>#</th>
                                            <th>主键</th>
                                            <th>联系人</th>
                                            <th>联系地址</th>
                                            <th>邮政编码</th>
                                            <th>联系电话</th>
                                        </tr>
                                        </thead>
                                        <tbody>
                                        <tr class="gradeX" th:each="accountTem,stats:${page.records}">
                                            <td th:text="${stats.count}"></td>
                                            <td th:text="${accountTem.id}"></td>
                                            <td th:text="${accountTem.contact}"></td>
                                            <td th:text="${accountTem.addressDesc}"></td>
                                            <td th:text="${accountTem.postCode}"></td>
                                            <td th:text="${accountTem.tel}"></td>
                                            <td>
                                                <a th:href="@{/delete/{id}(id=${accountTem.id},pn=${page.current})}" class="btn btn-danger btn-sm" type="button">删除</a>
                                            </td>
                                        </tr>
                                        </tbody>
                                        <tfoot>
                                        </tfoot>
                                    </table>
                                    <div class="row-fluid">
                                        <div class="span6">
                                            <div class="dataTables_info" id="dynamic-table_info">
                                                当前第 [[${page.current}]] 页 总计 [[${page.pages}]] 页 共 [[${page.total}]] 条记录
                                            </div>
                                        </div>
                                        <div class="span6">
                                            <div class="dataTables_paginate paging_bootstrap pagination">
                                                <ul>
                                                    <li class="prev"><a th:href="@{/dynamic_table(pn=${page.current}-1)}">← 前一页</a></li>
                                                    <li th:class="${num == page.current?'active':''}" th:each="num:${#numbers.sequence(1,page.pages)}">
                                                        <a th:href="@{/dynamic_table(pn=${num})}">[[${num}]]</a>
                                                    </li>
                                                    <li class="next"><a th:href="@{/dynamic_table(pn=${page.current}+1)}">后一页 → </a></li>
                                                </ul>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </div>
    
  • 相关阅读:
    正则表达式
    navicat 远程连接mysql
    配置网络
    swoole 定时器
    goroutine调度源码阅读笔记
    Golang GC 算法
    git常用操作合集
    utf8和utf8mb4的区别
    正则表达式忽略分组顺序匹配(前瞻、后顾、负前瞻、负后顾的应用)
    goroutine上下文切换机制
  • 原文地址:https://www.cnblogs.com/kaka-qiqi/p/15163990.html
Copyright © 2011-2022 走看看