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的具体使用

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

  • 相关阅读:
    听豆瓣架构变迁分享会总结
    业界对生成图片缩略图的做法归纳
    58和百姓网的技术学习
    减少存储过程封装业务逻辑-web开发与传统软件开发的思维模式不同
    网站速度问题排查与定位经验
    调度思想-现实中的事物与技术里面其实存在类似道理
    关于图片或者文件在数据库的存储方式归纳
    mysql单表体积和一个库设计多少张表为妥
    php的变量引用与销毁机制
    选择技术方案权衡时,考虑对其可控性很重要
  • 原文地址:https://www.cnblogs.com/fishkk/p/11367709.html
Copyright © 2011-2022 走看看