【SpringBoot3整合MyBatis实例项目:课程信息模糊查询】超详细!!!

一、下载并安装JDK17

SpringBoot3要求的最低版本是JDK17,故我们使用JDK17即可

JDK17下载地址:Java Archive Downloads - Java SE 17 (oracle.com)

我们选择下载exe文件

image-20221201132738001


下载好之后直接双击运行,选择好安装地址后,点击安装即可,安装成功后如图所示。

image-20221201133742708


接下来配置环境

image-20221201134009439


点击高级系统设置

image-20221201134140745


点击高级选项中的环境变量

image-20221201134312242



选择新建

image-20221201134655168



我们新建JAVA_HOME环境,如果之前装有JDK其他版本的直接编辑,填好安装JDK17的路径之后点击确定。

image-20221201134858512



接下来将JDK17的bin目录添加到PATH环境变量,双击即可进入PATH

image-20221201135119659



再PATH里面新建并输入 %JAVA_HOME%\bin ,并移到最上方,避免与其他Java环境产生冲突。最后点击确定即可。

image-20221201135452712



最后我们验证一下是否安装并配置成功,Win+R,输入cmd,点击确定。

在命令行界面输入java -version,如果出现如图所示的版本信息则说明安装成功。

image-20221201135925576




二、创建SpringBoot3项目

我使用的IDEA版本是 2021版本的,如果是其他版本的界面可能有点出入。

New一个新项目,填写好包名以及选择好JDK版本,点击Next。

image-20221201140832244



选择我们要用到的模块,选好后我们点击Finish。第一次下载可能会很久。

image-20221201141048213

image-20221201141106006



我们刚刚选择的模块都是些什么呢?我们选择的模块如下:

image-20221201141707759

Lombok:简而言之,Lombok能以简单的注解形式来简化java代码,提高开发人员的开发效率。

Spring Boot DevTools:这个是SpringBoot的热部署

Spring Configuration Processor:配置文件-自定义类绑定的配置提示,因为自定义的类和配置文件绑定一般没有提示。若要提示,则需添加。

Spring Web:这个是开发SpringWeb要用到的

MySQL Driver:连接MySQL数据库用到的




三、整合MyBatis

如果要整合MyBatis到SpringBoot,我们需要导入相应的依赖。

MyBatis的GitHub仓库

MyBatis官方

①导入依赖

我们再pom.xml文件中加入下面的依赖

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>3.0.0</version>
</dependency>

image-20221201145444244


点击Maven,并点击刷新,下载刚刚添加的依赖。

image-20221201194341844


②创建配置文件application.yml

yml文件和xml文件一样,都是配置文件,非常适合用来做以数据为中心的配置文件

在resource根目录中创建

image-20221201200319488


我们需要连接数据库的话,需要配置相应的数据库信息,

我们在application.yml这个配置文件中配置的 数据库连接信息Mybatis 的相应信息如下:

spring:
  datasource:
    username: root
    password: root
    url: jdbc:mysql://localhost:3306/ssm?serverTimezone=UTC
    driver-class-name: com.mysql.cj.jdbc.Driver

# 配置mybatis规则
mybatis:
  mapper-locations: classpath:mybatis/mapper/*.xml  #sql映射文件位置
  configuration:
    map-underscore-to-camel-case: true


③创建Mapper.xml文件

resource根目录中创建mybatis文件夹来存放Mapper.xml文件

image-20221201200833618


创建mapper文件夹,在mapper文件夹下创建CourseMapper.xml文件

image-20221201201747746

CourseMapper.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.example.boot.mapper.CourseMapper">

    <select id="getClazzByMoHu" resultType="com.example.boot.pojo.Clazz">
        select * from course where c_name like concat('%',#{cname},'%')
    </select>

</mapper>


在boot包下创建mapper包存放Mapper的接口文件

和在boot包下创建pojo存放课程信息的实体类

image-20221201202205480

代码如下所示:

CourseMapper:

package com.example.boot.mapper;


import com.example.boot.pojo.Clazz;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface CourseMapper {
    List<Clazz> getClazzByMoHu(@Param("cname")String uname);
}


Clazz: 大家可以看到这个类我并没有写无参构造、全参构造、toString()、以及setter和getter方法,因为我使用了 @DataAllArgsConstructor等注解,使用这几个注解就相当于帮我们写了这些方法。这几个注解就是我们创建项目时添加的lombok模块带来的,极大地简化了我们的代码。

package com.example.boot.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Clazz {

    private Integer cId;    //课程id

    private String cName;   //课程名

    private String teacher; //课程教师

    private Integer cHour;  //学时

    private Integer credit; //学分
}



四、创建Service服务层

在boot包下创建service包,用来存放CourseService服务层接口和CourseServiceImpl实现类。

image-20221201204934221


代码如下:

CourseService接口:

package com.example.boot.service;

import com.example.boot.pojo.Clazz;

import java.util.List;

public interface CourseService {
    List<Clazz> getClazzByMoHu(String cname);
}

CourseServiceImpl实现类:

package com.example.boot.service.impl;

import com.example.boot.mapper.CourseMapper;
import com.example.boot.pojo.Clazz;
import com.example.boot.service.CourseService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class CourseServiceImpl implements CourseService {

    @Autowired
    private CourseMapper courseMapper;

    public List<Clazz> getClazzByMoHu(String cname) {
        return courseMapper.getClazzByMoHu(cname);
    }
}



五、创建Controller控制层

在boot包下创建controller包,用来存放CourseController控制层类

image-20221201201714935


代码如下:

package com.example.boot.controller;

import com.example.boot.pojo.Clazz;
import com.example.boot.service.CourseService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;


@RestController
public class CourseController {

    @Autowired
    private CourseService courseService;

    @PostMapping("/search/coursename")
    public List<Clazz> searchUsername(@RequestParam("coursename") String coursename, Model model) {

        return courseService.getClazzByMoHu(coursename);
    }
}



六、在数据库创建数据

先在MySQL数据库创建一个表:

image-20221126232113586

建表代码如下:

create table course(
c_id int(11) not null auto_increment,
c_name varchar(10),
teacher varchar(10),
c_hour int(4),
credit int(4),
primary key(c_id)
)DEFAULT CHARSET=utf8;

insert into course(c_name,teacher,c_hour,credit) 
values("JavaEE实验","肖帮主",16,1);
insert into course(c_name,teacher,c_hour,credit) 
values("刑法与法律","张三",48,5);
insert into course(c_name,teacher,c_hour,credit) 
values("Java基础","肖老师",32,3);
insert into course(c_name,teacher,c_hour,credit) 
values("JavaEE","郭标",32,2.5);



七、启动项目

点击启动类,加入@MapperScan("com.example.boot.mapper"),加入这个以后,它就会扫描加有@Mapper注解的mapper接口文件。然后启动。

image-20221201223247904




八、使用接口软件进程测试

我们打开Apifox

创建一个新项目

image-20221201225115781


项目名随便填,然后点击保存。

image-20221201225235962


点击进入该项目

image-20221201225331849


选择新建接口

image-20221201225407361


然后输入相关信息以及参数,输入完毕后保存,点击运行。

image-20221201224902175


固定值Java是这样子弄的

image-20221201225552145

image-20221201225719086



点击发送进行测试。

image-20221201225837940

最后得到数据库中的值,这样子就成功了。

image-20221201225935974


感谢大家得阅读,如有错误之处,请指正!



  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值