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
相关推荐
二进制person32 分钟前
Java EE初阶 --多线程2
java·开发语言
007php0071 小时前
某游戏大厂 Java 面试题深度解析(四)
java·开发语言·python·面试·职场和发展·golang·php
西西学代码2 小时前
Flutter---个人信息(5)---持久化存储
java·javascript·flutter
陈果然DeepVersion2 小时前
Java大厂面试真题:Spring Boot+Kafka+AI智能客服场景全流程解析(五)
java·spring boot·kafka·向量数据库·大厂面试·rag·ai智能客服
FAFU_kyp2 小时前
Spring Boot 邮件发送系统 - 从零到精通教程
java·网络·spring boot
脚踏实地的大梦想家3 小时前
【Docker】P2 Docker 命令:从Nginx部署到镜像分享的全流程指南
java·nginx·docker
Blossom.1183 小时前
把AI“编”进草垫:1KB决策树让宠物垫自己报「如厕记录」
java·人工智能·python·算法·决策树·机器学习·宠物
芒克芒克3 小时前
ssm框架之Spring(上)
java·后端·spring
消失的旧时光-19433 小时前
Android ble理解
java·kotlin
晨晖23 小时前
SpringBoot的yaml配置文件,热部署
java·spring boot·spring