跳到主要内容

SpringBoot结合Mybatis

环境

环境采用IDEA自带的Spring初始化一键搭建,搭建时记得勾选上MyBatis Framework即可。

前置过程

准备好数据库和表

table

代码过程

数据源配置

其中 mybatis.mapper-locations 是配置 mapper xml 文件的路径,如果采用注解的方式可以忽略。

spring:
datasource:
url: jdbc:mysql://127.0.0.1:3308/vulnWebDB?characterEncoding=utf-8&useSSL=false
username: root
password: xxxxxxx
driver-class-name: com.mysql.cj.jdbc.Driver
mybatis:
mapper-locations: classpath*:mapper/*.xml

application.yml

创建实体数据模型

根据表的结构,创建对应的数据模型,方便数据库直接把查询结果赋值进去。

package com.xxx.vulnweb.model;

import lombok.Data;
import org.springframework.stereotype.Component;

@Component
@Data
public class UserModel {
private Integer UserID;
private String Username;
private String Password;
private String Email;
private String PhoneNumber;
private Boolean AccountStatus;
private String UserGroup;
}

model

定义mapper接口(方法一:使用注解)

小型项目可以用这个,比较简洁明了。

package com.xxx.vulnweb.repository;

import com.xxx.vulnweb.model.UserModel;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

@Mapper
public interface UserMapper {
@Select("select * from Users where username = #{name}")
UserModel QueryByName(String name);
}

注解

定义mapper接口(方法二:编写xml文件)

一般大型项目采用这种方法

还是和上面类似需要先定义mapper接口,这里为了规范采用 @Repository 注解

package com.xxx.vulnweb.repository;

import com.xxx.vulnweb.model.UserModel;
import org.springframework.stereotype.Repository;

@Repository
public interface UserMapper {
UserModel QueryByName(String name);
}

再编写xml文件来实现(xml文件需要保存在第一步数据源配置中配置的路径中,大概路径是 src/main/resources目录下)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xxx.vulnweb.repository.UserMapper">
<select id="QueryByName" resultType="com.xxx.vulnweb.model.UserModel">
select * from vulnWebDB.Users where Username = #{name}
</select>
</mapper>

最后还需要在启动类添加一个注解 @MapperScan("com.xxx.vulnweb.repository"),指明mapper接口的位置

package com.xxx.vulnweb;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication()
@MapperScan("com.xxx.vulnweb.repository")
public class VulnWebApplication {

public static void main(String[] args) {
SpringApplication.run(VulnWebApplication.class, args);
}

}

调用

这个时候就可以直接调用了,一般是在service中。

invoke

firefox