【极光系列】SpringBoot集成Mybatis

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 【极光系列】SpringBoot集成Mybatis

【极光系列】SpringBoot集成Mybatis

一.gitee地址

浅夏的猫 @shawsongyue

直接下载可用 https://gitee.com/shawsongyue/aurora.git

二.mysql安装教程

详细参考我的另外一遍博客

三.集成mybatis步骤

1. 处理依赖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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.xsy</groupId>
    <artifactId>aurora_mybatis</artifactId>
    <version>1.0-SNAPSHOT</version>
    <!--基础SpringBoot依赖-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.5.RELEASE</version>
    </parent>
    <!--属性设置-->
    <properties>
        <!--java_JDK版本-->
        <java.version>1.8</java.version>
        <!--maven打包插件-->
        <maven.plugin.version>3.8.1</maven.plugin.version>
        <!--编译编码UTF-8-->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <!--输出报告编码UTF-8-->
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <!--mysql版本-->
        <mysql-connector-java.version>8.0.21</mysql-connector-java.version>
        <!--json数据格式处理工具-->
        <fastjson.version>1.2.75</fastjson.version>
        <!--mybatis-->
        <mybatis.version>3.5.3</mybatis.version>
    </properties>
    <!--通用依赖-->
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!-- Lombok -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <!-- json -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>${fastjson.version}</version>
        </dependency>
        <!--mysql-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql-connector-java.version}</version>
            <scope>runtime</scope>
        </dependency>
        <!-- 集成MyBatis -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.2</version>
        </dependency>
    </dependencies>
    <!--编译打包-->
    <build>
        <finalName>${project.name}</finalName>
        <!--资源文件打包-->
        <resources>
            <resource>
                <directory>src/main/resources</directory>
            </resource>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
        </resources>
        <!--插件统一管理-->
        <pluginManagement>
            <plugins>
                <!--maven打包插件-->
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <version>${spring.boot.version}</version>
                    <configuration>
                        <fork>true</fork>
                        <finalName>${project.build.finalName}</finalName>
                    </configuration>
                    <executions>
                        <execution>
                            <goals>
                                <goal>repackage</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <!--编译打包插件-->
                <plugin>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>${maven.plugin.version}</version>
                    <configuration>
                        <source>${java.version}</source>
                        <target>${java.version}</target>
                        <encoding>UTF-8</encoding>
                        <compilerArgs>
                            <arg>-parameters</arg>
                        </compilerArgs>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
    <!--配置Maven项目中需要使用的远程仓库-->
    <repositories>
        <repository>
            <id>aliyun-repos</id>
            <url>https://maven.aliyun.com/nexus/content/groups/public/</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>
    <!--用来配置maven插件的远程仓库-->
    <pluginRepositories>
        <pluginRepository>
            <id>aliyun-plugin</id>
            <url>https://maven.aliyun.com/nexus/content/groups/public/</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>
</project>

2. 处理数据库表

登录mysql数据库,创建表 tianchi_resource,并插入数据

