zoukankan      html  css  js  c++  java
  • Springboot整合通用mapper

    通用Mapper的分享使用

    参考博客

    Mybatis的通用mapper和Hibernate一样都实现了JPA接口,简化了数据库的操作

    和Hibernate的对比

    Hibernate和Mybatis都是对数据库的单表操作。Hibernate的封装更加彻底,但是由于写死,性能和框架大小都被限制,而通用Mapper提供一个example来提供给使用者自定义查询

    通用Mapper的使用

    添加pom依赖

            <dependency>
                <groupId>tk.mybatis</groupId>
                <artifactId>mapper-spring-boot-starter</artifactId>
                <version>2.0.2</version>
            </dependency>
    
    • 通用mapper是在springboot集成了Mybatis的基础上进行使用的

    创建通用接口

    package com.boss.hr.train.fishkkmybatis.basedao;
    
    import tk.mybatis.mapper.common.Mapper;
    import tk.mybatis.mapper.common.MySqlMapper;
    
    /**
     *
     *  公用Mapper接口
     *@author  fishkk
     *@version  1.0.0
     *@since
     *
     * 修改人信息
     *@author
     *@version
     *@since
     *
     */
    public interface BaseDao<T>  extends Mapper<T>,MySqlMapper<T> {
    }
    

    之后- 所有继承BaseDao的接口都最有通用mapper的功能

    yml的配置

    ##通用mapper配置
    mapper:
    ##实体类所在的包
      mappers: com.boss.hr.train.fishkkmybatis.basedao.BaseDao
      identity: MYSQL
    

    创建实体类,这里就省略了,接下来看一下是怎么使用通用mapper的

    • userDao的基类继承了前面定义的BaseDao,可以看到通用mapper定义了一系列自己的函数来简化数据库的操作
    • 但是通用mapper值适合单表操作,如果涉及到夺标操作还是不能避免使用Mybatis来写SQL语句

    package com.xyz.mapper;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import tk.mybatis.spring.annotation.MapperScan;
    
    @SpringBootApplication
    @MapperScan("com.xyz.mapper.dao")//注意MapperScan要导tk的包,不然会报NoSuchMethodException
    public class MapperApplication {
    
    	public static void main(String[] args) {
    		SpringApplication.run(MapperApplication.class, args);
    	}
    }
    
    

    最后一步,为添加起步依赖注释

    通过example来筛选数据库实例

    mybatis的逆向工程中会生成实例及实例对应的example,example用于添加条件,相当where后面的部分
    Example为我们创建的实例 Example.createCriteria()为我们创建了条件容器,然后将我们的筛选条件一一添加到里面,最后用这个实例去查询

    Example的具体使用

    写的很详细,我就不当一个搬运工了。

  • 相关阅读:
    剑指Offer-11.二进制中1的个数(C++/Java)
    剑指Offer-10.矩形覆盖(C++/Java)
    剑指Offer-9.变态跳台阶(C++/Java)
    UVA 1608 Non-boring sequence 不无聊的序列(分治,中途相遇)
    UVA1607 Gates 与非门电路 (二分)
    UVA 1451 Average平均值 (数形结合,斜率优化)
    UVA 1471 Defense Lines 防线 (LIS变形)
    UVA 1606 Amphiphilic Carbon Molecules 两亲性分子 (极角排序或叉积,扫描法)
    UVA 11134 FabledRooks 传说中的车 (问题分解)
    UVA 1152 4 Values Whose Sum is Zero 和为0的4个值 (中途相遇)
  • 原文地址:https://www.cnblogs.com/fishkk/p/11367709.html
Copyright © 2011-2022 走看看