当前位置: 首页 > news >正文

农林牧渔行业网站建设全球招商网加盟网

农林牧渔行业网站建设,全球招商网加盟网,岳阳网站开发服务,成全视频免费观看在线看1000集前面文章 java springboot整合MyBatis做数据库查询操作写了springboot整合MyBatis的方法 并演示了基础查询的语法 根据id查 那么 我们这次来演示联合查询 我们staff 表 内容如下 每条数据 对应的都有一个departmentid 这是 department部门表的外键id department表内容如下 如…

前面文章 java springboot整合MyBatis做数据库查询操作写了springboot整合MyBatis的方法 并演示了基础查询的语法 根据id查

那么 我们这次来演示联合查询
我们staff 表 内容如下
在这里插入图片描述
每条数据 对应的都有一个departmentid 这是 department部门表的外键id
department表内容如下
在这里插入图片描述
如果你连主外键都还未掌握的话 建议先去用 MySql实现了 联合查询 再来用开发语言实现

然后 我们将 staff 代码修改如下

package com.example.textm.domain;public class staff {private int id;private String name;private int age;private int status;private int departmentid;private String departmentName;@Overridepublic String toString(){return "staff{"+"id"+id+"namne"+name+"age"+age+"status"+status+"departmentid"+departmentid+(departmentName != null?"departmentName"+departmentName:"")+"}";}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public int getStatus() {return status;}public void setStatus(int status) {this.status = status;}public int getDepartmentid() {return departmentid;}public void setDepartmentid(int departmentid) {this.departmentid = departmentid;}public void setDepartmentName(String departmentName) {this.departmentName = departmentName;}public String getDepartmentName() {return departmentName;}
}

新加了一个departmentName是用来存 部门名称的 我们用MyBatis查询 直接挂我们需要的字段就好了 没必要整个对象都带进来
然后 我们在staffDao添加一个函数

Select("select s.*, d.name as departmentName from staff s inner join department d on s.departmentid=d.id;")
List<staff> getAllStaffWithDepartment();

我们 sql中已经写明 将 department代理为 d 然后 将d中的 name转为departmentName
这就是我说的 思路 如果你还有个age 继续往后加就好了

@Select("SELECT s.*, d.name AS departmentName, d.age AS departmentAge FROM staff s INNER JOIN department d ON s.departmentid=d.id;")
List<staff> getAllStaffWithDepartment();

然后 我们通过测试类 来调用getAllStaffWithDepartment
编写代码如下

System.out.println(staffDao.getAllStaffWithDepartment());

在这里插入图片描述
运行结果如下
在这里插入图片描述
我们的人员也都被带出了 部门信息

然后 在 domain目录下创建一个 department
这就是 department 表对应的属性类
参考代码如下

package com.example.textm.domain;import java.util.List;public class department {private int id;private String name;private List<staff> staffList;@Overridepublic String toString(){return "department{"+"id="+id+"name="+name+(staffList != null?staffList:"暂无员工")+"}";}public void setId(int id) {this.id = id;}public int getId() {return id;}public void setName(String name) {this.name = name;}public String getName() {return name;}public void setStaffList(List<staff> staffList) {this.staffList = staffList;}public List<staff> getStaffList() {return staffList;}
}

对加了一个 staffList 用来存 部门下的员工 类型当然就是一个staff员工类的list集合
然后 在dao下创建一个接口 叫 departmentDom
用来写 department这边的sql
然后 我们编写代码

package com.example.textm.dao;import com.example.textm.domain.department;
import org.apache.ibatis.annotations.*;import java.util.List;@Mapper
public interface departmentDom {@Select("SELECT d.id as deptId, d.name as deptName FROM department d")@Results(id = "departmentMap", value = {@Result(property = "id", column = "deptId"),@Result(property = "name", column = "deptName"),@Result(property = "staffList", column = "deptId", javaType = List.class,many = @Many(select = "com.example.textm.dao.staffDao.getStaffByDepartmentId"))})List<department> getAllDepartmentsWithStaff();
}

我们方法中的 sql是根据部门表 department 去查 顺便带出员工表外键对应的信息 我指定 id和name用自己的 staffList 通过staffDao接口的 getStaffByDepartmentId函数去获取

所以 我们staffDao接口还要再加一个函数 通过 部门id 查询 staff员工表 然后反应 staff员工类的list集合给他的函数

@Select("SELECT * FROM staff WHERE departmentid = #{departmentId}")
List<staff> getStaffByDepartmentId(int departmentId);

然后 在测试类中调用 departmentDom 的getAllDepartmentsWithStaff
首先 我们要写

@Autowired
private departmentDom departmentDom;

装配一下我们刚刚写的 departmentDom
然后调用

System.out.println(departmentDom.getAllDepartmentsWithStaff())

在这里插入图片描述
运行结果如下
在这里插入图片描述
我们部门下 也都带出了对应的员工信息

http://www.yayakq.cn/news/284804/

相关文章:

  • 池州网站网站建设360建筑网一级消防
  • 做网站的电销话术吉安哪家做网站的公司好
  • wordpress资料分享网站北京建网站的公司
  • 扁平式风格网站潍坊专业网站建设价格
  • 网站建设 发展历程设计手机界面的网站
  • 网站 设置特殊的字体电子商务网站的特点
  • 旅游网站系统的设计与实现大连工业大学艺术与信息工程学院
  • 高端网站建设论坛常州新北区有做淘宝网站策划的吗
  • 专业的佛山网站建设外贸网站建设大概多少钱
  • 网站seo数据分析绵阳做网站哪家公司好
  • 海报设计模板网站WordPress分类id在哪
  • 广州网站建设哪家技术好做网站推广汉狮网络
  • 建筑工程网络图怎么画seo每天一贴
  • 嘉兴制作手机网站seo课程排行榜
  • 几度设计网站长兴县住房建设局网站
  • 网页设计与网站建设过程wordpress 406
  • 怎么介绍自己做的电影网站提供网站建设备案报价
  • 做网站找浩森宇特国外网站做freelancer
  • 南海顺德网站建设费用电商产品推广方案
  • 对电子商务网站建设与管理的理解淘宝客推广网站建设
  • 泊头网站建设甘肃营销方式有哪些
  • dw网站引导页怎么做汕头关键词优化服务
  • 网站建设督查工作主持词天堂伞在线观看
  • 呼和浩特 的网站建设免费网址域名
  • 天津网站建设技术托管淘宝客网站如何做排名
  • 东莞营销型网站设计云南建设厅网站公示
  • 门户网站建设运行环境要求商品小程序怎么制作
  • 设备高端网站建设绵阳城区大建设
  • 文化公司网站建设策划书基于android的app的设计与开发
  • 营销型网站北京king 主题WordPress