整合Mybatis-Plus
以gulimall-product模块为例,整合Mybatis-Plus:
一、整合Mybatis-Plus
1、导入Mybatis-Plus所需的依赖
2、配置Mybatis-Plus
1)配置数据源:
配置数据库驱动:这里我们导入到被服务模块引用的gulimall-common中;
配置数据源:在application.yml文件中配置数据源相关信息;
2)配置Mybatis-Plus相关信息:
在启动类上使用@MapperScan,来配置扫描的Mapper接口的位置;
在application.yml中,配置Mybatis-plus,需要使用的sql映射文件的位置;
3)配置数据库主键自增长:
* 在application.yml中配置,这样就不必在每个bean上都配置了;
启动类:
@MapperScan("com.atguigu.gulimall.product.dao")
@SpringBootApplication
public class GulimallProductApplication {
public static void main(String[] args) {
SpringApplication.run(GulimallProductApplication.class, args);
}
}
application.yml:
spring:
datasource:
username: root
password: wt19980929?!
url: jdbc:mysql://116.62.228.75:3306/gulimall_pms?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
driver-class-name: com.mysql.jdbc.Driver
mybatis-plus:
mapper-locations: classpath:/mapper/**/*.xml
global-config:
db-config:
id-type: auto
然后可以通过单元测试测一下:
单元测试:
package com.atguigu.gulimall.product;
import com.atguigu.gulimall.product.entity.BrandEntity;
import com.atguigu.gulimall.product.service.BrandService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class GulimallProductApplicationTests {
@Autowired
BrandService brandService;
@Test
public void contextLoads() {
BrandEntity brandEntity = new BrandEntity();
brandEntity.setName("华为");
brandService.save(brandEntity);
System.out.println("保存成功....");
}
}
运行结果:
保存成功….
数据库插入成功的截图:
生成其他模块的基础代码
用renren-generator生辰跟其他模块的基础代码,各位服务模块都引入gulimall-common作为依赖,并且配置好各模块的配置文件(如端口号、数据库地址等);
并且注意各个微服务模块使用的springboot和springcloud版本,都改为跟gulimall-product一样。
这里面生成gulimall-ware时,有个UndoLog的表,有个字段是Longblob类型,这个在java里是没有对应的类型的,自动生成时,给了个Longblob,实际上没有,会报错,类型改成byte[] 就好。
用原本的数据库驱动com.mysql.jdbc.Driver可能会报错,建议换成新的:com.mysql.cj.jdbc.Driver