CREATE TABLE `tianchi_resource` (
  `id` bigint NOT NULL COMMENT '自增主键',
  `resource_name` varchar(128) DEFAULT NULL COMMENT '资源名称',
  `resource_path` varchar(255) DEFAULT NULL COMMENT '资源路径',
  `resource_icon` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '资源图标',
  `resource_icon_color` varchar(32) DEFAULT NULL COMMENT '资源图标颜色',
  `resource_describe` varchar(255) DEFAULT NULL COMMENT '资源描述',
  `resource_author` varchar(16) DEFAULT NULL COMMENT '资源作者',
  `resource_type` varchar(16) DEFAULT NULL COMMENT '资源类型',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
-- 插入数据验证
INSERT INTO `aurora`.`tianchi_resource` (`id`, `resource_name`, `resource_path`, `resource_icon`, `resource_icon_color`, `resource_describe`, `resource_author`, `resource_type`, `create_time`, `update_time`) VALUES (1, 'colorUI资源包', 'http://baidu.com', 'url(https://ossweb-img.qq.com/images/lol/web201310/skin/big10001.jpg)', NULL, 'uniapp的ui页面资源包,免费提供,uniapp的ui页面资源包,免费提供,uniapp的ui页面资源包,免费提供', '浅夏的猫', NULL, '2024-01-06 00:50:33', '2024-01-07 23:56:58');

3. 处理配置application.yml

#服务配置
server:
  #端口
  port: 7001
#spring配置
spring:
  #应用配置
  application:
    #应用名
    name: aurora_mybatis
  #数据源配置
  datasource:
    #驱动
    driver-class-name: com.mysql.cj.jdbc.Driver
    #连接地址
    url: jdbc:mysql://127.0.0.1:3306/aurora?serverTimezone=UTC&characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true
    #数据库用户
    username: root
    #数据库密码
    password: yourpassword
#mybatis配置
mybatis:
  #mapper.xml文件扫描路径
  mapper-locations: classpath*:mapper/*Mapper.xml
  #实体类扫描路径,配置这个以后mapper,xml里面写的实体类不需要全路径
  type-aliases-package: com.aurora.entity
  #mybatis拓展配置
  configuration:
    #设置下划线自动转换为大写字母
    map-underscore-to-camel-case: true

4.创建对应的类

(1)主启动类

tips:Application.class 类 springboot程序启动必备

package com.aurora;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
 * @author 浅夏的猫
 * @description 主启动类
 * @date 22:46 2024/1/13
 */
@SpringBootApplication
@MapperScan("com.aurora.mapper")
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}
(2)实体类

tips:ResourceEntity.class 类 创建与数据库表对应的实体类,后续映射需要使用

package com.aurora.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serializable;
import java.util.Date;
/**
 * @author 浅夏的猫
 * @description 资源实体类
 * @date 22:42 2024/1/13
 */
public class ResourceEntity implements Serializable {
    private static final long serialVersionUID = 1L;
    //资源id
    private Long id;
    //资源名称
    private String resourceName;
    //资源路径
    private String resourcePath;
    //资源图标
    private String resourceIcon;
    //资源图标颜色
    private String resourceIconColor;
    //资源描述
    private String resourceDescribe;
    //资源类型
    private String resourceType;
    //资源作者
    private String resourceAuthor;
    //资源创建时间
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;
    //资源更新时间
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;
    //查询结束时间
    private Date endTime;
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getResourceName() {
        return resourceName;
    }
    public void setResourceName(String resourceName) {
        this.resourceName = resourceName;
    }
    public String getResourcePath() {
        return resourcePath;
    }
    public void setResourcePath(String resourcePath) {
        this.resourcePath = resourcePath;
    }
    public String getResourceIcon() {
        return resourceIcon;
    }
    public void setResourceIcon(String resourceIcon) {
        this.resourceIcon = resourceIcon;
    }
    public String getResourceIconColor() {
        return resourceIconColor;
    }
    public void setResourceIconColor(String resourceIconColor) {
        this.resourceIconColor = resourceIconColor;
    }
    public String getResourceDescribe() {
        return resourceDescribe;
    }
    public void setResourceDescribe(String resourceDescribe) {
        this.resourceDescribe = resourceDescribe;
    }
    public String getResourceType() {
        return resourceType;
    }
    public void setResourceType(String resourceType) {
        this.resourceType = resourceType;
    }
    public String getResourceAuthor() {
        return resourceAuthor;
    }
    public void setResourceAuthor(String resourceAuthor) {
        this.resourceAuthor = resourceAuthor;
    }
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public Date getUpdateTime() {
        return updateTime;
    }
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
    public Date getEndTime() {
        return endTime;
    }
    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }
    @Override
    public String toString() {
        return "ResourceEntity{" +
                "id=" + id +
                ", resourceName='" + resourceName + '\'' +
                ", resourcePath='" + resourcePath + '\'' +
                ", resourceIcon='" + resourceIcon + '\'' +
                ", resourceIconColor='" + resourceIconColor + '\'' +
                ", resourceDescribe='" + resourceDescribe + '\'' +
                ", resourceType='" + resourceType + '\'' +
                ", resourceAuthor='" + resourceAuthor + '\'' +
                ", createTime=" + createTime +
                ", updateTime=" + updateTime +
                ", endTime=" + endTime +
                '}';
    }
}
(3)创建映射类

tips:映射类主要用于编写操作sql的接口方法

