05 动力云客之分页查询用户 + 查询用户详情 + 新增用户

1. 用户列表分页查询实现

核心

  1. 使用pageHelper实现分页
    @GetMapping(value = "api/users")//分页的参数可以不传, 不传就默认设置为1public R userPage(@RequestParam(value = "current", required = false) Integer current) {if (current == null) {current = 1;}PageInfo<TUser> pageInfo = userService.getUserByPage(current);return R.OK(pageInfo);}
    PageInfo<TUser> getUserByPage(Integer current);//用户列表分页查询实现@Overridepublic PageInfo<TUser> getUserByPage(Integer current) {//每个方法前用startPage设置一下分页参数PageHelper.startPage(current, Constants.PAGE_SIZE);List<TUser> list =  tUserMapper.selectUserByPage();//用户对象封装到list , list进一步封装到PageInfo里并返回//pageInfo可以获得一些分页参数,如总页数、总记录数、当前页数PageInfo<TUser> tUserPageInfo = new PageInfo<>(list);return tUserPageInfo;}
	  <select id="selectUserByPage" resultMap="BaseResultMap">select<include refid="Base_Column_List" />from dlyk.t_user</select>

2. 查询用户详情

核心:

  1. 将这个用户在表中的所有字段展示出来(密码除外)

  2. 相应地带来第二个问题, 如果只是简单查询一次用户表, 只能得到创建人, 编辑人的id, 这当然不合理 , 我们想要直接看到创建人的姓名. 这就需要多表一对一查询.
    在这里插入图片描述

2.1 先获得所有信息

    //查询用户详情, 路径传参@GetMapping(value = "api/user/{id}")public R userDetail(@PathVariable(value = "id") Integer id) {TUser tUser = userService.getUserById(id);return R.OK(tUser);}
    TUser getUserById(Integer id);@Overridepublic TUser getUserById(Integer id) {return tUserMapper.selectByPrimaryKey(id);}

这个方法已经自动生成好了, mapper接口和mapperxml都已经有了

    TUser selectByPrimaryKey(Integer id);

2.2 解决一对一映射

