学习spring cloud记录2-在项目中使用mybatis-plus

前言

本记录详细记录本人学习spring cloud继承mybatis plus方法,适用于初学者。

项目结构简单介绍

本系统目前新建两个dmeo服务,分别是demo-user和demo-order两个module,结构完全一样,配置文件个人喜欢使用yml文件,结构如下:

 引入依赖

目前最新依赖为:

        <!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-boot-starter -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.1</version>
        </dependency>

多个项目同时需要这个依赖,可以将依赖在父级的pom文件中进行配置,然后让所有子模块继承父级即可,操作如下:

在所有子模块中添加parent标签,以表示父级地址,本项目如下:

    <parent>
        <groupId>priv.sinoam.cloud</groupId>
        <artifactId>spring-cloud</artifactId>
        <version>1.0-SNAPSHOT</version>
    </parent>

在父级将module表示出来:

    <modules>
        <module>demo-order</module>
        <module>demo-user</module>
    </modules>

配置完成后,子集项目可以共用父级所配置的依赖

配置application.yml配置文件

1.配置数据源

本项目使用MYSQL数据库,配置如下:

spring:
  application:
    name: demo-user
  datasource:
    url: jdbc:mysql://localhost:3306/springcloud-demo
    username: root
    password: *******
    driver-class-name: com.mysql.cj.jdbc.Driver

最新驱动为com.mysql.cj.jdbc.Driver,使用以前的会报错误

2.配置mybatis-plus

mybatis-plus:
  global-config:
    db-config:
      id-type: auto
      field-strategy: not_empty
        #驼峰下划线转换
      column-underline: true
        #逻辑删除配置
      logic-delete-value: 0
      logic-not-delete-value: 1
      db-type: mysql
    refresh: false
  configuration:
    map-underscore-to-camel-case: true
    cache-enabled: false
  mapper-locations: /mapper/**/*Mapper.xml

配置完成后,数据库和实体类必须是下划线式、驼峰式进行对应,否则使用自带的sql执行方法会找不到表

如最后一行所配置,实际路径为src/main/resources/mapper/**/*Mapper.xml,在src/main/resources/mapper下面的所有结尾为Mapper.xml的文件,都会被扫描到,如此一来,可以在mapper中写复杂sql

使用

以SYS_USER表为例,表结构如下:

 新建实体类:

 1 package priv.sinoam.demouser.demo.po;
 2 
 3 import java.io.Serializable;
 4 
 5 import lombok.Data;
 6 
 7 /**
 8  * sys_user
 9  *
10  * @author
11  */
12 @Data
13 public class SysUser implements Serializable {
14     private String id;
15 
16     /**
17      * 账号
18      */
19     private String account;
20 
21     /**
22      * 姓名
23      */
24     private String name;
25 
26     private static final long serialVersionUID = 1L;
27 }

新建Dao层接口:

1 package priv.sinoam.demouser.demo.mapper;
2 
3 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 import org.apache.ibatis.annotations.Mapper;
5 import priv.sinoam.demouser.demo.po.SysUser;
6 
7 @Mapper
8 public interface SysUserDao extends BaseMapper<SysUser> {
9 }

继承BaseMapper,将实体类传进去,需要注解@Mapper

在service层中进行使用,首先将接口注入进去:

    @Autowired
    private SysUserDao sysUserDao;

然后调用时会发现单表增删改查已经自动集成,直接调用即可

 若要写复杂sql,则需要在xml中进行编写。

先在Dao层接口中声明方法queryTest:

@Mapper
public interface SysUserDao extends BaseMapper<SysUser> {

    String queryTest();

}

然后再在对应的xml中编写sql:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="priv.sinoam.demouser.demo.mapper.SysUserDao">
  <resultMap id="BaseResultMap" type="priv.sinoam.demouser.demo.po.SysUser">
    <id column="ID" jdbcType="VARCHAR" property="id" />
    <result column="ACCOUNT" jdbcType="VARCHAR" property="account" />
    <result column="NAME" jdbcType="VARCHAR" property="name" />
  </resultMap>
  <sql id="Base_Column_List">
    ID, ACCOUNT, `NAME`
  </sql>
  <select id="queryTest" resultType="java.lang.String">
    select ID from SYS_USER WHERE ID = 1
  </select>

</mapper>

namespace为命名空间;只想对应的Dao接口,resultMap为结果集,指定返回结果为实体类,而且和字段一一对应,使用Base_Column_List作为返回值时,会自动转成实体类;最后可以看到select标签,id即Dao层接口的方法名,执行此方法后,将会执行这个sql。

结束

已经测试通过,主要环节在于配置。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值