Mybatis 的输入参数学习
mybatis 的输入参数:
指得就是parameterType的参数 这个参数就代表的sql语句中的输入参数

sql语句中的参数使用 有两种方式 :
使用#{} 获取: 8个基本数据类型 + String 类型 都可以随意起名 比如 #{aaa} 当然不推荐 最好写的规范一些
select * from where stuno = #{id} 这个id只是随意起的名字
引用数据类型 就要写 实体类中的名字 比如 我实体类中有一个属性 private Sting stuno; 那么应该写 #{stuno} 不能瞎写
select * from where stuno= #{stuno}
使用${} 获取 8个基本数据类型 + String 类型 必须写${value} 必须是这个 不能更改 (普通的查询不推荐使用$()形式)
select * from where stuno = ${value} 必须这样写
引用数据类型跟#{} 的使用一样 必须写实体类中规定的属性
select * from where stuno= ${stuno}
模糊查询,方式一: 测试类
select stuno,stuname,stuage from student where stuage= #{stuAge} or stuname like #{stuName}
Student student = new Student();
student.setStuAge(24);
student.setStuName("%w%");
List<Student> students = studentMapper.queryStudentBystuageOrstuName(student) ;//接口的方法->SQL
模糊查询,方式二: xml中
select stuno,stuname,stuage from student where stuage= #{stuAge} or stuname like '%${stuName}%'
#{}自动给String类型加上'' (自动类型转换)
${} 原样输出,但是适合于 动态排序(动态字段)
简单介绍下parameterType中"复杂"的输入参数:
i: hasMap 类型 :parameterType的属性值填写HashMap sql语句中可以的名字没有要求


测试的时候 key的值需要跟sql语句中的对应
ii:嵌套对象的查询;
我的数据中Studen表有两个地址,分别是学校地址跟家庭地址 我的实体类Student类 只有一个 private Address address; 我的Address类中有 两个属性 学校地址跟家庭地址
看图:
Student类

Student表:

Address类:

StudentMapper.xml 我的输入参数为对象类型 我就可以使用对象属性.另一个属性
address.stu_shcooladdress
(Student内的属性). (Address中的属性)

测试类:

Mybatis 的输入参数学习的更多相关文章
- python获取输入参数
python获取输入参数 学习了:https://www.cnblogs.com/angelatian/p/5832448.html import sys模块: len(sys.argv)参数个数 s ...
- python 3.4读取输入参数
python 3.4读取输入参数 学习了:https://blog.csdn.net/qq_24815615/article/details/52302615 注意,sys.args[0]是pytho ...
- Mybatis 学习---${ }与#{ }获取输入参数的区别、Foreach的用法
一.Mybatis中用#{}和${}获取输入参数的区别 1.“#{}“和“${}”都可以从接口输入中的map对象或者pojo对象中获取输入的参数值.例如 <mapper namespace=&q ...
- Mybatis学习笔记——输入参数parameterType、Mybatis调用存储过程
输入参数:parameterType(两种取值符号) 1.类型为简单类型 区别: (1) #{可以为任意值} ${vaue}--->标识符只能是value (2) ...
- Mybatis框架四:输入参数、输出参数
输入参数可以有三种:简单类型,POJO,包装类 关于前两种: http://www.cnblogs.com/xuyiqing/p/8600888.html 这里写一下传递包装类参数: 一个POJO:U ...
- JavaWeb_(Mybatis框架)输入和输出参数_五
系列博文: JavaWeb_(Mybatis框架)JDBC操作数据库和Mybatis框架操作数据库区别_一 传送门 JavaWeb_(Mybatis框架)使用Mybatis对表进行增.删.改.查操作_ ...
- GO学习笔记 - 函数名前面是否有输入参数肯定是不一样的!!
在刚接触GO语言时候,我相信你也会有这种困惑,为什么有的函数名前面有输入参数,而一些却没有,它们是否有差别?确实有差别,没有输入参数,是一般的函数:有输入参数,是结构的方法,输入参数叫做“方法接收者” ...
- PlaNet,使用图像输入来学习世界模型
Google AI团队与DeepMind合作,上周宣布了一个名为PlaNet的新的开源“Deep Planning”网络. PlaNet是一个人工智能代理,它只使用图像输入来学习世界模型,并使用这些模 ...
- MyBatis中传入参数parameterType类型详解
前言 Mybatis的Mapper文件中的select.insert.update.delete元素中有一个parameterType属性,用于对应的mapper接口方法接受的参数类型.本文主要给大家 ...
随机推荐
- 迷你MVVM框架 avalonjs 学习教程2、模块化、ViewModel、作用域
一个项目是由许多人分工写的,因此必须要合理地拆散,于是有了模块化.体现在工作上,PM通常它这为某某版块,某某频道,某某页面.某一个模块,必须是包含其固有的数据,样式,HTML与处理逻辑.在jQuery ...
- springboot+shiro+jwt
1.添加依赖 <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-sp ...
- Redis搭建(七):Redis的Cluster集群动态增删节点
一.引言 上一篇文章我们一步一步的教大家搭建了Redis的Cluster集群环境,形成了3个主节点和3个从节点的Cluster的环境.当然,大家可以使用 Cluster info 命令查看Cluste ...
- POJ2533 最长递增子序列
描述: 7 1 7 3 5 9 4 8 输出4 最长递增子序列为1 3 5 9,不必连续. 解法: 三种思路: 转化为最长公共子序列(n^2),动态规划(n^2),不知叫什么解法(nlogn). 解法 ...
- Python爬虫进阶五之多线程的用法
前言 我们之前写的爬虫都是单个线程的?这怎么够?一旦一个地方卡到不动了,那不就永远等待下去了?为此我们可以使用多线程或者多进程来处理. 首先声明一点! 多线程和多进程是不一样的!一个是 thread ...
- nignx reload的时候报错invalid PID number
第一种思路是从PID号着手,提示无效PID号时nginx.pid文件为空,将进程的PID号追加到空的nginx.pid上,问题解决: 还有问题,请参考:https://www.cnblogs.com/ ...
- Zookeeper 源码(六)Leader-Follower-Observer
Zookeeper 源码(六)Leader-Follower-Observer 上一节介绍了 Leader 选举的全过程,本节讲解一下 Leader-Follower-Observer 服务器的三种角 ...
- UVaLive 4043 Ants (最佳完美匹配)
题意:给定 n 个只蚂蚁和 n 棵树的坐标,问怎么匹配使得每个蚂蚁到树的连线不相交. 析:可以把蚂蚁和树分别看成是两类,那么就是一个完全匹配就好,但是要他们的连线不相交,那么就得考虑,最佳完美匹配是可 ...
- shell脚本生成xml文件
今天把这段时间学习完shell后完成工作上的一个小案件整理了一下,分享给大家! 说来也巧了,作为一个刚刚毕业半年的菜鸟,进入公司后,听公司的大牛推荐学习linux--”鸟哥的私房菜“,基本上是从去年8 ...
- 让UITableView的Cell都变成静态的
UITableView给我们提供了一个非常不错的展示列表的工具.内置了复用机制,其中的Cell按照一般的写法就可以实现服用,不用在Cell滚动的时候每次都创建一个新的.实现了非常好的用户体验.但是,有 ...