使用SpringBoot集成MyBatis对管理员的查询操作

增删改查中的查询操作,对所有的普通管理员进行查询操作。

效果展示:

不仅可以在打开页面时进行对管理员的自动查询操作,还可以在输入框进行查询。

首先是前端向后端发送POST请求,后端接收到请求,如果是有参数传到后端那就是搜索框查询,如果没有参数,就是页面加载所有管理员的整体查询。

见前端代码:

javascript 复制代码
		methods: {
			adminFind(){
				this.$http.post("admin/admin/admins/",this.form).then(resp => {
					this.tableData = resp.data.data;
				})
			},
		},
		mounted() {
			this.adminFind();
		}

后端接收响应:

java 复制代码
@RestController
@RequestMapping("/admin/admin")
public class AdminController {
    @Autowired
    AdminService adminService;

    @PostMapping("/admins/")
    CommonData returnResult(@RequestBody Admin admin) {
        CommonData commonData=adminService.findAdmins(admin);
        return commonData;
    }
}

分别调用Service层,Dao层,最后通过MyBatis查询。

数据库建表如下: 一共三个表,管理员表,角色表,管理员角色关系表。

对管理员角色表为什么要单独列出来的解释:一个管理员可以拥有多个角色,并不是一对一的关系,所以不能进行管理员表和角色表的关联查询。

MyBatis写法:

XML 复制代码
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ffyc.news.dao.AdminDao">
    <resultMap id="findAdmins" type="Admin">
        <id property="id" column="id"></id>
        <result property="account" column="account"></result>
        <result property="gender" column="gender"></result>
        <result property="adminPhone" column="admin_phone"></result>
        <result property="address" column="address"></result>
        <result property="type" column="type"></result>
        <result property="operTime" column="oper_time"></result>
        <!--封装操作人-->
        <association property="admin" javaType="Admin">
            <result property="account" column="operaccount"></result>
        </association>
        <collection property="roles" javaType="list" ofType="Role" select="findRolesById" column="id"></collection>
    </resultMap>

    <select id="findAdmins" resultMap="findAdmins">
        SELECT
        a.id,
        a.account,
        a.gender,
        a.admin_phone,
        a.address,
        a.type,
        a.oper_time,
        oa.account operaccount
        FROM
        admin a
        LEFT JOIN admin oa
        ON oa.id = a.adminid
        WHERE a.type = 1
        <if test="account!=''">and a.account = #{account}</if>
        <if test="gender!=''">and a.gender = #{gender}</if>
    </select>
    <select id="findRolesById" resultType="Role">
        SELECT
        r.name
        FROM
        ROLE r
        LEFT JOIN admin_role ar
        ON r.id = ar.roleid
        WHERE ar.adminid = #{id};
    </select>
</mapper>
相关推荐
明月_清风8 小时前
Muse 登顶 App Store 第一,SDK 直接开源:AI Agent 开始进入下一个阶段
人工智能·后端
hsfxuebao10 小时前
Loop Engineering 保姆级教程 + 项目实战
人工智能·后端
打工仔折腾 AI11 小时前
从 Demo 到生产级 Agent:8 个关键设计机制与 Python 实现拆解
java·jvm·人工智能·后端·python·langchain·ai agent 实战
架构技术专栏11 小时前
交叉熵:AI 怎样给概率预测打分
后端
code_slave(码畜)12 小时前
微服务架构落地:基础服务 —— 报表服务(中篇:元数据、查询引擎、缓存与权限落地)
spring boot·spring cloud·缓存·微服务·架构
ZealSinger12 小时前
Boot4挂起函数丢traceId怎么修
spring boot·kotlin·协程·可观测性
IT_陈寒12 小时前
SpringBoot自动配置坑了我一把,原来是这样绕过去的
前端·人工智能·后端
code_slave(码畜)13 小时前
微服务架构落地:基础服务 —— 报表服务(AI 集成篇:AI 增强报表能力)
人工智能·spring boot·spring cloud·微服务·架构
要努力啊46913 小时前
用 Codex 加速 Java 开发:从代码生成到测试覆盖的完整实战
后端
dora13 小时前
LangChain4j 新手入门实战教程(Java版)
后端·langchain·agent