04.Springboot3整合MyBatis实现数据库操作 – 朝汐の小站
04.Springboot3整合MyBatis实现数据库操作
本文最后更新于 292 天前,如有错误请邮件至 zhiligyi222na@gmail.com

新建数据库

配置字符集和编码

新建表管理员表admin

admin表结构

CREATE TABLE `admin` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  `username` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '账号',
  `password` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '密码',
  `name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '名称',
  `phone` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '手机号',
  `email` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '邮箱',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='管理员信息';

设置username唯一

Spring Boot集成Mybatis

在pom.xml里面添加Mysql和MyBatis依赖

<dependency>
    <groupId>com.mysql</groupId>
    <artifactId>mysql-connector-j</artifactId>
    <scope>runtime</scope>
</dependency>

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

Spring Boot配置数据库和Mybatis

application.yml里的配置

#数据库配置
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/demodb?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&allowMultiQueries=true&useSSL=false&allowPublicKeyRetrieval=true
    username: root
    password: root
#配置mybatis实体和xml映射
mybatis:
  #xml映射
  mapper-locations: classpath:mapper/*.xml
  configuration:
    #配置日志
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    map-underscore-to-camel-case: true    #把数据库下划线映射为驼峰,category_id -> categoryId

classpath:表示resource的目录,从mapper里扫描所以.xml结尾的文件

创建实体类Admin

entity/Admin.java

package org.example.springdemo.entity;

/**
 * 管理员信息
 */
public class Admin {
    private Integer id;
    private String username;
    private String password;
    private String user;
    private String phone;
    private String email;

    public Integer getId() {
        return id;
    }

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

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getUser() {
        return user;
    }

    public void setUser(String user) {
        this.user = user;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
}

创建mapper文件夹存放xml文件

resources/mapper/AdminMapper.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="org.example.springdemo.mapper.AdminMapper">

    <select id="selectAll" resultType="org.example.springdemo.entity.Admin">
        select * from `admin` order by id desc
    </select>

</mapper>

创建mapper接口层

mapper/AdminMapper.java

package org.example.springdemo.mapper;

import org.example.springdemo.entity.Admin;

import java.util.List;

public interface AdminMapper {

    List<Admin> selectAll();

}

在启动类里面 扫描接口层

Mapper接口和Mapper.xml的关系

Mapper定义接口方法

Mapper.xml里面实现方法(SQL语句实现)

连接数据库写一个查询接口

Controller/AdminController.java

package org.example.springdemo.controller;

import jakarta.annotation.Resource;
import org.example.springdemo.common.Result;
import org.example.springdemo.entity.Admin;
import org.example.springdemo.service.AdminService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
@RequestMapping("/admin")
public class AdminController {

    @Resource
    AdminService adminService;

    @GetMapping("/selectAll")   //完整的请求路径为:http://localhost:9999/admin/selectAll
    public Result selectAll()
    {
        List<Admin> adminList = adminService.selectAll();
        return Result.success(adminList);
    }

}

Service/AdminService.java

package org.example.springdemo.service;

import jakarta.annotation.Resource;
import org.example.springdemo.entity.Admin;
import org.example.springdemo.exception.CustomerException;
import org.example.springdemo.mapper.AdminMapper;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class AdminService {

    @Resource
    AdminMapper adminMapper;

    public String admin(String name) {
        if ("admin".equals(name)) {
            return "admin";
        }else {
            throw new CustomerException("账号错误");
        }
    }

    public List<Admin> selectAll() {
        return adminMapper.selectAll();
    }
}

Mapper/AdminMapper.java

package org.example.springdemo.mapper;

import org.example.springdemo.entity.Admin;

import java.util.List;

public interface AdminMapper {

    List<Admin> selectAll();

}

resources/mapper/AdminMapper.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="org.example.springdemo.mapper.AdminMapper">

    <select id="selectAll" resultType="org.example.springdemo.entity.Admin">
        select * from `admin` order by id desc
    </select>

</mapper>

测试查询接口

重新启动spring boot项目,浏览器访问http://localhost:9999/admin/selectAll

文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