整合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上都配置了;

启动类:

  1. @MapperScan("com.atguigu.gulimall.product.dao")
  2. @SpringBootApplication
  3. public class GulimallProductApplication {
  4. public static void main(String[] args) {
  5. SpringApplication.run(GulimallProductApplication.class, args);
  6. }
  7. }

application.yml:

  1. spring:
  2. datasource:
  3. username: root
  4. password: wt19980929?!
  5. url: jdbc:mysql://116.62.228.75:3306/gulimall_pms?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
  6. driver-class-name: com.mysql.jdbc.Driver
  7. mybatis-plus:
  8. mapper-locations: classpath:/mapper/**/*.xml
  9. global-config:
  10. db-config:
  11. id-type: auto

然后可以通过单元测试测一下:
image.png
单元测试:

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("保存成功....");

    }

}

运行结果:

保存成功….

数据库插入成功的截图:
image.png

生成其他模块的基础代码

用renren-generator生辰跟其他模块的基础代码,各位服务模块都引入gulimall-common作为依赖,并且配置好各模块的配置文件(如端口号、数据库地址等);
并且注意各个微服务模块使用的springboot和springcloud版本,都改为跟gulimall-product一样。

这里面生成gulimall-ware时,有个UndoLog的表,有个字段是Longblob类型,这个在java里是没有对应的类型的,自动生成时,给了个Longblob,实际上没有,会报错,类型改成byte[] 就好。

用原本的数据库驱动com.mysql.jdbc.Driver可能会报错,建议换成新的:com.mysql.cj.jdbc.Driver