MyBatis的CRUD中的不同参数绑定查询

com.by.pojo下的User类

package com.by.pojo;import java.io.Serializable;
import java.util.Date;public class User implements Serializable {private Integer id;private String username;private Date birthday;private String sex;private String address;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public Date getBirthday() {return birthday;}public void setBirthday(Date birthday) {this.birthday = birthday;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}@Overridepublic String toString() {return "User{" +"id=" + id +", username='" + username + '\'' +", birthday=" + birthday +", sex='" + sex + '\'' +", address='" + address + '\'' +'}';}
}

测试类

private SqlSession sqlSession;private InputStream inputStream;@Beforepublic void init() throws IOException {//加载配置文件String resource = "mybatis-config.xml";inputStream = Resources.getResourceAsStream(resource);//创建SessionFactorySqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);//使用数据的会话实例sqlSession = sessionFactory.openSession();}
​
@Afterpublic void close() throws IOException {sqlSession.close();inputStream.close();}​

单个参数传递绑定

在UserDao接口中:

User getUserById(Integer id);

在UserDao.xml中:

<!--    传递单个参数--><select id="getUserById" parameterType="java.lang.Integer" resultType="com.by.pojo.User">select * from user where id=#{id};</select>

测试类:

@Test//传递单个参数有public void testgetUserById() throws IOException {//返回接口的代理类UserDao userDao = sqlSession.getMapper(UserDao.class);User user = userDao.getUserById(43);System.out.println(user);}

序号参数传递绑定

在UserDao接口中:

//序号多个参数User getUser(Integer id, String username);

在UserDao.xml中:

<!--    序号传递多个参数--><select id="getUser" resultType="com.by.pojo.User">select * from user where id=#{arg0} and username=#{arg1};select * from user where id=#{param1} and username=#{param2};</select>

测试类:

@Test//序号传递多个参数public void testgetUser() throws IOException {//返回接口的代理类UserDao userDao = sqlSession.getMapper(UserDao.class);User user = userDao.getUser(43, "俞莲舟");System.out.println(user);}

注解参数传递绑定

在UserDao接口中:

//注解多个参数User getUser2(@Param("id") Integer id, @Param("username") String username);

在UserDao.xml中:

<!--    注解传递多个参数--><select id="getUser2"  resultType="com.by.pojo.User">select * from user where id=#{id} and username=#{username};</select>

测试类:

@Test//注解传递多个参数public void testgetUser2() throws IOException {//返回接口的代理类UserDao userDao = sqlSession.getMapper(UserDao.class);User user = userDao.getUser2(43, "俞莲舟");System.out.println(user);}

pojo(对象)参数传递绑定

在UserDao接口中:

//pojo参数User getUser3(User user);

在UserDao.xml中:

<!--    pojo传递多个参数--><select id="getUser3" parameterType="com.by.pojo.User" resultType="com.by.pojo.User">select * from user where id=#{id} and username=#{username};</select>

测试类:

@Test//pojo(对象)传递多个参数public void testgetUser3() throws IOException {//返回接口的代理类UserDao userDao = sqlSession.getMapper(UserDao.class);User userParam = new User();userParam.setId(43);userParam.setUsername("俞莲舟");User user = userDao.getUser3(userParam);System.out.println(user);}

map参数传递绑定

在UserDao接口中:

//map参数User getUser4(Map<String, Object> map);

在UserDao.xml中:

</select><!--    map传递多个参数--><select id="getUser4" parameterType="java.util.Map" resultType="com.by.pojo.User">select * from user where id=#{id} and username=#{username};</select>

测试类:

@Test//map传递多个参数public void testgetUser4() throws IOException {//返回接口的代理类UserDao userDao = sqlSession.getMapper(UserDao.class);HashMap<String, Object> map = new HashMap<>();map.put("id", 43);map.put("username", "俞莲舟");User user = userDao.getUser4(map);System.out.println(user);}

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

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

相关文章

hive企业级调优策略之分组聚合优化

测试用表准备 hive企业级调优策略测试数据 (阿里网盘下载链接)&#xff1a;https://www.alipan.com/s/xsqK6971Mrs 订单表(2000w条数据) 表结构 建表语句 drop table if exists order_detail; create table order_detail(id string comment 订单id,user_id …

clangd:Couldn‘t build compiler instance

在使用vscode clangd 搭建RK3588 5.10版本linux内核代码开发环境时&#xff0c;使用bear生成 compile_commands.json时&#xff0c;clangd生成标签失败代码无法跳转&#xff0c;查看clangd日志&#xff0c;发现标签生成失败&#xff0c;失败原因&#xff1a;Couldnt build comp…

C++ OJ题测试—排序算法效率

目录 OJ链接 一、直接插入排序 二、希尔排序 三、直接选择排序 常规&#xff1a; 第二种&#xff1a; 四、 堆排序 五、冒泡排序 六、快速排序 常规&#xff1a; 三路划分优化效率 七、归并排序 八、计数排序 OJ链接 ​ 一、直接插入排序 class Solution { pub…

CentOS 7 部署 Nacos-2.3.0 (单机版)

CentOS 7 部署 Nacos-2.3.0 &#xff08;单机版&#xff09; 1. 下载 Nacos 安装包 历史版本&#xff1a;https://github.com/alibaba/nacos/releases/ 我选的是 2.3.0 版本&#xff0c;https://github.com/alibaba/nacos/releases/download/2.3.0/nacos-server-2.3.0.tar.g…

等保二级和三级的区别

等保二级和三级定级标准有什么区别&#xff1f;定级原则和方法介绍 网络安全等级保护&#xff0c;简称等保&#xff0c;是我国为了保障信息系统的安全运行&#xff0c;防止信息泄露、篡改、破坏等威胁&#xff0c;制定的一套信息安全管理制度。根据《信息安全技术网络安全等级保…

MIT18.06线性代数 笔记1

文章目录 方程组的几何解释矩阵消元乘法和逆矩阵A的LU分解转置-置换-向量空间R列空间和零空间求解Ax0主变量 特解求解Axb可解性和解的结构线性相关性、基、维数四个基本子空间矩阵空间、秩1矩阵和小世界图图和网络复习一 方程组的几何解释 线性组合&#xff1a; 找到合适的x和…

【小沐学Python】Python实现语音识别(vosk)

文章目录 1、简介1.1 vosk简介1.2 vosk模型1.3 vosk服务 2、安装3、测试3.1 命令行测试3.2 代码测试 结语 1、简介 https://alphacephei.com/vosk/index.zh.html Vosk 是一个语音识别工具包。 1.1 vosk简介 支持二十种语言 - 中文&#xff0c;英语&#xff0c;印度英语&#…

ansible模块 (7-13)

模块 7、hostname模块&#xff1a; 远程主机名管理模块 ansible 192.168.10.202 -m hostname -a nameliu 8、copy模块&#xff1a; 用于复制指定的主机文件到远程主机的模块 常用参数&#xff1a; dest: 指出要复制的文件在哪&#xff0c;必须使用绝对路径。如果源目标是…

SQL Server 大数据量分页

1、ROW_NUMBER() OVER()方式&#xff08;SQL2012以下推荐使用&#xff09; SELECT * FROM ( SELECT ROW_NUMBER ( ) OVER ( ORDER BY menuId ) AS RowId,* FROM sys_menu ) AS r WHERE RowId BETWEEN 1 AND 10 用子查询新增一列行号&#xff08;ROW_NUMBER&#…

Ubuntu18.04.6下samba服务的安装及配置

目录 01 安装samba服务&#xff1a; 03 重启samba服务 04 设置samba登录密码 05 测试 前言 从本章开始我们将要学习嵌入式音视频的学习了 &#xff0c;使用的瑞芯微的开发板 &#x1f3ac; 个人主页&#xff1a;ChenPi &#x1f43b;推荐专栏1: 《C_ChenPi的博客-CSDN博…

Unity3D 中正确调用CUDA程序详解

前言 Unity3D 是一款强大的游戏开发引擎&#xff0c;可以实现各种各样的游戏效果。然而&#xff0c;在某些情况下&#xff0c;使用CPU来处理游戏中的复杂计算任务可能会导致性能瓶颈。为了解决这个问题&#xff0c;我们可以利用CUDA来使用GPU进行并行计算&#xff0c;从而提高…

JavaWeb笔记之JavaWeb JDBC

//Author 流云 //Version 1.0 一. 引言 1.1 如何操作数据库 使用客户端工具访问数据库&#xff0c;需要手工建立连接&#xff0c;输入用户名和密码登录&#xff0c;编写 SQL 语句&#xff0c;点击执行&#xff0c;查看操作结果&#xff08;结果集或受影响行数&#xff09;。…

HarmonyOS应用开发-手写板(二)

在前一篇手写板的文章中&#xff08;HarmonyOS应用开发-手写板-CSDN博客&#xff09;&#xff0c;我们通过使用Path实现了一个基本的手写板&#xff0c;但遗憾的是&#xff0c;无法保存所绘制的图像。在本文中&#xff0c;我们将采用canvas和Path2D来重新构建手写板应用。依然只…

java中基本类型之间的转换

基本类型容量 java中的 8 种基本数据类型&#xff0c;以及它们的占内存的容量大小和表示的范围 byte&#xff1a;字节型&#xff0c;占内存容量为 1 个字节&#xff08;8 位&#xff09;&#xff0c;表示范围为 -128&#xff08;-2^7&#xff09;到 127&#xff08;2^7-1&…

关于MQ,你了解多少?(干货分享之一)

导语 本文梳理笔者 MQ 知识&#xff0c;从消息中间件的基础知识讲起&#xff0c;在有了基础知识后&#xff0c;对市面上各主流的消息中间件进行详细的解析&#xff0c;包括 RabbitMQ、RocketMQ、Kafka、Pulsar&#xff0c;最后再横向对比这几款主流的消息中间件。 消息中间件…

Linux下搭建Redis一主二从的哨兵模式

一、Redis哨兵模式搭建 1、准备好三台机器&#xff0c;使用diap用户完成搭建 2、安装Redis -在资源库中下载redis-7.0.8.tar.gz&#xff0c;分别上传到三台服务器中软件安装的目录&#xff0c;我这里安装到/u01下 -安装依赖。yum -y install gcc-c&#xff08;root用户执行…

数据库实现分布式锁,redis实现分布式锁,zookeeper实现分布式锁的优缺点及性能分析

文章目录 优缺点分析数据库实现分布式锁优点缺点 redis实现分布式锁优点缺点 zookeeper实现分布式锁优点缺点 汇总对比小结 优缺点分析 数据库实现分布式锁 优点 简单易懂&#xff1a;简单&#xff0c;使用方便&#xff0c;不需要引入 Redis、Zookeeper 等中间件。兼容性好&…

vue onlyoffice在线编辑与预览,文件无法保存问题,始终打开同一文件的问题

主要写一下前端vue的使用&#xff0c;需要后端或运维去弄docker服务&#xff0c;然后给前端一个api地址 在vue的Index.html页面添加这个 <script type"text/javascript" src"http://docker服务器ip:docker服务器端口/web-apps/apps/api/documents/api.js&q…

智能优化算法应用:基于鼠群算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于鼠群算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于鼠群算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.鼠群算法4.实验参数设定5.算法结果6.参考文献7.MA…

【网络安全】—Shell编程入门(1)

文章目录 基础变量概念介绍特殊变量进阶数值计算实践条件测试比较条件判断语句流程控制语句循环语句应用 Shell 是 Unix/Linux 操作系统下的一种命令行解释器&#xff0c;它接收用户输入的命令然后调用相应的程序。我们可以通过 Shell 脚本来自动执行一系列的命令。接下来&…