MyBatis教程[1]----项目构建并完成第一个查询操作

目录

  • 前言
  • 0.环境说明
  • 1.创建SpringBoot工程
  • 2.目录结构创建
  • 3.创建实体类
  • 4.创建映射接口
  • 5.编写映射配置文件
  • 6.配置数据源和映射文件路径
  • 7.测试

前言

本人的MyBatis系列教程均采用当下流行的SpringBoot + MyBatis配置文件版的组合进行讲解,其他组合方式不在本教程讨论范围内。此外,需要学习者有一定的SpringBoot基础,如对此不太了解,可移步本人教程进行SpringBoot的学习。另外,需要对SQL语句有一定的了解,不要求掌握的多好,但基本的增删改查还是要会的。

0.环境说明

SDK版本:1.8
MySQL版本:5.7
开发工具:IntelliJ IDEA
接口调试工具:Postman
演示数据库:study-mybatis(请自行创建)

请运行以下sql脚本导入本篇教程所用数据表

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `name` varchar(100) DEFAULT NULL COMMENT '姓名',
  `phone` varchar(20) DEFAULT NULL COMMENT '手机号',
  `birthday` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '生日',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of user
-- ----------------------------
BEGIN;
INSERT INTO `user` VALUES (1, '小明', '18888888888', '2020-03-16 14:31:21');
INSERT INTO `user` VALUES (2, '小红', '177777777777', '2020-03-16 14:34:58');
INSERT INTO `user` VALUES (3, '小王', '16666666666', '2020-03-16 14:35:11');
INSERT INTO `user` VALUES (4, '小张', '15555555555', '2020-03-16 14:37:25');
INSERT INTO `user` VALUES (5, '小刘', '14444444444', '2020-03-16 14:48:08');
COMMIT;

SET FOREIGN_KEY_CHECKS = 1;

1.创建SpringBoot工程

1.File–>New–>Project—>Spring Initializer,在这里选择一下SDK版本
MyBatis教程[1]----项目构建并完成第一个查询操作_第1张图片
2.填写项目信息
MyBatis教程[1]----项目构建并完成第一个查询操作_第2张图片
3.添加依赖
MyBatis教程[1]----项目构建并完成第一个查询操作_第3张图片
4.选择项目目录,并确定新建完成,新建完成后,需要import一下maven依赖。项目目录如下:
MyBatis教程[1]----项目构建并完成第一个查询操作_第4张图片
5.Maven依赖如下:

<dependencies>
		
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-webartifactId>
        dependency>
        
        <dependency>
            <groupId>org.mybatis.spring.bootgroupId>
            <artifactId>mybatis-spring-boot-starterartifactId>
            <version>2.1.2version>
        dependency>
		
        <dependency>
            <groupId>mysqlgroupId>
            <artifactId>mysql-connector-javaartifactId>
            <scope>runtimescope>
        dependency>
        
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-testartifactId>
            <scope>testscope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintagegroupId>
                    <artifactId>junit-vintage-engineartifactId>
                exclusion>
            exclusions>
        dependency>
    dependencies>

至此,SpringBoot工程创建完毕。

2.目录结构创建

需要创建以下目录,用于存放dao层、service层、controller层、配置类代码。

序号 名称 作用
1 entities 存放实体类
2 config 存放配置类
3 mapper 存放MyBatis映射接口(DAO层代码)
4 service 存放service层接口代码
5 service/impl 存放service层接口的具体实现
6 controller 存放控制层代码
7 resource/mapper 存放MyBatis xml映射文件代码

此外,在resource目录下创建一个application.yml文件,用来代替原来的application.properties文件。

创建好的目录结构如下:
MyBatis教程[1]----项目构建并完成第一个查询操作_第5张图片

3.创建实体类

在entities包下创建类

package com.yky.springboot.entities;

import java.io.Serializable;
import java.util.Date;

public class User implements Serializable {
    private Long id;
    private String name;
    private String phone;
    private Date birthday;

    public Long getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

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

    public String getPhone() {
        return phone;
    }

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

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", phone='" + phone + '\'' +
                ", birthday=" + birthday +
                '}';
    }
}

4.创建映射接口

在mapper包下创建接口

package com.yky.springboot.mapper;

import com.yky.springboot.entities.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

@Mapper
public interface UserMapper {

    User selectById(@Param("id") Long id);
}

目前在此接口中只定义了一个方法,该方法的作用是根据id查找User对象

5.编写映射配置文件

在resource/mapper目录下创建UserMapper.xml文件




<mapper namespace="com.yky.springboot.mapper.UserMapper">

    
    <select id="selectById" resultType="com.yky.springboot.entities.User">
       SELECT * FROM `user` WHERE id = #{id}
    select>
mapper>

6.配置数据源和映射文件路径

在application.yml文件中添加以下代码:

spring:
  datasource:
    username: root
    password: 123
    #mysql8以上的驱动包需要指定时区
    url: jdbc:mysql://127.0.0.1:23306/study-mybatis?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8
    driver-class-name: com.mysql.cj.jdbc.Driver
mybatis:
  #配置mybatis映射文件路径
  mapper-locations: classpath:mapper/*.xml

7.测试

采用IDEA代码自动生成功能生成UserMapper的测试类
MyBatis教程[1]----项目构建并完成第一个查询操作_第6张图片
添加@SpringBootTest注解,并编写测试方法

@SpringBootTest
class UserMapperTest {

    @Autowired
    UserMapper userMapper;
    @Test
    void selectById() {

        User user = userMapper.selectById(1L);
        System.out.println(user);
    }
}

运行结果:
在这里插入图片描述

你可能感兴趣的:(Mybatis,mybatis,spring,spring,boot,mysql)