小唐开始学 Spring Boot——(3)利用mybatis访问数据表

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 小唐开始学 Spring Boot——(3)利用mybatis访问数据表

或许直接叫他Spring Boot连数据库会更好啊哈哈哈哈哈哈

一、过程

创建新项目

因为我们这一次要使用sql,所以重新创建一个项目吧,这次唯一不同的是,我们要额外选择几个依赖

创建数据表

在里面随便添加一个数据就可以啦

创建返回结构

因为我们mysql放回结构是一个list,所以我们需要定义一个新的属性来对这些值进行承接,并且属性和字段要相同,同时具备set和get方法

查询函数

这里面的Test1就是我们之前写好的结构

这里注意我们使用的是映射的方法,通过在.src/main/resources/mapper目录下创建一个xml文件,来作为我们方法的实现

方法集成

因为我们到时候写Spring boot不可能只有一种函数,所以我们需要有一个类来对其进行一个集成,到时候我们通过网站访问的时候直接访问这个集成类就可以了

访问网站

和之前一样,我们需要一个网址来访问我们的网站,来访问我们的网站,在这里我们去调用我们集成中的方法即可

配置数据库

我们同时还需要在我们全局里面配置相应属性,数据库的时区,驱动配置,以及账号密码,还有我们的需要引用的xml文件

成功

二、项目代码

项目结构

Testlist.java

package com.example.test.controller;
import com.example.test.domain.Test1;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import com.example.test.service.TestService;
import javax.annotation.Resource;
import java.util.List;
@RestController
public class Testlist {
    @Resource
    private TestService testService;
    @GetMapping("/list")
    public List<Test1> testlistall()
    {
        return testService.list();
    }
}

Test1.java

package com.example.test.domain;
public class Test1 {
    private Integer id;
    private String name;
    private  String password;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    @Override
    public String toString() {
        return "Test1{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
}

TestMapper.java

package com.example.test.mapper;
import com.example.test.domain.Test1;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
import java.util.List;
@Mapper
@Repository
public interface TestMapper {
    public List<Test1> findall();
}

TestService.java

package com.example.test.service;
import com.example.test.domain.Test1;
import com.example.test.mapper.TestMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class TestService {
    @Autowired
    private TestMapper testMapper;
    public List<Test1> list(){
        return testMapper.findall();
    }
}

testmapper.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.test.mapper.TestMapper" >
    <select id="findall" resultType="com.example.test.domain.Test1">
        select `id`, `name`, `password` from `account`
    </select>
</mapper>

application.properties

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/spring?characterEncoding=UTF8&autoReconnect=true&serverTimezone=Asia/Shanghai&allowMultiQueries=true
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
mybatis.mapper-locations=classpath:/mapper/**/*.xml

三、常见错误

数据库连接失败

1.配置问题

如果我们右边框框的数据库连接成功,但是运行的时候显示连接错误,请检查spring.datasource.url=jdbc:mysql://127.0.0.1:3306/spring?........

spring有没有改成我们自己的数据库,以及端口号是否正确

2. 驱动版本问题

可能有一些宝的my sql版本比较低,对于太新的驱动不适应

Loading class com.mysql.jdbc.Driver'. This is deprecated. The new driver class iscom.mysql.cj.jdbc.Driver’. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary

在mysql5中jdbc的驱动是

com.mysql.jdbc.Driver

而mysql6以及以上是

com.mysql.cj.jdbc.Driver

3.时区配置错误,请重新复制时区

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/你的数据库名?characterEncoding=UTF8&autoReconnect=true&serverTimezone=Asia/Shanghai&allowMultiQueries=true

4.xml配置错误

四、总结

相对来说,只要我们搞懂里面的逻辑就不是很难了,基本就是这几步

1.写好相关表的结构(方便后续放回值)
2.写我们要实现的方法(这里注意我们是采用xml来实现的)
3.将我们写好的方法添加到所有的方法集合里面(方便后续调用)
4.写好我们控制类,在我们的方法集合里面选择要使用的方法

层层相扣,而我们用户使用的就恰恰相反,在我们的控制类里面选择所有的方法集合里面的要调用方法,然后自顶向下去推。其他的配置那一块,基本都有文件和数据给我们了,问题不是很大。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7天前
|
Java 数据库连接 数据库
Spring日志完结篇,MyBatis操作数据库(入门)
Spring日志完结篇,MyBatis操作数据库(入门)
|
19天前
|
Java 关系型数据库 数据库连接
MyBatis-Plus介绍及Spring Boot 3集成指南
MyBatis-Plus是一个MyBatis扩展工具,旨在简化Java开发中的CRUD操作。它具有无侵入性、低损耗、强大的CRUD功能、Lambda表达式支持、主键自动生成、ActiveRecord模式、全局操作和内置代码生成器等特点。在Spring Boot 3中集成MyBatis-Plus,需在pom.xml添加依赖,排除特定版本的mybatis-spring,并用@MapperScan注解指定Mapper接口路径。此外,还介绍了如何使用MyBatis-Plus代码生成器自动生成Mapper、Model、Service和Controller层代码,以加速开发。
62 2
MyBatis-Plus介绍及Spring Boot 3集成指南
|
19天前
|
Java 关系型数据库 MySQL
SpringBoot整合JUnit、MyBatis、SSM
SpringBoot整合JUnit、MyBatis、SSM
28 4
|
19天前
|
Java 数据库连接 数据库
Spring整合Mybatis、Spring整合JUnit
Spring整合Mybatis、Spring整合JUnit
24 1
Spring整合Mybatis、Spring整合JUnit
|
20天前
|
前端开发 Java 关系型数据库
小唐开始学 Spring Boot——(5)前端显示集成
小唐开始学 Spring Boot——(5)前端显示集成
|
20天前
|
Java 编译器 数据库
小唐开始学 Spring Boot——(4)代码生成器
小唐开始学 Spring Boot——(4)代码生成器
|
28天前
|
SQL Java 数据库连接
挺详细的spring+springmvc+mybatis配置整合|含源代码
挺详细的spring+springmvc+mybatis配置整合|含源代码
204 1
|
26天前
|
算法 Java 数据库连接
Spring+MySQL+数据结构+集合,Alibaba珍藏版mybatis手写文档
Spring+MySQL+数据结构+集合,Alibaba珍藏版mybatis手写文档
|
28天前
|
Java 数据库连接 Spring
Spring 整合mybatis
Spring 整合mybatis
26 2
|
28天前
|
SQL Java 数据库连接
15:MyBatis对象关系与映射结构-Java Spring
15:MyBatis对象关系与映射结构-Java Spring
42 4