从零开始创建一个项目,springBoot+mybatisPlus+mysql+swagger+maven

一,前提

从零开始创建一个项目,绑定了数据库

用到的技术栈:springBoot+mybatisPlus+mysql+swagger+maven

二,创建项目步骤

1,创建项目

创建出来的项目结构如图所示

2,修改配置文件

因为我比较习惯yml语言,这里我就使用yml

application.yml配置如下:

yml 复制代码
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/test
    username: root
    password: ****
    driver-class-name: com.mysql.jdbc.Driver
  thymeleaf:
    prefix: classpath:/template/  #所有的动态页面打包后的位置
    suffix: .html  #添加后缀

# mybatis-plus相关配置
mybatis-plus:
  # xml扫描,多个目录用逗号或者分号分隔(告诉 Mapper 所对应的 XML 文件位置)
  mapper-locations: classpath:mapper/*.xml
  # 以下配置均有默认值,可以不设置
  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

3,引入相关依赖

在这个环节中,我多次启动失败都是因为版本太高,所以下面的依赖是我调整完之后,

可以正常启动的依赖配置。

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.example</groupId>
    <artifactId>projectA</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>projectA</name>
    <description>projectA</description>
    <!-- jdk配置信息,最好加上,因为如果不加上,每次我启动一次项目,项目的jdk版本就变成19,
    然后一直报错,这个地方永久配置jdk-->
    <properties>
        <java.version>17</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <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>
        <!-- mybatisPlus 核心库 -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.1.0</version>
        </dependency>
        <!-- druid依赖 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.0</version>
        </dependency>
        <!-- swagger依赖 -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>
         <!-- mysql依赖 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.46</version>
        </dependency>
		<!-- lombok依赖 -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <dependency>
            <groupId>commons-collections</groupId>
            <artifactId>commons-collections</artifactId>
            <version>3.2.2</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build

</project>

4,准备表数据

这里我准备了四张表

sql 复制代码
CREATE TABLE `student` (
  `student_no` varchar(3) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '学号',
  `name` varchar(8) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '姓名',
  `sex` varchar(2) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '性别',
  `birthday` date DEFAULT NULL COMMENT '出生日期',
  `stu_class` varchar(5) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT '班级',
  PRIMARY KEY (`student_no`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;

INSERT INTO test.student
(student_no, name, sex, birthday, stu_class)
VALUES('101', '李军', '男', '1976-02-20', '95033');
INSERT INTO test.student
(student_no, name, sex, birthday, stu_class)
VALUES('103', '陆君', '男', '1974-06-03', '95031');
INSERT INTO test.student
(student_no, name, sex, birthday, stu_class)
VALUES('105', '匡明', '男', '1975-10-02', '95031');
INSERT INTO test.student
(student_no, name, sex, birthday, stu_class)
VALUES('107', '王丽', '女', '1976-01-23', '95033');
INSERT INTO test.student
(student_no, name, sex, birthday, stu_class)
VALUES('108', '曾华', '男', '1977-09-01', '95033');
INSERT INTO test.student
(student_no, name, sex, birthday, stu_class)
VALUES('109', '王芳', '女', '1975-02-10', '95031');
sql 复制代码
CREATE TABLE `score` (
  `student_no` varchar(3) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '学号',
  `course_no` varchar(5) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '课程编号',
  `score` decimal(4,1) DEFAULT NULL COMMENT '分数',
  PRIMARY KEY (`student_no`,`course_no`),
  KEY `Cno` (`course_no`),
  CONSTRAINT `Score_ibfk_1` FOREIGN KEY (`student_no`) REFERENCES `student` (`student_no`),
  CONSTRAINT `Score_ibfk_2` FOREIGN KEY (`course_no`) REFERENCES `course` (`course_no`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;

INSERT INTO test.score
(student_no, course_no, score)
VALUES('101', '3-105', 64.0);
INSERT INTO test.score
(student_no, course_no, score)
VALUES('101', '6-166', 85.0);
INSERT INTO test.score
(student_no, course_no, score)
VALUES('103', '3-105', 92.0);
INSERT INTO test.score
(student_no, course_no, score)
VALUES('103', '3-245', 86.0);
INSERT INTO test.score
(student_no, course_no, score)
VALUES('105', '3-105', 88.0);
INSERT INTO test.score
(student_no, course_no, score)
VALUES('105', '3-245', 75.0);
INSERT INTO test.score
(student_no, course_no, score)
VALUES('107', '3-105', 91.0);
INSERT INTO test.score
(student_no, course_no, score)
VALUES('107', '6-166', 79.0);
INSERT INTO test.score
(student_no, course_no, score)
VALUES('108', '3-105', 78.0);
INSERT INTO test.score
(student_no, course_no, score)
VALUES('108', '6-166', 81.0);
INSERT INTO test.score
(student_no, course_no, score)
VALUES('109', '3-105', 76.0);
INSERT INTO test.score
(student_no, course_no, score)
VALUES('109', '3-245', 68.0);
sql 复制代码
CREATE TABLE `student` (
  `student_no` varchar(3) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '学号',
  `name` varchar(8) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '姓名',
  `sex` varchar(2) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT '性别',
  `birthday` date DEFAULT NULL COMMENT '出生日期',
  `stu_class` varchar(5) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT '班级',
  PRIMARY KEY (`student_no`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;

INSERT INTO test.student
(student_no, name, sex, birthday, stu_class)
VALUES('101', '李军', '男', '1976-02-20', '95033');
INSERT INTO test.student
(student_no, name, sex, birthday, stu_class)
VALUES('103', '陆君', '男', '1974-06-03', '95031');
INSERT INTO test.student
(student_no, name, sex, birthday, stu_class)
VALUES('105', '匡明', '男', '1975-10-02', '95031');
INSERT INTO test.student
(student_no, name, sex, birthday, stu_class)
VALUES('107', '王丽', '女', '1976-01-23', '95033');
INSERT INTO test.student
(student_no, name, sex, birthday, stu_class)
VALUES('108', '曾华', '男', '1977-09-01', '95033');
INSERT INTO test.student
(student_no, name, sex, birthday, stu_class)
VALUES('109', '王芳', '女', '1975-02-10', '95031');
sql 复制代码
CREATE TABLE `teacher` (
  `teacher_no` varchar(3) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL,
  `name` varchar(4) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL,
  `sex` varchar(2) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL,
  `birthday` date DEFAULT NULL,
  `title` varchar(6) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
  `depart` varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL,
  PRIMARY KEY (`teacher_no`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;

INSERT INTO test.teacher
(teacher_no, name, sex, birthday, title, depart)
VALUES('804', '李诚', '男', '1958-12-02', '副教授', '计算机系');
INSERT INTO test.teacher
(teacher_no, name, sex, birthday, title, depart)
VALUES('825', '王萍', '女', '1972-05-05', '助教', '计算机系');
INSERT INTO test.teacher
(teacher_no, name, sex, birthday, title, depart)
VALUES('831', '刘冰', '女', '1977-08-14', '助教', '电子工程系');
INSERT INTO test.teacher
(teacher_no, name, sex, birthday, title, depart)
VALUES('856', '张旭', '男', '1969-03-12', '讲师', '电子工程系');

5,创建相关类

这里我推荐一个好用的插件mybatisX,可以自动创建相关类,很省事

先连接好数据库,刷新表

配置生成的类基本信息


都给我生成好了

6,相关注解添加

启动类处理一下

java 复制代码
@SpringBootApplication
@MapperScan(basePackages = "com.example.mapper")
public class ProjectApplication {
    public static void main(String[] args) {
        try {
            SpringApplication.run(ProjectApplication.class, args);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

其他注解添加


7,项目可以安全启动了

8,其他文章

永久解决 Intellij idea 报错:Error : java 不支持发行版本5

Maven [ERROR] 不再支持源选项 5,请使用 7 或更高版本的解决办法

SpringBoot教程(十六) | SpringBoot集成swagger(全网最全)

SpringBoot集成swagger2报错'apiDocumentationScanner' defined in URL

SpringBoot 整合MyBatisPlus

Error creating bean with name '**ServiceImpl': Unsatisfied dependency expressed through field 'baseM

IDEA设置自动导入包

下班咯,还待完善,敬请期待。。。

相关推荐
Fleshy数模10 小时前
CentOS7 安装配置 MySQL5.7 完整教程(本地虚拟机学习版)
linux·mysql·centos
az44yao11 小时前
mysql 创建事件 每天17点执行一个存储过程
mysql
一点程序12 小时前
基于SpringBoot的选课调查系统
java·spring boot·后端·选课调查系统
秦老师Q12 小时前
php入门教程(超详细,一篇就够了!!!)
开发语言·mysql·php·db
橘子1313 小时前
MySQL用户管理(十三)
数据库·mysql
Dxy123931021613 小时前
MySQL如何加唯一索引
android·数据库·mysql
我真的是大笨蛋13 小时前
深度解析InnoDB如何保障Buffer与磁盘数据一致性
java·数据库·sql·mysql·性能优化
怣5013 小时前
MySQL数据检索入门:从零开始学SELECT查询
数据库·mysql
奋进的芋圆14 小时前
Spring Boot 实现三模安全登录:微信扫码 + 手机号验证码 + 邮箱验证码
spring boot·redis·微信
怪兽源码14 小时前
基于SpringBoot的选课调查系统
java·spring boot·后端·选课调查系统