02_Spring Cloud Alibaba整合通用Mapper+Lombok+Mysql

Spring CLoud 整合通用Mapper+Lombok+Mysql

文章目录

  • 一、使用Spring Initializr快速创建Spring Boot应用
  • 二、相关依赖
    • 2.1. 添加依赖
    • 2.2. mybatis添加插件
    • 2.3. 在resources目录下面创建generator目录存放generatorConfig.xml
      • 2.3.1. config.properties配置文件
      • 2.3.2. lombok插件
      • 2.3.3. 数据库信息
      • 2.3.4. 代码生成实体类、mapper接口和mapper.xml
      • 2.3.5. 指定生成那些表
    • 2.4. config.properties配置文件
    • 2.4.1. 数据库信息
    • 2.4.2. 模块名称
    • 2.4.3. 表名
    • 2.5. 配置SpringBoot配置文件
      • 2.6. 运行数据库脚本
      • 2.7. 双击运行:
  • 三、代码生成效果
    • 3.1. 实体类效果:
    • 3.2. mapper接口效果:
    • 3.3. mapper映射文件效果:
  • 四、启动类添加注解
  • 五、单元测试
  • 六、发布一个list端点,进行web服务调用
    • 6.2. 调用服务截图

一、使用Spring Initializr快速创建Spring Boot应用

在这里插入图片描述
在这里插入图片描述
也可以都不选
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述创建项目完成!!!

二、相关依赖

2.1. 添加依赖

    <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--通用mapper--><dependency><groupId>tk.mybatis</groupId><artifactId>mapper-spring-boot-starter</artifactId><version>2.1.5</version></dependency><!--Lombok--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.8</version><scope>provided</scope></dependency><!-- mysql 驱动--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><!-- 单元测试--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies>

2.2. mybatis添加插件

         <plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><version>1.3.6</version><configuration><configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile><overwrite>true</overwrite><verbose>true</verbose></configuration><dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.16</version></dependency><!-- https://mvnrepository.com/artifact/tk.mybatis/mapper --><dependency><groupId>tk.mybatis</groupId><artifactId>mapper</artifactId><version>4.1.5</version></dependency></dependencies></plugin>

2.3. 在resources目录下面创建generator目录存放generatorConfig.xml

  • 涉及以下5部分:

2.3.1. config.properties配置文件

2.3.2. lombok插件

2.3.3. 数据库信息

2.3.4. 代码生成实体类、mapper接口和mapper.xml

2.3.5. 指定生成那些表

generatorConfig.xml文件内容如下:

<!DOCTYPE generatorConfigurationPUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"><generatorConfiguration><properties resource="generator/config.properties"/><context id="Mysql" targetRuntime="MyBatis3Simple" defaultModelType="flat"><property name="beginningDelimiter" value="`"/><property name="endingDelimiter" value="`"/><plugin type="tk.mybatis.mapper.generator.MapperPlugin"><property name="mappers" value="tk.mybatis.mapper.common.Mapper"/><property name="caseSensitive" value="true"/><property name="lombok" value="Getter,Setter,ToString"/></plugin><jdbcConnection driverClass="${jdbc.driverClass}"connectionURL="${jdbc.url}"userId="${jdbc.user}"password="${jdbc.password}"></jdbcConnection><!--实体--><javaModelGenerator targetPackage="com.gblfy.springboot.mapper.lombok.mysql.domain.entity.${moduleName}"targetProject="src/main/java"/><!--mapper.xml--><sqlMapGenerator targetPackage="com.gblfy.springboot.mapper.lombok.mysql.dao.${moduleName}"targetProject="src/main/resources"/><!--mapper接口--><javaClientGenerator targetPackage="com.gblfy.springboot.mapper.lombok.mysql.dao.${moduleName}"targetProject="src/main/java"type="XMLMAPPER"/><!--为哪张表生成代码--><table tableName="${tableName}"><generatedKey column="id" sqlStatement="JDBC"/></table></context>
</generatorConfiguration>

2.4. config.properties配置文件

涉及部分:

2.4.1. 数据库信息

2.4.2. 模块名称

2.4.3. 表名

具体内容:

jdbc.driverClass=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mapperlombok?nullCatalogMeansCurrent=true
jdbc.user=root
jdbc.password=root#模块名称
moduleName=content#表名
tableName=user

2.5. 配置SpringBoot配置文件

