环境
环境采用IDEA自带的Spring初始化一键搭建,搭建时记得勾选上MyBatis Framework
即可。
前置过程
准备好数据库和表
代码过程
数据源配置
其中 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
创建实体数据模型
根据表的结构,创建对应的数据模型,方便数据库直接把查询结果赋值进去。
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;
}
定义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中。