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
相关推荐
万亿少女的梦16819 分钟前
基于Spring Boot的游戏交易管理系统设计与实现
java·spring boot·mysql·系统设计·交易管理
闲猫1 小时前
Agent工程实践:从WorkFlow到多Agent协作的落地笔记
java·服务器·前端
笨蛋不要掉眼泪1 小时前
Java虚拟机:常用参数
java·开发语言·python
亦暖筑序2 小时前
AgentScope-Java 入门:用 Middleware 审计 Agent 调用
java·ai编程·agentscope
你驴我2 小时前
WhatsApp 消息撤回与编辑的幂等性设计实践
java·服务器·前端·后端·python
青山木2 小时前
Hot 100 ---腐烂的橘子
java·数据结构·后端·算法·leetcode·广度优先
小龙报3 小时前
【优选算法】1. 水果成蓝 2.找到字符串中所有字母的异位词
java·c语言·数据结构·数据库·c++·redis·算法
ruleslol3 小时前
SpringBoot26-@Configuration + @Component
spring boot
自强的小白3 小时前
重点!起始时间和结束时间与创建时间和修改时间的区别(localdate与LocaldateTIME区别)以及增删改查什么时候设置目前时间(添加和更新员工时)
java
雪的季节3 小时前
Python 线程同步与异步编程 全解析
java·开发语言