1、新建一个SpringBoot空项目
信息填写完后点击Next
什么都不选,直接Finish
将application.properties
改名为application.yml
,添加上端口号
server:
port: 8110
2、引入mysql
新建一个数据库test,数据表company
/*
Navicat Premium Data Transfer
Source Server : 本地
Source Server Type : MySQL
Source Server Version : 80027
Source Host : localhost:3306
Source Schema : test
Target Server Type : MySQL
Target Server Version : 80027
File Encoding : 65001
Date: 20/12/2021 16:31:16
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for company
-- ----------------------------
DROP TABLE IF EXISTS `company`;
CREATE TABLE `company` (
`id` bigint NOT NULL COMMENT '主键',
`company_name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '企业名称',
`description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '简介',
`business_license` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '营业执照',
`address` varchar(150) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '地址',
`status` tinyint NULL DEFAULT 1 COMMENT '状态 1:正常 0:停用',
`remarks` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注',
`create_date` datetime NULL DEFAULT NULL COMMENT '创建时间',
`update_date` datetime NULL DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '企业信息表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of company
-- ----------------------------
INSERT INTO `company` VALUES (1455403646135721984, '北大工业科技', '哈哈哈简介', '北大工业科技公司营业执照', '北大南门', 1, '备注1', '2021-11-02 05:15:12', '2021-12-17 16:03:49');
INSERT INTO `company` VALUES (1455403646135721987, '北京科技企业', '哈简介哈', '北京科技企业营业执照', '北京', 1, '备注2', '2021-11-02 05:17:24', '2021-12-17 16:03:51');
SET FOREIGN_KEY_CHECKS = 1;
添加依赖
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
配置application.yml
spring:
datasource:
driverClassName: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull
username: root
password: root
-
driverClassName
属性MySQL8.0及以上是:
com.mysql.cj.jdbc.Driver
MySQL8.0以下是:
com.mysql.jdbc.Driver
3、引入Mybatis-Plus
添加依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.1</version>
<optional>true</optional>
</dependency>
配置application.yml
# mybatis-plus相关配置
mybatis-plus:
# xml扫描,多个目录用逗号或者分号分隔(告诉 Mapper 所对应的 XML 文件位置)
mapper-locations: classpath*:mapper/*Mapper.xml
# 指定实体类的包,多个package用逗号或者分号分隔
type-aliases-package: com.yuyun.*.dto
# 以下配置均有默认值,可以不设置
global-config:
db-config:
#主键类型 AUTO:"数据库ID自增" INPUT:"用户输入ID",ID_WORKER:"全局唯一ID (数字类型唯一ID)", UUID:"全局唯一ID UUID";
id-type: AUTO
#字段策略 IGNORED:"忽略判断" NOT_NULL:"非 NULL 判断") NOT_EMPTY:"非空判断"
field-strategy: NOT_EMPTY
#数据库类型
db-type: MYSQL
configuration:
# 是否开启自动驼峰命名规则映射:从数据库列名到Java属性驼峰命名的类似映射
map-underscore-to-camel-case: true
# 如果查询结果中包含空值的列,则 MyBatis 在映射的时候,不会映射这个字段
call-setters-on-nulls: true
# 这个配置会将执行的sql打印出来,在开发或测试的时候可以用
# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
pom.xml完整内容
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.1</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.yuyun</groupId>
<artifactId>springboot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboot</name>
<description>springboot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--生成实体成fet set-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!-- mybatisPlus 核心库 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.1</version>
<optional>true</optional>
</dependency>
<!-- MySQL驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
4、操作数据库表
(1)新建表对应的实体类
package com.yuyun.dto;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 企业信息表
*
* @author
* @since 1.0.0 2021-12-17
*/
@Data
@TableName("company")
public class CompanyDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
private Long id;
/**
* 企业名称
*/
private String companyName;
/**
* 简介
*/
private String description;
/**
* 营业执照
*/
private String businessLicense;
/**
* 地址
*/
private String address;
/**
* 状态 1:正常 0:停用
*/
private Integer status;
/**
* 备注
*/
private String remarks;
/**
* 创建时间
*/
private Date createDate;
/**
* 更新时间
*/
private Date updateDate;
}
(2)新建操作实体类的Mapper类
直接继承 BaseMapper,这是 mybatis-plus 封装好的类。
package com.yuyun.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yuyun.dto.CompanyDTO;
import org.apache.ibatis.annotations.Mapper;
/**
* 企业信息表
*
* @author
* @since 1.0.0 2021-12-17
*/
@Mapper
public interface CompanyMapper extends BaseMapper<CompanyDTO> {
}
(3)新建Mapper类对应的xml文件
CompanyMapper.xml
,这个文件可以加也可以不加
<?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.yuyun.mapper.CompanyMapper">
<resultMap type="com.yuyun.dto.CompanyDTO" id="companyMap">
<result property="id" column="id"/>
<result property="companyName" column="company_name"/>
<result property="description" column="description"/>
<result property="businessLicense" column="business_license"/>
<result property="address" column="address"/>
<result property="status" column="status"/>
<result property="remarks" column="remarks"/>
<result property="createDate" column="create_date"/>
<result property="updateDate" column="update_date"/>
</resultMap>
</mapper>
(4)新建Service接口
package com.yuyun.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuyun.dto.CompanyDTO;
/**
* 企业信息表
*
* @author
* @since 1.0.0 2021-12-17
*/
public interface CompanyService extends IService<CompanyDTO> {
}
(5)新建Service接口实现类
package com.yuyun.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuyun.mapper.CompanyMapper;
import com.yuyun.dto.CompanyDTO;
import com.yuyun.service.CompanyService;
import org.springframework.stereotype.Service;
/**
* 企业信息表
*
* @author
* @since 1.0.0 2021-12-17
*/
@Service
public class CompanyServiceImpl extends ServiceImpl<CompanyMapper, CompanyDTO> implements CompanyService {
}
(6)新建Controller类
package com.yuyun.controller;
import com.yuyun.dto.CompanyDTO;
import com.yuyun.service.CompanyService;
import com.yuyun.utils.Result;
import io.swagger.annotations.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 企业信息表
*
* @author
* @since 1.0.0 2021-12-17
*/
@RestController
@RequestMapping("company")
public class CompanyController {
@Autowired
private CompanyService companyService;
@GetMapping("list")
public Result<List<CompanyDTO>> list() {
List<CompanyDTO> companyList = companyService.list();
return new Result<List<CompanyDTO>>().success(companyList);
}
}
5、启动类中添加Mapper扫描
package com.yuyun;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* @author hyh
*/
@MapperScan("com.yuyun.mapper")
@SpringBootApplication
public class SpringbootApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootApplication.class, args);
}
}
6、启动项目
启动成功后直接访问:http://localhost:8110/company/list,出现以下结果,则MyBatis-Plus引入成功
源码地址:https://gitee.com/hyh17808770899/spring-boot/tree/master/springboot-01