实现要求:

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

实现思路:

在用户实体类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. Revit:从入门到精通学习教程
  2. css3替代图片的尖角圆角效果
  3. IJCAI 2020 | 淡妆浓抹总相宜之人脸上妆
  4. 多人互砍游戏的后台服务器的多线程架构
  5. LintCode 1816. 使结果不超过阈值的最小除数(二分查找)
  6. 【机器学习】sklearn数据特征预处理:归一化和标准化
  7. Typora的图片根目录设置,
  8. 阿根廷科尔多瓦省通过加密资产交易征税新法案
  9. VS 2012 单元测试简单配置
  10. paip.XXListener is already configured监听器已经被配置的解决
  11. 太实用了!这几个Python数据可视化案例!
  12. 2019腾讯校园招聘面经
  13. 【COM编程】如何往IE工具条添加按钮
  14. 解决qrcode生成的二维码安卓手机长按不识别问题
  15. vue mysql 电商_mei-shopone: nuxt(vue)+node(egg.js)+mysql晒点风格极简商城,电商系统。适合入门全栈开发,槑先森工作室。...
  16. Linux 绑定USB设备端口
  17. memcached压力测试(附memcached安装方法)
  18. 悟空CRM系统项目实测
  19. jaeger 是很么软件_jaeger 使用初探
  20. 掌握这些技术,你也能将婚礼拍得很精彩!

热门文章

  1. KT6368A蓝牙芯片的串口调试助手说明
  2. 【新书推荐】【胡和平著】驾考秘籍电子版
  3. 同惠TH2810DLCR测试仪电感的测量方法
  4. php有strock吗,HTML中stroke是什么意思?
  5. JAVA8新特性之 判断 list 是否为空进行 foreach 遍历
  6. 正则表达式校验YYYYMMDD
  7. java 时间转换工具类 yyyyMMdd HH:mm
  8. 经直肠前列腺穿刺活检靶向MRI可见病变的3D超声引导系统的开发和验证
  9. JAVA中Double转为String
  10. RS485接口说明——简单明了