09—mybatis注解配置join查询
今天来聊mybatis的join查询,怎么说呢,有的时候,join查询确实能提升查询效率,今天举个left join的例子,来看看mybatis的join查询。
就不写的很细了,把主要代码贴出来了。
创建数据表:admin_user、admin_groups
CREATE TABLE `admin_user` (
`id` bigint() NOT NULL AUTO_INCREMENT COMMENT '用户编号',
`user_name` varchar() NOT NULL COMMENT '用户登录账号',
`pwd` varchar() DEFAULT NULL COMMENT '登录密码',
`create_date` datetime DEFAULT NULL COMMENT '创建时间',
`enable_flag` int() DEFAULT NULL COMMENT '用户状态 0:可用 1:不可用',
`group_id` int() DEFAULT NULL COMMENT '分组ID,0超级管理员,1一般管理员',
`last_login_ip` varchar() DEFAULT NULL COMMENT '最后一次登录IP地址',
`last_login_time` datetime DEFAULT NULL COMMENT '最后登录时间',
`login_count` int() DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `user_name` (`user_name`) USING BTREE
) ---------------------------------------------------------------------------------
CREATE TABLE `admin_groups` (
`id` int() NOT NULL AUTO_INCREMENT,
`group_name` varchar() DEFAULT NULL,
`create_by_user_name` varchar() DEFAULT NULL,
`create_time` datetime DEFAULT NULL,
`update_time` datetime DEFAULT NULL,
`parent_id` int() DEFAULT NULL,
`remarks` varchar() NOT NULL DEFAULT '无' COMMENT '描述',
`enable_flag` int() NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
)
创建实体类:AdminUserJoinGroups.java
package com.palmble.entity;
import lombok.Data;
import javax.persistence.Table; @Table(name = "admin_user")
@Data
public class AdminUserJoinGroups {
private Long id;
private String userName;
private String groupName;
private String createByUserName;
}
service层:AdminUserService.java
@Service
public class AdminUserService { @Autowired
private AdminUserMapper adminUserMapper;
public List<AdminUserJoinGroups> selectAllList()
{
return adminUserMapper.selectAllList();
}
}
mapper层:AdminUserMapper.java
@Mapper
public interface AdminUserMapper { @Select(" SELECT u.id,user_name,g.group_name,g.create_by_user_name FROM admin_user u left join admin_groups g on u.group_id=g.id;")
@Results(id = "userGroupMap", value = {
@Result(id = true, column = "id", property = "id"),
@Result(column = "user_name", property = "userName"),
@Result(column = "group_name", property = "groupName"),
@Result(column = "create_by_user_name", property = "createByUserName")
})
List<AdminUserJoinGroups> selectAllList();
}
测试:
@RestController
@RequestMapping("/admin")
public class AdminController {
@Autowired
private AdminUserService adminUserService; @RequestMapping("/getUserGroup")
public String getUserGroup() {
List<AdminUserJoinGroups> adminUserJoinGroups = adminUserService.selectAllList();
StringBuilder sb = new StringBuilder();
for (AdminUserJoinGroups item : adminUserJoinGroups) {
sb.append("id=" + item.getId() + ",username=" + item.getUserName() + ",groupname=" + item.getGroupName() + ",createByUserName=" + item.getCreateByUserName());
}
return sb.toString();
}

09—mybatis注解配置join查询的更多相关文章
- Mybatis注解开发模糊查询
Mybatis注解开发模糊查询 一般在使用mybatis时都是采用xml文件保存sql语句 这篇文章讲一下在使用mybatis的注解开发时,如何进行模糊查询 模糊查询语句写法(在@Select注解中) ...
- MyBatis 注解配置及动态SQL
一.注解配置 目前MyBatis支持注解配置,用注解方式来替代映射文件,但是注解配置还是有点不完善,在开发中使用比较少,大部分的企业还是在用映射文件来进行配置.不完善的地方体现在于当数据表中的字段 ...
- 阶段3 1.Mybatis_03.自定义Mybatis框架_7.自定义Mybatis的编码-实现基于注解配置的查询所有
注解的方式,这里进行修改.上面注释的是原来xml的方式. 在dao类里面加上注解 创建注解类 声明注解的生命周期为Runntime 改变注解出现的位置,在Mehtod方法上 写完之后这里就不报错了. ...
- 08—mybatis注解配置二
动态sql mybatis的注解也支持动态sql.mybatis提供了各种注解,如@InsertProvider.@UpdateProvider.@DeleteProvider和@SelectProv ...
- Spring Boot中使用MyBatis注解配置详解(1)
之前在Spring Boot中整合MyBatis时,采用了注解的配置方式,相信很多人还是比较喜欢这种优雅的方式的,也收到不少读者朋友的反馈和问题,主要集中于针对各种场景下注解如何使用,下面就对几种常见 ...
- Spring Boot中使用MyBatis注解配置详解
传参方式 下面通过几种不同传参方式来实现前文中实现的插入操作. 使用@Param 在之前的整合示例中我们已经使用了这种最简单的传参方式,如下: @Insert("INSERT INTO US ...
- 07—mybatis注解配置一
常用注解Select:映射查询的sql语句.SelectProvider:Select语句的动态sql映射.允许指定一个类名和一个方法在执行时返回运行的查询语句.有两个属性:type和mehtod,t ...
- Spring Boot教程(三十九)使用MyBatis注解配置详解(2)
增删改查 MyBatis针对不同的数据库操作分别提供了不同的注解来进行配置,在之前的示例中演示了@Insert,下面针对User表做一组最基本的增删改查作为示例: public interface U ...
- Spring Boot教程(三十八)使用MyBatis注解配置详解(1)
之前在Spring Boot中整合MyBatis时,采用了注解的配置方式,相信很多人还是比较喜欢这种优雅的方式的,也收到不少读者朋友的反馈和问题,主要集中于针对各种场景下注解如何使用,下面就对几种常见 ...
随机推荐
- Xmemcached集群与SpringBoot整合
创建SpringBoot项目xmemcached_springboot,添加开发需要的包名和类名,项目的目录结构如下: 添加XMemcached依赖: <dependency> <g ...
- java如何获取当前日期和时间
System.currentTimeMillis() 获取标准时间可以通过System.currentTimeMillis()方法获取,此方法不受时区影响,得到的结果是时间戳格式的.例如: 15431 ...
- luogu1972:HH的项链
题目描述 HH 有一串由各种漂亮的贝壳组成的项链.HH 相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含义.HH 不断地收集新的贝壳,因此,他的项链变得越来越长. ...
- Java线程状态的改变
一.线程状态 线程的状态转换是线程控制的基础.线程状态总的可分为五大状态:分别是生.死.可运行.运行.等待/阻塞.用一个图来描述如下: 1.新状态:线程对象已经创建,还没有在其上调用start()方法 ...
- 剑指offer(3)——二维数组中的查找
题目: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 思路: 首先选取数组中右上 ...
- pymongo基础使用方法
本文通过文章同步功能推送至博客园,排版可能会有所错误,敬请见谅! 1.客户端初始化 初始化MongoDB客户端 client = pymongo.MongoClient('localhost',270 ...
- SQL Server中语句的自动参数化
原文:SQL Server中语句的自动参数化 use master go if exists(select * from sys.databases where name = 'test') drop ...
- Senparc.Weixin+nginx配置之坑 ‘10003 redirect_uri域名与后台不一致’
微信公众号扫一扫功能提示:10003 redirect_uri域名与后台不一致 Senparc.Weixin组件很好用,但一个坑,不知道这和个是否有关.. 先说明下环境,centos+.net cor ...
- 听课笔记--DP--最大子矩阵和
最大子矩阵问题 给定一个n*n(0<n<=120)的矩阵, 矩阵内元素有正有负, 请找到此矩阵的内部元素和最大的子矩阵 样例输入: 4 0 -2 -7 0 9 2 -6 2 -4 ...
- flutter packages get 慢 解决方案
国内使用 flutter packages get 命令,一直是 This is taking an unexpectedly long time 状态 科.学.上.网.无.效. windows解决 ...