环境

环境采用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

Copyright © d4m1ts 2023 all right reserved,powered by Gitbook该文章修订时间: 2024-01-04 17:28:44

results matching ""

    No results matching ""