#数据库信息
spring:datasource:url: jdbc:mysql://localhost:3306/mapperlombokdriver-class-name: com.mysql.cj.jdbc.Driverusername: rootpassword: root
#    应用名称application:name: content-center
#    应用启动端口
server:port: 8080

2.6. 运行数据库脚本

CREATE TABLE `user` (`user_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id',`account` varchar(45) COLLATE utf8_bin DEFAULT NULL COMMENT '账号',`password` varchar(45) COLLATE utf8_bin DEFAULT NULL COMMENT '密码',`create_time` datetime DEFAULT NULL COMMENT '创建时间',`update_time` datetime DEFAULT NULL COMMENT '更新时间',PRIMARY KEY (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8 COLLATE=utf8_bin ROW_FORMAT=DYNAMIC COMMENT='用户表';

2.7. 双击运行:

在这里插入图片描述

三、代码生成效果

3.1. 实体类效果:

package com.gblfy.springboot.mapper.lombok.mysql.domain.entity.content;import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date;@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Table(name = "user")
public class User {/*** 主键id*/@Id@Column(name = "user_id")private Long userId;/*** 账号*/private String account;/*** 密码*/private String password;/*** 创建时间*/@Column(name = "create_time")private Date createTime;/*** 更新时间*/@Column(name = "update_time")private Date updateTime;
}

3.2. mapper接口效果:

package com.gblfy.springboot.mapper.lombok.mysql.dao.content;import com.gblfy.springboot.mapper.lombok.mysql.domain.entity.content.Order;
import tk.mybatis.mapper.common.Mapper;public interface UserMapper extends Mapper<User> {
}

3.3. mapper映射文件效果:

<?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="com.gblfy.springboot.mapper.lombok.mysql.dao.content.UserMapper"><resultMap id="BaseResultMap" type="com.gblfy.springboot.mapper.lombok.mysql.domain.entity.content.User"><!--WARNING - @mbg.generated--><id column="user_id" jdbcType="BIGINT" property="userId" /><result column="account" jdbcType="VARCHAR" property="account" /><result column="password" jdbcType="VARCHAR" property="password" /><result column="create_time" jdbcType="TIMESTAMP" property="createTime" /><result column="update_time" jdbcType="TIMESTAMP" property="updateTime" /></resultMap>
</mapper>

四、启动类添加注解

– 不然spring扫描不到,无法将mapper进行实例化,导致mapper接口无法注入

@SpringBootApplication
@MapperScan("com.gblfy.springboot.mapper.lombok.mysql")
public class SpringbootMapperLombokMysqlApplication {public static void main(String[] args) {SpringApplication.run(SpringbootMapperLombokMysqlApplication.class, args);}
}

五、单元测试

package com.gblfy.springboot.mapper.lombok.mysql.dao.content;import com.gblfy.springboot.mapper.lombok.mysql.SpringbootMapperLombokMysqlApplicationTests;
import com.gblfy.springboot.mapper.lombok.mysql.domain.entity.content.User;
import lombok.extern.slf4j.Slf4j;
import org.junit.Assert;
import org.junit.Test;
import org.springframework.stereotype.Component;import javax.annotation.Resource;
import java.util.Date;
import java.util.List;@Component
@Slf4j
public class SysUserMapperTest extends SpringbootMapperLombokMysqlApplicationTests {@Resourceprivate UserMapper userMapper;/*** 插入数据并查询用户列表*/@Testpublic void insertAndSelect() {//插入用户数据User user = User.builder().account("gblfy").password("123").createTime(new Date()).updateTime(new Date()).build();int i = this.userMapper.insertSelective(user);//查询用户列表List<User> userList = this.userMapper.selectAll();//断言数据库数据条数为1条,如不是1条则,控制台异常提示Assert.assertEquals(1, userList.size());//循环遍历用户列表for (User u : userList) {log.info("用户列表信息={}", u.toString());}}
}

六、发布一个list端点,进行web服务调用

package com.gblfy.springboot.mapper.lombok.mysql.controller.content;import com.gblfy.springboot.mapper.lombok.mysql.dao.content.UserMapper;
import com.gblfy.springboot.mapper.lombok.mysql.domain.entity.content.User;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.Date;
import java.util.List;/*** @author gblfy* @ClassNme UserController* @Description TODO* @Date 2019/7/7 19:09* @version1.0*/
@Slf4j
@RestController
@RequestMapping("/user")
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class UserController {private final UserMapper userMapper;@RequestMapping("/list")public List<User> insertAndSelect() {//插入用户数据User user = User.builder().account("gblfy").password("123").createTime(new Date()).updateTime(new Date()).build();int i = this.userMapper.insertSelective(user);log.info("插入用户信息成功={}", i);//查询用户列表List<User> userList = this.userMapper.selectAll();log.info("查询用户列表信息成功");return userList;}
}

6.2. 调用服务截图

调用服务地址:http://localhost:8080/user/list
在这里插入图片描述
本文下载链接:

Github地址:https://github.com/gb-heima/springboot-mapper-lombok-mysql
zip包下载链接:
https://codeload.github.com/gb-heima/springboot-mapper-lombok-mysql/zip/master

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/523641.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何快速深入理解监控知识? | 技术干货

戳蓝字“CSDN云计算”关注我们哦&#xff01;技术头条&#xff1a;干货、简洁、多维全面。更多云计算精华知识尽在眼前&#xff0c;get要点、solve难题&#xff0c;统统不在话下&#xff01;作者&#xff1a;叶左左链接&#xff1a;https://www.jianshu.com/p/5d76d31b39580 监…

bootstrap 模态框无法使用_模态窗 Modal Window - 产品中的??注意力设计

本文是「经典交互模式」系列第二篇&#xff0c;前文回顾&#xff1a;面包屑导航 Breadcrumbs Trail全文目录什么是模态窗 模态窗的使用问题 模态框应用实践 什么是模态窗 Modal Window我们在各种不同的屏幕应用中见过「模态窗」&#xff0c;全屏幕模态窗、弹出信息框、&#xf…

QQmlApplicationEngine failed to load component qrc:/main.qml:-1 No such file or directory

记录qml运行时出现的问题问题描述解决办法问题描述 qml项目编译的时候通过&#xff0c;但是在运行时出现图中所示错误提示。 解决办法 在项目所在的文件夹下删除编译生成的目录&#xff0c;我的项目编译生成目录如下图&#xff1a; 删除编译生成的文件夹后&#xff0c;项目…

服务迁移之路 | Spring Cloud向Service Mesh转变 | 技术干货

戳蓝字“CSDN云计算”关注我们哦&#xff01;技术头条&#xff1a;干货、简洁、多维全面。更多云计算精华知识尽在眼前&#xff0c;get要点、solve难题&#xff0c;统统不在话下&#xff01;作者&#xff1a; 李宁转自&#xff1a;博云技术社区Spring Cloud基于Spring Boot开发…

oracle使用关键字做表字段名_ArcGIS SQL使用

本主题将介绍 ArcGIS 中的选择表达式所用的常规查询的各个元素。ArcGIS 中的查询表达式使用常规 SQL 语法。警告&#xff1a;SQL 语法不适用于使用字段计算器计算字段。字段在 SQL 表达式中指定字段时&#xff0c;如果该字段名可能产生岐义(比如与 SQL 保留关键字相同)&#xf…

uml类图浅录

uml类图UML中类图的绘制单个类图的绘制类图中的成员访问属性UML类图中类与类的几种关系关联代码示例解释UML类图表示多重性说明依赖代码示例解释uml类图表示继承示例代码解释UML类图表示实现示例代码解释UML类图表示聚合示例代码UML类图表示组合示例代码解释UML类图表示绘制UML…

03_SpringCloud整合Ribbon实现负载均衡

采用随机负载均衡策略&#xff0c;四线服务之间的调用 2个用户中心&#xff0c;1个内容中心&#xff0c;内容中心调用用户中心服务 package com.itmuch.contentcenter.service.impl;import com.itmuch.contentcenter.dao.content.ShareMapper; import com.itmuch.contentcent…

容器精华问答 | 我们为什么需要容器?

戳蓝字“CSDN云计算”关注我们哦&#xff01;容器技术是这两年热门的话题&#xff0c;因为容器技术给我们带来了很多方便的地方&#xff0c;节约了不少成本&#xff0c;不管是在运维还是开发上。今天&#xff0c;就让我们来看看关于容器更加有深度的问题吧。1Q&#xff1a;什么…

C++11继承构造函数在类中的使用

继承构造函数概念衍生问题使用示例注意扩展使用&#xff08;函数&#xff09;示例代码输出结果注意概念 继承构造函数在C11特性中随之提及&#xff0c;其大概可以理解为&#xff1a; 解决了派生类无法直接使用基类中的构造函数的这一问题。 正常情况下&#xff0c;基类定义了自…

grep从文件末尾开始找_新人自学前端到什么程度才能找工作?

这个问题打我记事起到现在&#xff0c;问过我的人&#xff0c;没有1000也有800了。足以见得这个问题是多么的不得人心。自学前端开发&#xff0c;不管他在网上百度了多少资料&#xff0c;看了多少教程&#xff0c;你总得先做个网页出来。所以&#xff0c;很多人都是从html标签开…

Spring Tool Suite 4安装Lombok

Lombok官网&#xff1a;https://www.projectlombok.org/download 文章目录一、下载jar包二、lombok.jar复制三、运行lombok.jar四、安装lombok4.1 点击确定4.2 找到SpringToolSuite4.exe五、以管理员运行Spring Tool Suite 4六、引入lombok依赖6.1 maven项目6.2 普通web项目七、…

base昆明,腾讯云在合作伙伴的阵营中@了TA

戳蓝字“CSDN云计算”关注我们哦&#xff01;技术头条&#xff1a;干货、简洁、多维全面。更多云计算精华知识尽在眼前&#xff0c;get要点、solve难题&#xff0c;统统不在话下&#xff01;在今年的腾讯“三合一”大会上&#xff0c;阿晶得到了这样一则数据&#xff1a;截至目…

IntelliJ IDEA 2019 安装lombok

文章目录一、安装插件二、添加lombok依赖三、重启IntelliJ IDEA四、效果图五、如果不生效一、安装插件 二、添加lombok依赖 <!--Lombok--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version&g…

记录C++类中的一次函数调用

引用 之前遇到一次函数调用结果的问题&#xff0c;今天在这里做一下记录。 一个基类&#xff0c;一个派生类&#xff0c;两个类中都有一个函数名相同&#xff0c;参数相同&#xff0c;参数不同的函数&#xff0c;创建基类指针指向派生类对象&#xff0c;调用相应的函数&#x…

bootstrap table移动端_bootstrap介绍

简介bootstrap是一款前端开发自适应页面的js库&#xff0c;可以让你在开发网页的时候轻松实现网站的PC与移动端兼容&#xff0c;避免在移动端上面出现样式错位等。原理bootstrap的原理是媒体查询CSS3的media&#xff0c;用于检测屏幕&#xff0c;从而改变样式的百分比。结构boo…

Spring Tool Suite 4 自动提示功能

文章目录一、java文件 自动提示二、JavaScript文件 自动提示三、HTML文件 自动提示四、导出配置文件五、编辑导出的配置文件5.1 java提示规则替换5.2 html提示规则替换六、导入配置好的文件一、java文件 自动提示 打开STS→Windows→Preferences→Java→Editor→Content Assis…

中立安全、赋能产业,UCloud优刻得凭差异化路线进军产业互联

2019年5月28日&#xff0c; 国内领先的中立云计算服务商UCloud优刻得&#xff08;以下简称UCloud&#xff09;在北京召开以“中立安全、赋能产业”为主题的UCloud用户大会暨Think in Cloud北京大会。面对走向纵深的产业互联网&#xff0c;UCloud强调做“不和用户竞争的云”&…

Spring Tool Suite 4 添加反编译插件

文章目录一、进入商店市场二、查找插件&#xff0c;输入jad搜索三、点击安装四、接收协议、安装五、重启Spring Tool Suite 4六、效果图一、进入商店市场 二、查找插件&#xff0c;输入jad搜索 三、点击安装 四、接收协议、安装 五、重启Spring Tool Suite 4 六、效果图

Hadoop精华问答 | NameNode是什么?

戳蓝字“CSDN云计算”关注我们哦&#xff01;2006年项目成立的一开始,“Hadoop”这个单词只代表了两个组件——HDFS和MapReduce。到现在的13个年头,这个单词代表的是“核心”&#xff0c;今天我们就来看看关于Hadoop的精华问答。1Q&#xff1a;NameNode是什么&#xff1f;A&…

01_SpringCoud 整合SpringCoud alibaba Nacos

SpringCoud 核心 整合SpringCoud alibaba Nacos 文章目录一、快速构建一个SpringBoot项目二、添加依赖2.1 SpringMVC2.2 nacos客户端2.3 lombok(可以省略)2.4 actuator监控(图形化)2.5 SpringCloud和spring-cloud-alibaba三、添加注解(无)四、写配置信息五、下载和运行nacos5.1…