Springboot整合通用mapper

通用Mapper的分享使用

參考博客spring

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的功能springboot

yml的配置

##通用mapper配置
mapper:
##實體類所在的包
  mappers: com.boss.hr.train.fishkkmybatis.basedao.BaseDao
  identity: MYSQL

建立實體類,這裏就省略了,接下來看一下是怎麼使用通用mapper的

  • userDao的基類繼承了前面定義的BaseDao,能夠看到通用mapper定義了一系列本身的函數來簡化數據庫的操做
  • 可是通用mapper值適合單表操做,若是涉及到奪標操做仍是不能避免使用Mybatis來寫SQL語句mybatis

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);
    }
}

最後一步,爲添加起步依賴註釋app

經過example來篩選數據庫實例

mybatis的逆向工程中會生成實例及實例對應的example,example用於添加條件,至關where後面的部分
Example爲咱們建立的實例 Example.createCriteria()爲咱們建立了條件容器,而後將咱們的篩選條件一一添加到裏面,最後用這個實例去查詢

Example的具體使用

寫的很詳細,我就不當一個搬運工了。框架

相關文章
相關標籤/搜索