package com.aurora.mapper;
import com.aurora.entity.ResourceEntity;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
 * @author 浅夏的猫
 * @description 资源mapper操作类
 * @date 22:45 2024/1/13
 */
@Mapper
public interface ResourceMapper {
    /**
     * @return java.util.List<com.aurora.entity.ResourceEntity>
     * @description
     * @author 浅夏的猫
     * @datetime 23:19 2024/1/13
     */
    List<ResourceEntity> list();
}
(4)创建sql映射文件

tips: 每一个映射类对应一个mapper映射文件,在resources的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.aurora.mapper.ResourceMapper">
    <select id="list"  resultType="ResourceEntity">
        select * from tianchi_resource
    </select>
</mapper>
(5)创建控制类

tips: 控制类用于浏览器或前端访问使用

package com.aurora.controller;
import com.aurora.entity.ResourceEntity;
import com.aurora.mapper.ResourceMapper;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
/**
 * @author 浅夏的猫
 * @description 资源controller
 * @date 22:38 2024/1/13
 */
@RestController
@RequestMapping("/resource")
public class ResourceController {
    @Resource
    private ResourceMapper resourceMapper;
    /**
     * @return java.util.List<com.aurora.entity.ResourceEntity>
     * @description 查询全部资源数据列表
     * @author 浅夏的猫
     * @date 22:40 2024/1/13
     */
    @RequestMapping("/list")
    public List<ResourceEntity> list() {
        return resourceMapper.list();
    }
}
(5)启动应用,控制台访问

tips: 访问地址http://localhost:7001/resource/list

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
8天前
|
SQL Java 数据库连接
SpringBoot整合Mybatis
SpringBoot整合Mybatis
34 2
|
8天前
|
前端开发 Java 应用服务中间件
从零手写实现 tomcat-08-tomcat 如何与 springboot 集成?
该文是一系列关于从零开始手写实现 Apache Tomcat 的教程概述。作者希望通过亲自动手实践理解 Tomcat 的核心机制。文章讨论了 Spring Boot 如何实现直接通过 `main` 方法启动,Spring 与 Tomcat 容器的集成方式,以及两者生命周期的同步原理。文中还提出了实现 Tomcat 的启发,强调在设计启动流程时确保资源的正确加载和初始化。最后提到了一个名为 mini-cat(嗅虎)的简易 Tomcat 实现项目,开源于 [GitHub](https://github.com/houbb/minicat)。
|
6天前
|
算法 Java 数据库连接
Spring+MySQL+数据结构+集合,Alibaba珍藏版mybatis手写文档
Spring+MySQL+数据结构+集合,Alibaba珍藏版mybatis手写文档
|
8天前
|
Java 数据库连接 Spring
Spring 整合mybatis
Spring 整合mybatis
22 2
|
8天前
|
前端开发 Java 应用服务中间件
从零手写实现 tomcat-08-tomcat 如何与 springboot 集成?
本文探讨了Spring Boot如何实现像普通Java程序一样通过main方法启动,关键在于Spring Boot的自动配置、内嵌Servlet容器(如Tomcat)以及`SpringApplication`类。Spring与Tomcat集成有两种方式:独立模式和嵌入式模式,两者通过Servlet规范、Spring MVC协同工作。Spring和Tomcat的生命周期同步涉及启动、运行和关闭阶段,通过事件和监听器实现。文章鼓励读者从实现Tomcat中学习资源管理和生命周期管理。此外,推荐了Netty权威指南系列文章,并提到了一个名为mini-cat的简易Tomcat实现项目。
|
6天前
|
Java 数据库连接 数据安全/隐私保护
springBoot集成token认证,最全Java面试知识点梳理
springBoot集成token认证,最全Java面试知识点梳理
|
8天前
|
消息中间件 JSON Java
RabbitMQ的springboot项目集成使用-01
RabbitMQ的springboot项目集成使用-01
|
8天前
|
搜索推荐 Java 数据库
springboot集成ElasticSearch的具体操作(系统全文检索)
springboot集成ElasticSearch的具体操作(系统全文检索)
|
8天前
|
消息中间件 Java Spring
Springboot 集成Rabbitmq之延时队列
Springboot 集成Rabbitmq之延时队列
9 0
|
8天前
|
网络协议 Java Spring
Springboot 集成websocket
Springboot 集成websocket
14 0