实现要求:

获取拥有“普通用户”角色的所有用户信息,要求查询结果除了包含用户自身信息,还包括角色名和角色创建时间。

实现思路:

在用户实体类SysUser中新增角色SysRole成员属性。

package entity;public class SysUser {private long id;private String userName;private String userPassword;private String userEmail;private String userInfo;private byte headImg;private String createTime;private int deptId;private SysRole role;public SysUser() {super();}public SysUser(long id, String userName, String userPassword, String userEmail, String userInfo, byte headImg,String createTime, int deptId, SysRole role) {super();this.id = id;this.userName = userName;this.userPassword = userPassword;this.userEmail = userEmail;this.userInfo = userInfo;this.headImg = headImg;this.createTime = createTime;this.deptId = deptId;this.role = role;}@Overridepublic String toString() {return "SysUser [id=" + id + ", userName=" + userName + ", userPassword=" + userPassword + ", userEmail="+ userEmail + ", userInfo=" + userInfo + ", headImg=" + headImg + ", createTime=" + createTime+ ", deptId=" + deptId + ", role=" + role + "]";}public long getId() {return id;}public void setId(long id) {this.id = id;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getUserPassword() {return userPassword;}public void setUserPassword(String userPassword) {this.userPassword = userPassword;}public String getUserEmail() {return userEmail;}public void setUserEmail(String userEmail) {this.userEmail = userEmail;}public String getUserInfo() {return userInfo;}public void setUserInfo(String userInfo) {this.userInfo = userInfo;}public byte getHeadImg() {return headImg;}public void setHeadImg(byte headImg) {this.headImg = headImg;}public String getCreateTime() {return createTime;}public void setCreateTime(String createTime) {this.createTime = createTime;}public int getDeptId() {return deptId;}public void setDeptId(int deptId) {this.deptId = deptId;}public SysRole getRole() {return role;}public void setRole(SysRole role) {this.role = role;}}

在UserMapper接口中新增一个方法。

package mapper;import java.util.List;import entity.SysUser;public interface UserMapper {List<SysUser> selectUsersRoleName(String roleName);int insertInfo(SysUser sysUser);
}

在UserMapper.xml中定义selectUsersByRoleName()方法的SQL,注意sql语句中角色信息列的别名要和SysUser新增角色对象的属性名一致。

 <select id="selectUsersRoleName" resultType="SysUser">SELECT r.role_name as "role.roleName",r.create_time as "role.createTime" FROM sys_role r,sys_user u,sys_user_role ur WHERE ur.user_id=u.id AND ur.role_id=r.id AND role_name=#{roleName}</select>

测试selectUsersByRoleName()方法。

package test;import java.io.IOException;
import java.io.Reader;
import java.util.List;import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.BeforeClass;
import org.junit.Test;import entity.SysUser;
import mapper.UserMapper;public class UserMapperTest {private static SqlSessionFactory sqlSessionFactory;/* 完成mybatis配置的加载,创建得到SqlSessionFactory */@BeforeClasspublic static void init() {try {Reader reader = Resources.getResourceAsReader("mybatis-config.xml");sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);reader.close();} catch (IOException e) {e.printStackTrace();}}/* 获取SqlSession对象,用于调用方法得到数据 */@Testpublic void testSelectAll() {SqlSession sqlSession = sqlSessionFactory.openSession();try {UserMapper userMapper = sqlSession.getMapper(UserMapper.class);SysUser sysUser = new SysUser();List<SysUser> selectUsersRoleName = userMapper.selectUsersRoleName("普通用户");for (SysUser sysUser2 : selectUsersRoleName) {System.out.println("数据"+sysUser2.toString());}} finally {// 不要忘记关闭sqlSessionsqlSession.close();}}
}

mybatis练习-获取拥有“普通用户”角色的所有用户信息,要求查询结果除了包含用户自身信息,还包括角色名和角色创建时间。相关推荐

  1. oracle有orcl用户吗,oracle 怎么导出和导入整个orcl数据库,包含用户和授权

    利用exp imp导出导入 exp imp 语法如下: exp: 1) 将数据库orcl完全导出 exp system/manager@orcl file=d:\orcl_bak.dmp full=y ...

  2. 用户、角色和权限,多表查询

    一,各个表格 1.用户表 CREATE TABLE `t_user` ( `id` varchar(40) NOT NULL, `username` varchar(20) NOT NULL, PRI ...

  3. MyBatis insert 获取自增主键

    1.建表语句 create table user( id int PRIMARY KEY auto_increment, name varchar(400) ); 2.Maven 依赖 <pro ...

  4. vc++6.0获取磁盘基本信息_微信小程序——常用功能2:微信小程序用户登录,申请用户授权并获取用户基本信息...

    微信小程序--常用功能2:申请用户授权并获取用户基本信息 为了更好的用户体验,很多时候我们想要获取用户的基本信息,从而实现将信息呈现到用户界面.给用户划分地域.给用户分类等功能. 但是要想获取用户信息 ...

  5. 一个公司采购申请审批系统,包含用户登录注销、用户创建、角色分配、采购申请审批及其他相关功能。

    文章目录 一.开发环境 二.项目要求 总结 采购申请审批系统下载地址 一.开发环境 编程语言:C++ IDE:VS2019 OS:WIN10 二.项目要求 1.设计一个公司采购申请审批系统,包含用户登 ...

  6. 急急急求微信公众号开发接口-php如何实现获取用户发送的微信表情,并返回一个链接,用户点击进去链接就是刚才发的表情,用户可以保存表情?

    求微信公众号开发接口-php如何实现获取用户发送的微信表情,并返回一个链接,用户点击进去链接就是刚才发的表情,用户就可以保存表情到手机? 需求描述 1.用户在公众号对话框发送微信表情(GIF) 2.公 ...

  7. 微博第三方登录,获取用户信息(昵称、头像、地址等信息)

    一.微博开发文档 链接: 根据用户ID获取用户信息 二.请求示例 URL https://api.weibo.com/2/users/show.json HTTP请求方式 GET 请求参数 请求参数k ...

  8. Mybatis selectKey获取自增ID(DB2/Sybase/MySQL/Oracle/达梦)

    Mybatis selectKey获取自增ID(DB2/Sybase/MySQL/Oracle/达梦) 1.selectKey 2.不同数据库写法 2.1 DB2 2.2.Sybase 2.3 MyS ...

  9. 查询oracle中所有用户信息

    1.查看所有用户: select * from dba_users;   select * from all_users;   select * from user_users; 2.查看用户或角色系 ...

最新文章

  1. MyEclipse的安装和汉化过程
  2. 数据科学竞赛-人脸表情识别
  3. 信号与系统实验:用Matlab表示常用连续时间信号
  4. Django框架介绍 day01
  5. POJ1993+矩阵相乘
  6. Gerrit代码提交: [remote rejected] prohibited by gerrit: ref update access denied报错解决
  7. 【LeetCode】【字符串】题号:*14. 最长公共前缀
  8. 阿里云数据盘分区并挂载
  9. 数据挖掘十大经典算法(包括各自优缺点 / 适用数据场景)
  10. 浅谈 fluentd 使用
  11. CTPN论文翻译——中英文对照
  12. 张宇:概率论与数理统计公式总结
  13. 近期看到的很有意思的文章
  14. Modulo Sum
  15. Java必备常见单词
  16. python免费下载歌曲_实现python批量下载网易云音乐的免费音乐
  17. python爬虫福利学习
  18. oracle的字符集(NLS_LANGUAGE)
  19. 将多个annotation xml文件转换为多个annotation txt文件
  20. 商务培训计划汇报通用PPT模板

热门文章

  1. 计算机要执行一条指令,cpu所涉及的操作应该包括下列的,计算机基础题模拟试题「附答案」...
  2. 安装transmission实现下载功能
  3. 通过ESP8266WIFI模块让51单片机向后端交互数据
  4. 云服务器ecs支持以下哪些运维工具
  5. Qt QThread
  6. 安卓开发入门教程-安装开发工具(Android Studio)
  7. 【MATLAB】Z变换和Z反变换
  8. 彩色图像通道分离+融合
  9. BP神经网络算法伪代码
  10. codeblock 问题集锦