MyBatis读取MySQL数据简单示例(2023.10.22)

一、确定需求

需求:前端访问后端URL,显示后端从数据库读取的数据

输入:前端访问URL为http://localhost:8080/hello

输出:前端显示后端从数据库读取的数据

二、新建项目的子模块

(一)新建项目multiModules

(二)新建模块mybatis

(三)新模块mybatis 添加为Maven 项目,等待Maven 解析依赖完成

(四)启动新模块项目验证是否正常

最终由于DataSouce 未配置,预期结果应为启动失败

三、MySQL数据库配置、添加数据

(一)创建数据库

推荐使用Navicat

(二)添加表和表的字段

设置完成后点击“保存”并将表名设置为“user”

(三)添加数据

四、编写代码

(一)新建controller、domain、mapper、service包

(二)新建mapper资源目录

(三)新建controller、domain、mapper、service对应的Java文件

HelloController.java

package com.example.mybatis.controller;

import com.example.mybatis.domain.User;
import com.example.mybatis.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class HelloController {
    @Autowired
    private UserService userService;

    @GetMapping("/hello")
    public List<User> hello()
    {
        return userService.selectAllUser();
    }
}

User.java

package com.example.mybatis.domain;

public class User {
    public int id;
    private String name;
    private int age;
    public String sex;
    public String createTime;

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getCreateTime() {
        return createTime;
    }

    public void setCreateTime(String createTime) {
        this.createTime = createTime;
    }
}

UserMapper.java(接口类)

package com.example.mybatis.mapper;

import com.example.mybatis.domain.User;

import java.util.List;

public interface UserMapper {
    public List<User> selectAllUser();
}

UserService.java

package com.example.mybatis.service;

import com.example.mybatis.domain.User;
import com.example.mybatis.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;

    public List<User> selectAllUser()
    {
        return userMapper.selectAllUser();
    }
}

(四)新建mapper资源目录Java mapper对应的XML文件

UserMapper.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.mybatis.mapper.UserMapper">
    <resultMap id="UserResult" type="User">
        <id     property="id"   column="id"     />
        <result property="name" column="name"   />
        <result property="age"  column="age"   />
        <result property="sex"  column="sex"   />
        <result property="createTime"  column="create_time"   />
    </resultMap>

    <select id="selectAllUser" resultMap="UserResult">
        select * from user
    </select>

</mapper>

(五)配置数据库连接和MyBatis

1、新建application.yml

遇到问题:新建文件选项中没有.yml文件

解决问题:添加文件模板

配置application.yml文件

application.yml文件代码

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8
    username: root
    password: xxxxxxxx

mybatis:
  typeAliasesPackage: com.example.mybatis.domain
  mapperLocations: classpath:mapper/*.xml

(六)添加必要的注解

在MybatisApplication.java文件中添加注解:@MapperScan("com.example.mybatis.mapper")

五、编译代码、构建程序、执行SpringBoot程序

六、测试SpringBoot后端接口,查看是否完成需求

需求:前端访问后端URL,显示后端从数据库读取的数据

输入:前端访问URL为http://localhost:8080/hello

输出:前端显示后端从数据库读取的数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

随缘就是喽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值