SpringBoot配置Mybatis:详细易懂

文章目录

    • SpringBoot配置Mybatis:详细易懂
      • 前期准备工作
      • Mybatis相应配置
      • 编写相应代码
      • 文件结构和结果
      • 增删查改
      • Mybatis 动态SQL
      • 参考文章

SpringBoot配置Mybatis:详细易懂

Mybatis作为后端持久层框架,在互联网大厂中应用广泛,所以掌握Mybatis,可谓是必备的。最近准备系统得复习一下Mybatis框架,所以博客会更几期关于Mybatis得文章,如果觉得看完有收获,希望收藏、点赞。如果觉得写得不好,欢迎评论区指正。

前期准备工作

  • 安装mysql,可以参考 安装MySQL

    mysql记得给远程用户分配权限,参考mysql 8 设置允许远程连接 You are not allowed to create a user with GRANT

  • 配置SpringBoot开发环境,参考VS Code打造一个完美的Springboot开发环境

  • 创建一个学生表(终端, 代码动态创建均可)

     create table(Sno int(10) primary key, Sname varchar(10), Sage int(5));
    

Mybatis相应配置

修改pom.xml,获取Mybatis、MySQL相关依赖


    mysql
    mysql-connector-java
    runtime


    org.mybatis.spring.boot
    mybatis-spring-boot-starter
    2.1.2
    compile

application.properties文件中配置Mybatis连接环境

mybatis.type-aliases-package=com.test.demo
#mysql驱动
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
#远程数据库链接 serverTimezone不可少
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
#MySQL数据库用户名、密码
spring.datasource.username=root
spring.datasource.password=xxxxx
#xml格式的mapper文件位置
mybatis.mapper-locations=classpath:/mapper/*.xml

编写相应代码

添加bean类(对应与数据库属性列)

package com.test.demo;

public class Student {
    public int sNo;
    public String sName;
    public int sAge;
    public Student(int sNo, String sName, int sAge) {
        this.sNo = sNo;
        this.sName = sName;
        this.sAge = sAge;
    }
    //Getter、Setter方法,我省略了,你在代码中别省略
}

添加mapper接口代码

package com.test.demo.mapper;

import com.test.demo.Student;

public interface StudentMapper {
    void insert(Student student);
}

添加mapper接口对应的xml格式文件

一定注意路径对应,com.test.demo.mapper.StudentMapper

这里只写了插入,下文会补充删除、更新、查询






    
        INSERT INTO student (Sno,Sname,Sage) VALUES (#{sNo},#{sName},#{sAge})
     

最后的controller代码文件

package com.test.demo.controller;
import org.springframework.web.bind.annotation.RestController;
import com.test.demo.Student;
import com.test.demo.mapper.StudentMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
@RestController
public class HomeController {
    @Autowired
    private StudentMapper  studentMapper;
    @RequestMapping("/")
    public String index() throws Exception {
        studentMapper.insert(new Student(1, "天宇", 24));
        return "OK";
    }
}

文件结构和结果

SpringBoot配置Mybatis:详细易懂_第1张图片

SpringBoot配置Mybatis:详细易懂_第2张图片

增删查改

mapper接口

package com.test.demo.mapper;
import com.test.demo.Student;

public interface StudentMapper {
    void insert(Student student);
    void delete(String sNo);
    Student selectByNumber(Integer sNo);
    void updateName(Student student);
}

对应xml文件

参数的类型一定是完整的包名,参数名写ben类的属性名





	
    
        INSERT INTO student (Sno,Sname,Sage) VALUES (#{sNo},#{sName},#{sAge})
     
    
    
    
        DELETE FROM student where Sno = #{sNo};
    

    
    

    
    
        UPDATE student SET Sname = #{sName} where Sno = #{sNo}
    

Mybatis 动态SQL

在实际应用开发过程中,我们往往需要写复杂的 SQL 语句,需要拼接,而拼接SQL语句又稍微不注意,由于引号,空格等缺失可能都会导致错误。Mybatis提供了动态SQL,也就是可以根据用户提供的参数,动态决定查询语句依赖的查询条件或SQL语句的内容。

if、foreach关键字用法

mapper接口

public interface StudentMapper {
    List findByCondition(String sName, Integer sAge);
    List selectByNumberList(List list);
}

对应的xml格式mapper文件


    

参考文章

简单,Spring boot 配置mybatis

Mybatis入门看这一篇就够了

你可能感兴趣的:(java,java,后端)