前言

本记录详细记录本人学习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。

结束

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

学习spring cloud记录2-在项目中使用mybatis-plus的更多相关文章

  1. Spring Boot可以离开Spring Cloud独立使用开发项目,但是Spring Cloud离不开Spring Boot,属于依赖的关系。

    Spring Boot 是 Spring 的一套快速配置脚手架,可以基于Spring Boot 快速开发单个微服务,Spring Cloud是一个基于Spring Boot实现的云应用开发工具:Spr ...

  2. SpringBoot项目中,Mybatis的使用

    项目中使用MyBatis的地方很少,可以说是基本不用,慕课网上面这个项目介绍给也就是一些比较简单的使用例子,我用JPA比较的多,MyBatis有两种使用方式 1.导入MyBatis的依赖 <de ...

  3. Spring学习(四)在Web项目中实例化IOC容器

    1.前言 前面我们讲到Spring在普通JAVA项目中的一些使用.本文将介绍在普通的Web项目中如何实例化Spring IOC容器.按照一般的思路.如果在Web中实例化Ioc容器.这不得获取Conte ...

  4. 深入学习spring cloud gateway 限流熔断

    前言 Spring Cloud Gateway 目前,Spring Cloud Gateway是仅次于Spring Cloud Netflix的第二个最受欢迎的Spring Cloud项目(就GitH ...

  5. Spring Cloud集成相关优质项目推荐

    Spring Cloud Config 配置管理工具包,让你可以把配置放到远程服务器,集中化管理集群配置,目前支持本地存储.Git以及Subversion. Spring Cloud Bus 事件.消 ...

  6. 如果你也打算学习 Spring Cloud

    说到 Spring Cloud,那肯定要少不了提一下微服务框架,所谓的微服务框架就是把负责的功能拆分成比较小.功能比较单一的服务独立处理,例如单点登录服务.支付服务.订单服务等,当然如果订单功能比较复 ...

  7. Spring Cloud OAuth2.0 微服务中配置 Jwt Token 签名/验证

    关于 Jwt Token 的签名与安全性前面已经做了几篇介绍,在 IdentityServer4 中定义了 Jwt Token 与 Reference Token 两种验证方式(https://www ...

  8. 【spring cloud】spring cloud打包最外层项目报错:'packaging' with value 'jar' is invalid. Aggregator projects require 'pom' as packaging. @ line 9, column 13

    OK,spring cloud项目,最外层的父级项目在打包的时候,报错如下: "C:\Program Files\Java\jdk1.8.0_131\bin\java" -Dmav ...

  9. salesforce零基础学习(一百零三)项目中的零碎知识点小总结(五)

    本篇参考:Salesforce Admin篇(四) Security 之Two-Factor Authentication & Single Sign On https://developer ...

  10. salesforce零基础学习(七十二)项目中的零碎知识点小总结(一)

    项目终于告一段落,虽然比较苦逼,不过也学到了好多知识,总结一下,以后当作参考. 一.visualforce标签中使用html相关的属性使用 曾经看文档没有看得仔细,导致开发的时候走了一些弯路.还好得到 ...

随机推荐

  1. 比df更好用的命令!

    大家好,我是良许. 对于分析磁盘使用情况,有两个非常好用的命令:du 和 df .简单来说,这两个命令的作用是这样的: du 命令:它是英文单词 disk usage 的简写,主要用于查看文件与目录占 ...

  2. System V信号量 vs. POSIX信号量:核心区别与选型指南

    System V信号量 vs. POSIX信号量:核心区别与选型指南 最近在学习linux系统编程的章节,接触到了两种信号量,所以专门研究了二者的区别,将二者的对比记录于此. 在Linux多线程/进程 ...

  3. 二叉树专题学习(C++版) 基础的上机题

    前言: 由于二叉树这一章的题型比较多,涉及到的递归程序也较多,所以单开一个随笔来记录这个学习过程,希望对读者有帮助. 理论知识基础 在二叉树的选择题中,常常会涉及到对于最多或最少结点.最大或最小高度. ...

  4. shell处理字符串

    概念 字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号. 单引号声明字符串 单引号里的任何字符都会原样输出, ...

  5. Cpu 资源占用高排查

    查看java进程 ps aux | grep java 或者 ps -ef | grep java 查看java进程 线程信息 使用top -p [PID] -H 观察该进程中所有线程的资源占用 to ...

  6. windows下redis设置redis开机自启动

    windows系统下启动redis命令 进入redis安装目录 cd redis 输入 redis-server.exe redis.windows.conf 启动redis命令,看是否成功 可能会启 ...

  7. python基础必练题!!

    水仙花数 水仙花数 info = 3 while info: # 用户输入数字 try: print(f"请输入数字,您有{info}次机会!!") num = int(input ...

  8. 【记录】LaTeX|Overleaf中ACM的LaTex模板的图片引用出现问号

    问题 单张图片引用,出现如下问题: 出问题的LaTeX部分: As is shown in Figure~\ref{img:result}: \begin{figure}[h] \centering ...

  9. [随记]-linux侦听端口的4种方法

    侦听 192.168.0.1 服务器上的 10086 端口是否打开 1. telnet telnet是windows 内置的功能,当然 linux 也有.用法:  tenlet 192.168.0.1 ...

  10. 【语义分割专栏】先导篇:评价指标(PA,CPA,IoU,mIoU,FWIoU,F1)

    目录 前言 混淆矩阵 计算混淆矩阵 评价指标 像素准确率(Pixel Accuracy,PA) 类别像素准确率(Class Pixel Accuracy,CPA) 类别平均像素准确率(Mean Pix ...