既然MB生成的mapper接口方法和mapperxml无法实现需求, 就手动写

  1. 修改UserServiceImpl中的mapper接口方法调用
		@Overridepublic TUser getUserById(Integer id) {//selectDetailById是自定义的方法return tUserMapper.selectDetailById(id);}
  1. mapper接口和mapperxml
	    <select id="selectDetailById" parameterType="java.lang.Integer" resultMap="BaseResultMap"><!--@mbg.generated-->selecttu.*,tu2.name createByName,tu3.name editByName<!--    一(user)对一(user), 只知道创建人的id, 要查创建人的姓名, 当然还是要从user表中查一-->from dlyk.t_user tu left join dlyk.t_user tu2 on tu.create_by = tu2.idleft join dlyk.t_user tu3 on tu.edit_by = tu3.idwhere id = #{id,jdbcType=INTEGER}</select>

对于上述SQL语句, 提前测试执行, 可以发现确实能查出创建者和编辑者的姓名
在这里插入图片描述
此外, 既然查询结果多了两列, resultMap映射也要修改, 在这里我们不修改原有的base映射, 而是新建一个映射

分析 : 这是一对一映射, 故用association标签

<!--id由BaseResultMap改为UserResultMap--><resultMap id="UserResultMap" type="com.sunsplanter.model.TUser"><!--@mbg.generated--><!--@Table dlyk.t_user--><id column="id" jdbcType="INTEGER" property="id"/><result column="login_act" jdbcType="VARCHAR" property="loginAct"/><result column="login_pwd" jdbcType="VARCHAR" property="loginPwd"/><result column="name" jdbcType="VARCHAR" property="name"/><result column="phone" jdbcType="VARCHAR" property="phone"/><result column="email" jdbcType="VARCHAR" property="email"/><result column="account_no_expired" jdbcType="INTEGER" property="accountNoExpired"/><result column="credentials_no_expired" jdbcType="INTEGER" property="credentialsNoExpired"/><result column="account_no_locked" jdbcType="INTEGER" property="accountNoLocked"/><result column="account_enabled" jdbcType="INTEGER" property="accountEnabled"/><result column="create_time" jdbcType="TIMESTAMP" property="createTime"/><result column="create_by" jdbcType="INTEGER" property="createBy"/><result column="edit_time" jdbcType="TIMESTAMP" property="editTime"/><result column="edit_by" jdbcType="INTEGER" property="editBy"/><result column="last_login_time" jdbcType="TIMESTAMP" property="lastLoginTime"/></resultMap>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/707473.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker下gitlab安装配置

一、安装及配置 1.gitlab镜像拉取 docker pull gitlab/gitlab-ce:latest2.运行gitlab镜像 docker run -d -p 443:443 -p 80:80 -p 222:22 --name gitlab --restart always --privilegedtrue -v /home/gitlab/config:/etc/gitlab -v /home/gitlab/logs:/var/log/gitlab -v …

table展示子级踩坑

##elemenui中table通过row中是否有children进行判断是否展示子集&#xff0c;通过设置tree-prop的属性进行设置&#xff0c;子级的children的名字可以根据自己的子级名字进行替换&#xff0c;当然同样可以对数据处理成含有chilren的子级list。 问题&#xff1a; 1.如果是根据后…

c++中使用lambda表达式的作用和用法

lambda表达式&#xff1a; 这是C11引入的一种新特性&#xff0c;它可以让您在需要定义函数对象的地方&#xff0c;直接编写一个匿名的、可以捕获上下文变量的函数体&#xff0c;非常适合用作回调函数、临时计算或定义小型函数对象。 lambda表达式与普通函数类似&#xff0c;也有…

存内计算技术大幅提升机器学习算法的性能—挑战与解决方案探讨

一.存内计算技术大幅机器学习算法的性能 1.1背景 人工智能技术的迅速发展使人工智能芯片成为备受关注的关键组成部分。在人工智能的构建中&#xff0c;算力是三个支柱之一&#xff0c;包括数据、算法和算力。目前&#xff0c;人工智能芯片的发展主要集中在两个方向&#xff1…

云计算新宠:探索Apache Doris的云原生策略

文章目录 Apache Doris 特性极简架构高效自运维高并发场景支持MPP 执行引擎明细与聚合模型的统一便捷数据接入 Apache Doris 极速 1.0 时代极速列式内存布局向量化的计算框架Cache 亲和度虚函数调用SIMD 指令集 稳定多源 关于 Apache Doris 开源社区基于云原生向量数据库Milvus…

腾讯云服务器宝塔面板中Docker应用无法访问

今天在用宝塔面板的时候用Docker一键部署Jenkins 发现部署好了端口也都开放了&#xff0c;防火墙也都开放了&#xff0c;安全组也都开放了。但是就是访问不了。 解决办法&#xff0c;在服务器终端执行下面指令 echo net.ipv4.ip_forward 1 >> /etc/sysctl.conf &…

vmware 中虚拟机Ubuntu磁盘不够,扩展磁盘,并分配

vmware 中虚拟机Ubuntu磁盘不够&#xff0c;扩展磁盘&#xff0c;并分配 Ubuntu虚拟机处于关机状态。虚拟机 -> 设置 ->硬盘 ->扩展 &#xff0c;可以直接多给点&#xff0c;这里只是做演示。 3.开启虚拟机&#xff0c;一般不会报错&#xff0c;我这里报错了&#…

Base 链官方点名 $AYB,继续飙涨指日可待?

近期 $AYB&#xff08;All Your Base Are Belong To Us&#xff09; 成为了 BASE 链上最火的 meme 项目&#xff0c;据悉 $AYB 在去年年底上线至今涨幅已经超过了 100 倍&#xff0c;其在被各大加密社区、KOL 追捧的同时&#xff0c;也被公认是继 Solana 上的 $BONK、Avalanche…

【Leetcode每日一题】二分查找 - 寻找旋转排序数组中的最小值(难度⭐⭐)(22)

1. 题目解析 Leetcode链接&#xff1a;153. 寻找旋转排序数组中的最小值 这个题目乍一看很长很复杂&#xff0c;又是旋转数组又是最小值的 但是仔细想想&#xff0c;结合题目给的示例&#xff0c;不难看出可以用二分的方法来解决 核心在于找到给定数组里面的最小值 2. 算法原…

亚信安慧AntDB开启超融合数据库新纪元

&#xff08;一&#xff09; 前言 据统计&#xff0c;在信息化时代的今天&#xff0c;人们一天所接触到的信息量&#xff0c;是古人一辈子所能接收到的信息量的总和。当今社会中除了信息量“多”以外&#xff0c;人们对信息处理的“效率”和“速度”的要求也越来越高。譬如&…

协议-http协议-基础概念01-发展历程-http组成-http是什么-相关的应用-相关的协议

发展历程-http组成-http是什么-相关的应用-相关的协议 参考来源&#xff1a; 极客时间-透视HTTP协议(作者&#xff1a;罗剑锋)&#xff1b; 01-HTTP的发展历程 1989 年&#xff0c;任职于欧洲核子研究中心&#xff08;CERN&#xff09;的蒂姆伯纳斯 - 李&#xff08;Tim Ber…

使用全局事件总线实现任意组件间的通讯

本文以vue2中爷孙组件通讯为例&#xff0c;需求是点击孙组件的按钮&#xff0c;实现关闭爷组件的弹窗。 全局事件总线是通过Vue实例的事件系统来实现组件之间的通讯&#xff0c;可以方便地在任何组件中进行事件的触发和监听。 以下是使用全局事件总线实现爷孙组件通讯的步骤&a…

Java 反射机制

​ 更多内容&#xff0c;前往IT-BLOG ​ 反射Reflection被视为动态语言的关键&#xff0c;反射机制允许程序在执行期间借助于Reflection API取得任何类的内部信息&#xff0c;并能直接操作任意对象的内部属性及方法。反射是一种功能强大且复杂的机制。使用它的主要人员是工具构…

登录页设计新选择:毛玻璃和新拟态风格,非2.5D和插画风

登录页给潜在用户传递了产品的品牌调性&#xff0c;是非常重要的一类页面&#xff0c;之前2.5D和插画风格的登录页流行一时&#xff0c;不过这阵风好像过去了&#xff0c;新的风格开始涌现了。 一、越来越流行的毛玻璃设计风格 毛玻璃风格是指将背景模糊处理&#xff0c;使得…

如何在 Linux 上使用 dmesg 命令

文章目录 1. Overview2.ring buffer怎样工作&#xff1f;3.dmesg命令4.移除sudo需求5. 强制彩色输出6.使用人性化的时间戳7.使用dmesg的人性化可读时间戳8.观察实时event9.检索最后10条消息10.搜索特定术语11.使用Log Levels12.使用Facility Categories13.Combining Facility a…

智慧物流之道:数据可视化引领全局监控

在智慧物流的背景下&#xff0c;数据可视化催生了物流管理的全新范式。首先&#xff0c;通过数据可视化&#xff0c;物流企业可以实现对整个供应链的全景式监控。下面我就可以可视化从业者的角度&#xff0c;简单聊聊这个话题。 首先&#xff0c;图表和地图的直观展示使决策者能…

Cyber RT 参数

以共享的方式实现不同节点之间数据交互的通信模式。 参数服务器是基于服务实现的&#xff0c;包含客户端和服务器端&#xff0c;服务端节点可以存储数据&#xff0c;客户端节点可以访问服务端节点操作数据&#xff0c;这个过程虽然基于请求响应的&#xff0c;但是无需自己实现…

linuxlsof详解

lsof 是 List Open File 的缩写, 它主要用来获取被进程打开文件的信息&#xff0c;我们都知道&#xff0c;在Linux中&#xff0c;一切皆文件&#xff0c;lsof命令可以查看所有已经打开了的文件&#xff0c;比如: 普通文件&#xff0c;目录&#xff0c;特殊的块文件&#xff0c;…

el-table 多选表格存在分页,编辑再次操作勾选会丢失原来选中的数据

el-table表格多选时&#xff0c;只需要添加type"selection"&#xff0c; row-key及selection-change&#xff0c;如果存在分页时需要加上reserve-selection&#xff0c;这里就不写具体的实现方法了&#xff0c;可以查看我之前的文章&#xff0c;这篇文章主要说一下存…

使用pytorch实现一个线性回归训练函数

使用sklearn.dataset 的make_regression创建用于线性回归的数据集 def create_dataset():x, y, coef make_regression(n_samples100, noise10, coefTrue, bias14.5, n_features1, random_state0)return torch.tensor(x), torch.tensor(y), coef 加载数据集&#xff0c;并拆分…