博客
关于我
SSM | MyBatis 多表联合查询
阅读量:684 次
发布时间:2019-03-17

本文共 2429 字,大约阅读时间需要 8 分钟。

项目总结:三表联合查询优化

前言

在备案地理信息系统项目中,需要实现部门、职位与员工的三表联合查询,但在实际编码过程中遇到了一些问题。本文将从需求分析、数据库设计、实体类编写以及优化实现等方面总结经验。


需求分析

关系类型

  • 部门与员工:一对多关系
  • 职位与员工:一对多关系

关系特点

  • 在“多”这一方表中,默认包含了“一”方表的主键对应字段,例如:
    • 员工表包含 dept_id 和 job_id
    • 部门表和职位表包含 id字段

数据库表设计

员工表

字段名称 数据类型 说明
id int 主键
dept_id int 关联部门表的主键
job_id int 关联职位表的主键
其他字段 text 姓名、地址、联系电话等

部门表

字段名称 数据类型 说明
id int 主键
name varchar 部门名称
备注 varchar 部门备注

职位表

字段名称 数据类型 说明
id int 主键
name varchar 职位名称
备注 varchar 职位备注

实体类设计

员工类

public class Employee {    private Integer id;    private Integer deptId;    private Integer jobId;    private String name;    // 其他字段...    private Dept dept;    private Job job;}

部门类

public class Dept {    private Integer id;    private String name;    // 该类不直接存储员工信息,员工表中已有对应字段}

职位类

public class Job {    private Integer id;    private String name;    // 该类不直接存储员工信息,员工表中已有对应字段}

Mapper接口与SQL映射

###接口代码

public interface EmployeeMapper {    List
selectAll();}

SQL映射

// 另外字段映射...

测试实现

public class EmployeeServiceImpl implements EmployeeService {    @Autowired    private EmployeeMapper employeeMapper;    public List
findEmp() { List
list = employeeMapper.selectAll(); return list; }}

前台展示

HTML代码

JavaScript

function getData() {    $('#dg').datagrid({        url: '${pageContext.request.contextPath}/findEmployees',        title: '员工列表',        border: false,        rownumbers: true,        pagination: true,        pageSize: 10,        columns: [            {                field: 'id',                title: '选择',                value: 'number',                checkbox: true,                width: 50            },            {                field: 'name',                title: '姓名',                width: 80            },            {                field: 'deptName',                title: '所属部门',                width: 80,                formatter: function(value, row, index) {                    return row.dept.name;                }            },            // 其他字段映射...        ]    });}

以上方案通过合理设计数据库映射、优化数据查询逻辑,实现了部门、职位与员工的三表联合查询,确保数据关联准确,性能优化。

转载地址:http://ztuhz.baihongyu.com/

你可能感兴趣的文章
Python | 爬虫实战——亚马逊搜索页监控(附详细源码)
查看>>
python | 高效使用Python工具自动生成模块文档的秘诀
查看>>
python 一个list去除另一个list中的值
查看>>
python 三大框架的 介绍。
查看>>
Python 下载的 11 种姿势,一种比一种高级!
查看>>
python读取一个文件夹下所有图片_初学Python-找出文件夹下的所有图片
查看>>
Python 中 3 个不可思议的返回功能
查看>>
python 中 dict 的另一种用法
查看>>
Python 中 PIL 读取图片出现异常旋转的解决方法
查看>>
python 中os.path.join 双斜杠的解决办法
查看>>
Python 中Semaphore 信号量对象、Event事件、Condition
查看>>
python 中with的使用及样例
查看>>
Python 中内置的最大堆 API
查看>>
Python 中只有一个 True 和一个 False 对象吗?
查看>>
python读取mtcars数据集并实现以下操作_关于数据处理。。,Python交流,技术交流区,鱼C论坛 - Powered by Discuz!...
查看>>
Python 中多线程与多处理之间的区别
查看>>
Python 中如何使用 lambda 函数
查看>>
Python 中如何创建多行字符串?
查看>>
Python 中如何处理异常?
查看>>
Python 中如何实现列表的切片?
查看>>