Mybatis多表实战案例(二)

简介: Mybatis多表实战案例

5、案例如下:

/*查询每个工种有奖金的员工的最高工资>12000的工种编号和最高工资

* 思路:该需求用到分组查询

* 1、先查询每个工种有奖金的员工的最高工资

* 2、根据1的结果继续筛选,选择最高工资>12000;

* */

<select id="queryByGroup" resultType="map">
        select job_id 工种编号,max(salary) 最高工资
        from myemployees.employees
        where commission_pct is not null
        GROUP BY job_id
       having 最高工资 > 12000
    </select>


结果:

6、案例如下:


/*查询员工姓名、部门名和所在城市,城市名以s开头

* 思路:员工名出现在员工表employees中,部门名出现在departments表中,而城市名出现在       locations表中

* 此案例涉及到了三表查询,根据employees表的外键department_id连接到departments表,然后根据departments表的

* 外键location_id连接到locations表

* */

<select id="queryMoreTables" resultType="map">
        select concat(first_name,' ',last_name) 姓名,department_name 部门名,city 城市名
        from myemployees.employees e,myemployees.departments d,myemployees.locations l
        where e.department_id=d.department_id and d.location_id=l.location_id and
              city like 's%'
        order by department_name desc
    </select>

结果:

7、案例如下:

/*案例:查询所有的部门里面员工个数大于3的部门名以及具体的员工数量,查询结果按员工数量降序排序,

* 这里用内连接(自然连接或普通连接)去实现,内连接:就是两张表只显示符合连接条件的行(可以理解为取两张表的交集)

* 所以内连接可能会丢失信息

* */

<select id="queryInner" resultType="map">
        SELECT department_name,COUNT(*)
        FROM myemployees.departments d
        inner join myemployees.employees e
        on d.department_id=e.department_id
        GROUP BY department_name
        HAVING COUNT(*)>3
        ORDER BY  COUNT(*) desc;
    </select>

结果:

8、 案例如下:


/*查询姓名中包含字符K的员工的名字及其上级的名字

因为员工表中既包含打工仔和打工仔的boss,所以,可以通过员工的manager_id找到employee_id,进          而找到boss的name

* 当表中的某一个字段和这张表中另外字段相关时,可以用自连接,所以此查询使用自连接

* */

<select id="querySelfJoin" resultType="map">
        SELECT e.first_name 员工名,m.first_name 老板名
        from myemployees.employees e
                 join myemployees.employees m
                      on m.employee_id=e.manager_id
        WHERE e.first_name like '%k%';
    </select>

结果:

相关文章
|
6月前
Mybatis+mysql动态分页查询数据案例——测试类HouseDaoMybatisImplTest)
Mybatis+mysql动态分页查询数据案例——测试类HouseDaoMybatisImplTest)
|
7天前
|
SQL Java 数据库连接
【MyBatisPlus·最新教程】包含多个改造案例,常用注解、条件构造器、代码生成、静态工具、类型处理器、分页插件、自动填充字段
MyBatis-Plus是一个MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。本文讲解了最新版MP的使用教程,包含多个改造案例,常用注解、条件构造器、代码生成、静态工具、类型处理器、分页插件、自动填充字段等核心功能。
【MyBatisPlus·最新教程】包含多个改造案例,常用注解、条件构造器、代码生成、静态工具、类型处理器、分页插件、自动填充字段
|
1月前
|
前端开发 Java Apache
Springboot整合shiro,带你学会shiro,入门级别教程,由浅入深,完整代码案例,各位项目想加这个模块的人也可以看这个,又或者不会mybatis-plus的也可以看这个
本文详细讲解了如何整合Apache Shiro与Spring Boot项目,包括数据库准备、项目配置、实体类、Mapper、Service、Controller的创建和配置,以及Shiro的配置和使用。
317 1
Springboot整合shiro,带你学会shiro,入门级别教程,由浅入深,完整代码案例,各位项目想加这个模块的人也可以看这个,又或者不会mybatis-plus的也可以看这个
|
1月前
|
缓存 Java 数据库连接
使用MyBatis缓存的简单案例
MyBatis 是一种流行的持久层框架,支持自定义 SQL 执行、映射及复杂查询。本文介绍了如何在 Spring Boot 项目中集成 MyBatis 并实现一级和二级缓存,以提高查询性能,减少数据库访问。通过具体的电商系统案例,详细讲解了项目搭建、缓存配置、实体类创建、Mapper 编写、Service 层实现及缓存测试等步骤。
|
3月前
|
Java 数据库连接 Spring
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
文章是关于Spring、SpringMVC、Mybatis三个后端框架的超详细入门教程,包括基础知识讲解、代码案例及SSM框架整合的实战应用,旨在帮助读者全面理解并掌握这些框架的使用。
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
|
6月前
Mybatis+mysql动态分页查询数据案例——工具类(MybatisUtil.java)
Mybatis+mysql动态分页查询数据案例——工具类(MybatisUtil.java)
|
3月前
|
SQL Java 数据库连接
Spring Boot联手MyBatis,打造开发利器:从入门到精通,实战教程带你飞越编程高峰!
【8月更文挑战第29天】Spring Boot与MyBatis分别是Java快速开发和持久层框架的优秀代表。本文通过整合Spring Boot与MyBatis,展示了如何在项目中添加相关依赖、配置数据源及MyBatis,并通过实战示例介绍了实体类、Mapper接口及Controller的创建过程。通过本文,你将学会如何利用这两款工具提高开发效率,实现数据的增删查改等复杂操作,为实际项目开发提供有力支持。
186 0
|
5月前
|
SQL Java 数据库连接
2万字实操案例之在Springboot框架下基于注解用Mybatis开发实现基础操作MySQL之预编译SQL主键返回增删改查
2万字实操案例之在Springboot框架下基于注解用Mybatis开发实现基础操作MySQL之预编译SQL主键返回增删改查
75 2
|
4月前
|
XML Java 数据格式
支付系统----微信支付20---创建案例项目--集成Mybatis-plus的补充,target下只有接口的编译文件,xml文件了,添加日志的写法
支付系统----微信支付20---创建案例项目--集成Mybatis-plus的补充,target下只有接口的编译文件,xml文件了,添加日志的写法
|
5月前
|
存储 Java 数据库连接
SSMP整合案例第三步 业务层service开发及基于Mybatis的接口功能拓展
SSMP整合案例第三步 业务层service开发及基于Mybatis的接口功能拓展
38 0