go mysql 最新uuid_springboot整合mybatis使用Mysql实现主键UUID

实现

基础项目的pom.xml部分代码如下

1.8

org.springframework.boot

spring-boot-starter-parent

1.5.9.RELEASE

org.springframework.boot

spring-boot-starter-web

org.springframework.boot

spring-boot-starter-jdbc

org.springframework.boot

spring-boot-starter-test

test

commons-codec

commons-codec

org.apache.commons

commons-lang3

3.6

com.google.guava

guava

23.0

mysql

mysql-connector-java

runtime

org.mybatis

mybatis-spring

1.3.1

org.mybatis

mybatis

3.4.5

tk.mybatis

mapper

3.4.2

com.github.pagehelper

pagehelper

4.2.1

com.alibaba

fastjson

1.2.44

com.alibaba

druid-spring-boot-starter

1.1.6

具体的mybatis配置如下

@Bean

public MapperScannerConfigurer mapperScannerConfigurer() {

MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();

mapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactoryBean");

mapperScannerConfigurer.setBasePackage(MAPPER_PACKAGE);

//配置通用Mapper,详情请查阅官方文档

Properties properties = new Properties();

properties.setProperty("mappers", MAPPER_INTERFACE_REFERENCE);

properties.setProperty("notEmpty", "true");//insert、update是否判断字符串类型!='' 即 test="str != null"表达式内是否追加 and str != ''

properties.setProperty("IDENTITY", "SELECT UUID()");//使用UUID作為主鍵

properties.setProperty("ORDER","BEFORE");//将查询主键作为前置操作

mapperScannerConfigurer.setProperties(properties);

return mapperScannerConfigurer;

}

实体如下

public class User {

@Id

@Column(name = "ID")

@GeneratedValue(strategy = GenerationType.IDENTITY)

private String id;

@Column(name = "CREATED_BY")

private String createdBy;

@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")

@Column(name = "CREATED_DATE")

private Date createdDate;

@Column(name = "LAST_MODIFIED_BY")

private String lastModifiedBy;

@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")

@Column(name = "LAST_MODIFIED_DATE")

private Date lastModifiedDate;

下面这一行代码是为了解决spring MVC在入参是Date类型时或出现异常的问题

@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")

测试

配置文件配置输出mybatis的sql日志

logging.level.com.你的dao或mapper包=debug

执行对应插入操作观察控制台

2018-03-06 17:59:22.612 DEBUG 6208 --- [nio-8686-exec-1] XXXXX: ==> Executing: SELECT UUID()

2018-03-06 17:59:22.629 DEBUG 6208 --- [nio-8686-exec-1] XXXXX: <== Total: 1

2018-03-06 17:59:22.651 DEBUG 6208 --- [nio-8686-exec-1] XXXXX: ==> Preparing: INSERT INTO user ( ID,USER_NAME,NICK_NAME,PWD_SALT,PWD_LOGIN,CREATED_BY,CREATED_DATE,LAST_MODIFIED_BY,LAST_MODIFIED_DATE,ACCOUNT_TYPE,ACCOUNT_LOCKED,ONLINE_STATUS,GROUP_ID,GROUP_NAME ) VALUES( ?,?,?,?,? )

2018-03-06 17:59:22.665 DEBUG 6208 --- [nio-8686-exec-1] XXXXX: ==> Parameters: 0b97ad1b-2125-11e8-9b42-704d7b7036d3(String), 2(String), 2018-01-01 01:07:05.0(Timestamp), 2(String), 2018-01-01 01:07:05.0(Timestamp)

2018-03-06 17:59:22.670 DEBUG 6208 --- [nio-8686-exec-1] XXXXX: <== Updates: 1

可以看到,首先执行了查询UUID的操作,然后将执行结果作为插入的主键执行插入操作.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值