通用Mapper设置id为uuid值

数据库测试表:

create table user
(
    id        varchar(40) not null
        primary key,
    user_name varchar(32) not null,
    pass_word varchar(50) not null,
    real_name varchar(32) null
)
    charset = utf8;

引入jar包:

    <dependency>
        <groupId>tk.mybatis</groupId>
        <artifactId>mapper-spring-boot-starter</artifactId>
        <version>2.0.4</version>
    </dependency>
    <!--MySQL数据库驱动-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>
    <!--mybatis分页插件-->
    <dependency>
        <groupId>com.github.pagehelper</groupId>
        <artifactId>pagehelper-spring-boot-starter</artifactId>
        <version>1.2.3</version>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.16.10</version>
        <scope>provided</scope>
    </dependency>

启动类如下:

package com.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import tk.mybatis.spring.annotation.MapperScan;

@SpringBootApplication
@MapperScan(basePackages = "com.demo.mapper")//指定要扫描的dao接口的包
public class SpringBootTestDemo {
    public static void main(String[] args) {
        SpringApplication.run(SpringBootTestDemo.class,args);
    }
}

mapper如下:

package com.demo.mapper;

import com.demo.dto.UserDto;
import org.springframework.stereotype.Component;
import tk.mybatis.mapper.common.Mapper;

@Component
public interface UserMapper extends Mapper<UserDto> {
}

测试控制器如下:

package com.demo.rest;

import com.demo.dto.UserDto;
import com.demo.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class RestControllerTest {
    @Autowired
    private UserMapper studentMapper;

    @GetMapping("users")
    public List<UserDto> getAllUsers(){
        return studentMapper.selectAll();
    }
    @PostMapping("users")
    public String addStudent(UserDto userDto){
        userDto.setId(null);
        studentMapper.insert(userDto);
        return userDto.getId();
    }
}


dao类如下:

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

@Data
@Table(name = "user")
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class UserDto {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY,generator = "select uuid()")
    private String id;
    private String userName;
    private String passWord;
    private String realName;
}

注意:主要是给userdto的id设置uuid
配置uuid有三种方法:
第一种: 在yml里面进行配置:
在这里插入图片描述

方法二:
1.增加如下配置

package com.demo.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import tk.mybatis.mapper.mapperhelper.MapperHelper;

@Configuration
public class MybaitsConfig {

    @Bean
    public MapperHelper mapperHelper(){
        MapperHelper mapperHelper = new MapperHelper();
        mapperHelper.getConfig().setBEFORE(true);
        return mapperHelper;
    }
}

2.修改启动类:
在这里插入图片描述
方法3:
在这里插入图片描述

下面是测试:
在这里插入图片描述

注意tkmapper的1.0和2.0有较大区别,注意版本…

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值