可以做视频片头的网站,苏州网站制作及推广,微信小程序服务商排名,短视频询盘获客系统Spring CLoud 整合通用MapperLombokMysql 文章目录一、使用Spring Initializr快速创建Spring Boot应用二、相关依赖2.1. 添加依赖2.2. mybatis添加插件2.3. 在resources目录下面创建generator目录存放generatorConfig.xml2.3.1. config.properties配置文件2.3.2. lombok插件2.3… Spring CLoud 整合通用MapperLombokMysql 文章目录一、使用Spring Initializr快速创建Spring Boot应用二、相关依赖2.1. 添加依赖2.2. mybatis添加插件2.3. 在resources目录下面创建generator目录存放generatorConfig.xml2.3.1. config.properties配置文件2.3.2. lombok插件2.3.3. 数据库信息2.3.4. 代码生成实体类、mapper接口和mapper.xml2.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. 添加依赖 dependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency!--通用mapper--dependencygroupIdtk.mybatis/groupIdartifactIdmapper-spring-boot-starter/artifactIdversion2.1.5/version/dependency!--Lombok--dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion1.18.8/versionscopeprovided/scope/dependency!-- mysql 驱动--dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdscoperuntime/scope/dependency!-- 单元测试--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency/dependencies2.2. mybatis添加插件 plugingroupIdorg.mybatis.generator/groupIdartifactIdmybatis-generator-maven-plugin/artifactIdversion1.3.6/versionconfigurationconfigurationFile${basedir}/src/main/resources/generator/generatorConfig.xml/configurationFileoverwritetrue/overwriteverbosetrue/verbose/configurationdependenciesdependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.16/version/dependency!-- https://mvnrepository.com/artifact/tk.mybatis/mapper --dependencygroupIdtk.mybatis/groupIdartifactIdmapper/artifactIdversion4.1.5/version/dependency/dependencies/plugin2.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//ENhttp://mybatis.org/dtd/mybatis-generator-config_1_0.dtdgeneratorConfigurationproperties resourcegenerator/config.properties/context idMysql targetRuntimeMyBatis3Simple defaultModelTypeflatproperty namebeginningDelimiter value/property nameendingDelimiter value/plugin typetk.mybatis.mapper.generator.MapperPluginproperty namemappers valuetk.mybatis.mapper.common.Mapper/property namecaseSensitive valuetrue/property namelombok valueGetter,Setter,ToString//pluginjdbcConnection driverClass${jdbc.driverClass}connectionURL${jdbc.url}userId${jdbc.user}password${jdbc.password}/jdbcConnection!--实体--javaModelGenerator targetPackagecom.gblfy.springboot.mapper.lombok.mysql.domain.entity.${moduleName}targetProjectsrc/main/java/!--mapper.xml--sqlMapGenerator targetPackagecom.gblfy.springboot.mapper.lombok.mysql.dao.${moduleName}targetProjectsrc/main/resources/!--mapper接口--javaClientGenerator targetPackagecom.gblfy.springboot.mapper.lombok.mysql.dao.${moduleName}targetProjectsrc/main/javatypeXMLMAPPER/!--为哪张表生成代码--table tableName${tableName}generatedKey columnid sqlStatementJDBC//table/context
/generatorConfiguration2.4. config.properties配置文件
涉及部分
2.4.1. 数据库信息
2.4.2. 模块名称
2.4.3. 表名
具体内容
jdbc.driverClasscom.mysql.cj.jdbc.Driver
jdbc.urljdbc:mysql://localhost:3306/mapperlombok?nullCatalogMeansCurrenttrue
jdbc.userroot
jdbc.passwordroot#模块名称
moduleNamecontent#表名
tableNameuser2.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)
) ENGINEInnoDB AUTO_INCREMENT10 DEFAULT CHARSETutf8 COLLATEutf8_bin ROW_FORMATDYNAMIC 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*/IdColumn(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 MapperUser {
}3.3. mapper映射文件效果
?xml version1.0 encodingUTF-8?
!DOCTYPE mapper PUBLIC -//mybatis.org//DTD Mapper 3.0//EN http://mybatis.org/dtd/mybatis-3-mapper.dtd
mapper namespacecom.gblfy.springboot.mapper.lombok.mysql.dao.content.UserMapperresultMap idBaseResultMap typecom.gblfy.springboot.mapper.lombok.mysql.domain.entity.content.User!--WARNING - mbg.generated--id columnuser_id jdbcTypeBIGINT propertyuserId /result columnaccount jdbcTypeVARCHAR propertyaccount /result columnpassword jdbcTypeVARCHAR propertypassword /result columncreate_time jdbcTypeTIMESTAMP propertycreateTime /result columnupdate_time jdbcTypeTIMESTAMP propertyupdateTime //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);//查询用户列表ListUser 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 ListUser 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);//查询用户列表ListUser 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