美文网首页
spring boot 集成 通用 mapper

spring boot 集成 通用 mapper

作者: 风洛神 | 来源:发表于2020-01-01 17:43 被阅读0次

前言

通用mapper具体使用教程可以参考该连接

一。pom.xml配置

<dependencies>
    <!--spring boot 正常依赖 此处省略-->    

    <!-- mysql数据库 驱动 -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.25</version>
    </dependency>

   <!-- lombok依赖-->
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.2</version>
        <scope>provided</scope>
    </dependency>

    <!-- 通用mapper -->
    <dependency>
        <groupId>tk.mybatis</groupId>
        <!--也可以使用mapper, 我使用的是mapper-spring-boot-starter-->
        <artifactId>mapper-spring-boot-starter</artifactId>
        <version>2.1.5</version>
    </dependency>

    <!--通用mapper分页的依赖-->
    <dependency>
        <groupId>com.github.pagehelper</groupId>
        <artifactId>pagehelper-spring-boot-starter</artifactId>
        <version>1.2.7</version>
    </dependency>
</dependencies>

二。application.yml配置文件

spring:
  datasource:
    url: jdbc:mysql://ip:3306/db_name?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2b8
    username: username
    password: password
    driver-class-name: com.mysql.jdbc.Driver

#mybatis配置
mybatis:
  mapper-locations: classpath:mapper/*.xml
  identity: MYSQL

#通用mapper配置,也可以不需要该配置,该作用主要是自定义一个通用的接口,多有dao层都继承该接口
mapper:
  mappers: com.example.demo.mapper.TKMapper

三。mapperscan配置

//注意: 一定要注意MapperScan 的导入包为tk.mybatis.spring.annotation.MapperScan 不要导入mybatis的否则会出现mapper配置出错,运行不了
//是因为mybatis的dao层需要依赖mapper的xml文件
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import tk.mybatis.spring.annotation.MapperScan;

@SpringBootApplication
//dao层的扫描路径
@MapperScan("com.example.demo.dao")
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

四。实例

package com.example.demo.been;
import lombok.Data;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date;

@Table(name = "bebo_detail_data") //数据表名称
@Data
public class BeboDetailData {
    @Id //当前id为主键
    @GeneratedValue(generator = "JDBC") 
    private Long id;

    private String deviceUuid;
    private Long tradeId;
    private Long schoolId;
    private Long orgId;
    private Date onlineTime;
    private Date offlineTime;
}

五。mapper通用接口

注:写该接口的作用是通用mapper接口有可能依赖的比较多,例如该代码中就依赖了Mapper, MySqlMapper。这样写可以一次引入,其他的dao层直接依赖TKMapper就可以。需要传入指定的been类型。(注意yml文件对该接口的配置)

package com.example.demo.mapper;
import tk.mybatis.mapper.common.Mapper;
import tk.mybatis.mapper.common.MySqlMapper;
public interface TKMapper<T> extends Mapper<T>, MySqlMapper<T>{
}

六。dao层接口

注:如果是比较简单,通用mapper能够满足的sql, 就直接采用通用mapper的方式操作数据库。如果sql是比较复杂的例如多表联合查询,可能需要在接口中定义方法,在 .xml中实现sql语句(和mybits一样)。

package com.example.demo.dao;
import com.example.demo.been.BeboDetailData;
import com.example.demo.mapper.TKMapper;
public interface BeboDataDao extends TKMapper<BeboDetailData> {
  //可以实现方法,在xml中实现sql
}

七。测试用例,采用springboot的测试类

package com.example.demo;
import com.example.demo.been.BeboDetailData;
import com.example.demo.dao.BeboDataDao;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.List;
@SpringBootTest
@Slf4j
class DemoApplicationTests {
    @Autowired
    BeboDataDao beboDataDao;
    @Test
    void contextLoads() {
        List<BeboDetailData> datas = beboDataDao.selectAll();
        System.out.println(datas);
    }
}

结果展示

[BeboDetailData(id=22, deviceUuid=2019061000010028, tradeId=null, schoolId=9, orgId=1128552550732136448, onlineTime=Mon Dec 23 09:56:17 CST 2019, offlineTime=Mon Dec 23 09:57:06 CST 2019), BeboDetailData(id=23, deviceUuid=2019061000010028, tradeId=null, schoolId=9, orgId=1128552550732136448, onlineTime=Mon Dec 23 10:02:17 CST 2019, offlineTime=Mon Dec 23 10:02:45 CST 2019)]

相关文章

网友评论

      本文标题:spring boot 集成 通用 mapper

      本文链接:https://www.haomeiwen.com/subject/mxmooctx.html