SpringBoot整合mybatis

说明:核心配置就是数据库连接相关信息;映射配置:SQL映射。

1.创建项目

说明:创建了一个springboot_05_mybatis项目。

2.选择坐标

说明:按需配置,也就是按需勾选。

3.pom文件

说明:springboot自带的都是spring-boot这样格式;第三方技术是技术-spring-boot。

4.yml文件

说明:配置数据连接配置

XML 复制代码
#配置数据库
spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/mybatis
    username: root
    password: 123456

5.实体类

说明:在domain文件夹创建User实体类

java 复制代码
package com.forever.domain;

public class User {
    private  Integer id;
    private  String username;
    private  String  password;
    private  String gender;
    private  String addr_city;

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", gender='" + gender + '\'' +
                ", addr_city='" + addr_city + '\'' +
                '}';
    }

    public User(Integer id, String username, String password, String gender, String addr_city) {
        this.id = id;
        this.username = username;
        this.password = password;
        this.gender = gender;
        this.addr_city = addr_city;
    }

    public User() {
    }

    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 getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public String getAddr_city() {
        return addr_city;
    }

    public void setAddr_city(String addr_city) {
        this.addr_city = addr_city;
    }
}

6.持久层

说明: dao文件下创建UserDao接口

java 复制代码
package com.forever.dao;

import com.forever.domain.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;


@Mapper
// 数据库SQL映射需要添加@Mapper被容器识别到
public interface UserDao {
    @Select("select * from tb_user where id= #{id}")
    public User getById(Integer id);
}

7.测试

java 复制代码
package com.forever;

import com.forever.dao.UserDao;
import com.forever.domain.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class Springboot05MybatisApplicationTests {
  @Autowired
  private UserDao userDao;
    @Test
    void contextLoads() {
        System.out.println(userDao.getById(1));
    }

}

8.显示

9.数据表

sql 复制代码
/*
 Navicat Premium Data Transfer

 Source Server         : mysql
 Source Server Type    : MySQL
 Source Server Version : 50741
 Source Host           : localhost:3306
 Source Schema         : mybatis

 Target Server Type    : MySQL
 Target Server Version : 50741
 File Encoding         : 65001

 Date: 04/11/2023 22:00:10
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for tb_user
-- ----------------------------
DROP TABLE IF EXISTS `tb_user`;
CREATE TABLE `tb_user`  (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `password` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `gender` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `addr_city` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 17 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of tb_user
-- ----------------------------
INSERT INTO `tb_user` VALUES (1, '张三', '123', '男', '成都');
INSERT INTO `tb_user` VALUES (2, '李四', '123', '女', '北京');
INSERT INTO `tb_user` VALUES (3, '李', '1320', '男', '成都');
INSERT INTO `tb_user` VALUES (4, '李', '1320', '男', '成都');
INSERT INTO `tb_user` VALUES (5, '李', '1320', '男', '成都');
INSERT INTO `tb_user` VALUES (6, '李', '1320', '男', '成都');
INSERT INTO `tb_user` VALUES (7, '李', '1320', '男', '成都');
INSERT INTO `tb_user` VALUES (8, '李', '1320', '男', '成都');
INSERT INTO `tb_user` VALUES (9, '李', '1320', '男', '成都');
INSERT INTO `tb_user` VALUES (10, '李', '1320', '男', '成都');
INSERT INTO `tb_user` VALUES (11, '李', '1320', '男', '成都');
INSERT INTO `tb_user` VALUES (12, '李', '1320', '男', '成都');
INSERT INTO `tb_user` VALUES (13, '李', '1320', '男', '成都');
INSERT INTO `tb_user` VALUES (14, '李', '1320', '男', '成都');
INSERT INTO `tb_user` VALUES (15, '李', '1320', '男', '成都');
INSERT INTO `tb_user` VALUES (16, '李', '1320', '男', '成都');

SET FOREIGN_KEY_CHECKS = 1;

10.注意

问题1:MySQL8.x驱动强制要求设置时区

解决:

XML 复制代码
url: jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC 

问题2:This is deprecated(这个已经弃用)

解决:

XML 复制代码
 driver-class-name: com.mysql.cj.jdbc.Driver
相关推荐
SL_staff13 分钟前
物模型三要素误用避坑指南:属性、事件、服务的正确建模逻辑
java
一条泥憨鱼18 分钟前
【Redis | 黑马点评】短信登录功能 源码深度分析
java·redis·后端·session·黑马点评
威哥爱编程22 分钟前
【AI全栈12-12】Spring Boot 3.x → 4.x 迁移实操:Jakarta 11、Jackson 3 与 AI 2.0
java·spring boot·后端
威哥爱编程27 分钟前
【AI全栈12-11】Spring Boot 把 AI 接口真正上线扛量:限流 / 降级 / 可观测
java·spring boot·后端
小蒜学长28 分钟前
基于SpringBoot+uni-app的闪洁家政系统的设计与实现(代码+数据库+LW)
java·spring boot·后端·uni-app·家政服务
做个文艺程序员28 分钟前
MQ第07篇:Java SaaS多租户消息隔离实战:RabbitMQ VHost+RocketMQ Tag+命名空间架构
spring boot·rabbitmq·rocketmq·saas·多租户
敲代码的彭于晏44 分钟前
2026 K8s 零基础入门:手把手教你一步步搭建 Kubernetes 集群
java·运维·全栈
希洛兔1 小时前
状态模式详解:让对象随内部状态自动改变行为
java·设计模式·状态模式
需要8261 小时前
Spring Boot 启动流程:run() 里到底发生了什么
java·spring boot·后端
云絮.1 小时前
Mybatis(一)
java·数据库·mybatis