mybatis传递参数的方法
一.传递一个参数
例:根据员工编号查询员工的基本信息
1.在dao接口中声明一个方法

2.在mapper中实现该方法

3.测试
/**
* 传递一个参数
*/
public class Test02 {
public static void main(String[] args) {
//获取SqlSession对象
SqlSession session = SqlSessionFactoryUtil.getSession();
//获取dao接口的实现类对象
EmpDao empDao = session.getMapper(EmpDao.class);
//调用empDao的方法
Emp emp = empDao.findByEmpno(7902L);
//输出结果
System.out.println("员工编号:"+emp.getEmpno());
System.out.println("员工姓名:"+emp.getEname());
System.out.println("员工基本工资:"+emp.getSal());
///关闭session
session.close();
}
}
二.传递多个参数
第一种:使用注解传参
1.声明方法

2.mapper中实现方法

注意:不能再使用#{}传递参数了。
3.测试
/**
* 传递多个参数 使用@Param的方式
*/
public class Test04 {
public static void main(String[] args) {
//获取SqlSession对象
SqlSession session = SqlSessionFactoryUtil.getSession();
//获取dao接口的实现类对象
EmpDao empDao = session.getMapper(EmpDao.class);
//调用empDao的方法
List<Emp> emps = empDao.findByExample1("M",900D);
//输出结果
for (Emp emp :
emps) {
System.out.println("员工编号:"+emp.getEmpno());
System.out.println("员工姓名:"+emp.getEname());
System.out.println("员工基本工资:"+emp.getSal());
System.out.println("===");
}
///关闭session
session.close();
}
}
***#{}和${}有什么区别?
第二种:使用map封装多个参数
1.声明方法

2.在mapper中实现方法

3.测试
/**
* 传递多个参数 使用Map封装多个参数
*/
public class Test05 {
public static void main(String[] args) {
//获取SqlSession对象
SqlSession session = SqlSessionFactoryUtil.getSession();
//获取dao接口的实现类对象
EmpDao empDao = session.getMapper(EmpDao.class);
//调用empDao的方法
Map<String,Object> map = new HashMap<String,Object>();
//把需要传递的多个参数封装到map中
map.put("ename","M");
map.put("sal",900D);
List<Emp> emps = empDao.findByExample2(map);
//输出结果
//输出结果
for (Emp emp :
emps) {
System.out.println("员工编号:"+emp.getEmpno());
System.out.println("员工姓名:"+emp.getEname());
System.out.println("员工基本工资:"+emp.getSal());
System.out.println("===");
}
///关闭session
session.close();
}
}
第三种:按位置传参
1.声明方法

2.在mapper中实现方法

注意:按位置传参,参数下标从1开始
3.测试

第四种:按模型的方式传参(实体类)
1.声明方法

2.在mapper中实现方法

3.测试
/**
* 传递多个参数 按模型的方式
*/
public class Test07 {
public static void main(String[] args) {
//获取SqlSession对象
SqlSession session = SqlSessionFactoryUtil.getSession();
//获取dao接口的实现类对象
EmpDao empDao = session.getMapper(EmpDao.class);
//调用empDao的方法
Emp param = new Emp();
//把需要传递的多个参数封装到Emp对象中
param.setEname("M");
param.setSal(900D);
List<Emp> emps = empDao.findByExample4(param);
//输出结果
//输出结果
for (Emp emp :
emps) {
System.out.println("员工编号:"+emp.getEmpno());
System.out.println("员工姓名:"+emp.getEname());
System.out.println("员工基本工资:"+emp.getSal());
System.out.println("===");
}
///关闭session
session.close();
}
}
mybatis传递参数的方法的更多相关文章
- mybatis 传递参数的方法总结
有三种mybatis传递参数的方式: 第一种 mybatis传入参数是有序号的,可以直接用序号取得参数 User selectUser(String name,String area); 可以在xml ...
- MyBatis传递参数
MyBatis传递参数 一.使用 map 接口传递参数 在 MyBatis 中允许 map 接口通过键值对传递多个参数,把接口方法定义为 : public List<Role> findR ...
- C++向main函数传递参数的方法(实例已上传至github)
通常情况下,我们定义的main函数都只有空形参列表: int main(){...} 然而,有时我们确实需要给mian传递实参,一种常见的情况是用户设置一组选项来确定函数所要执行的操作.例如,假定ma ...
- jsp中四种传递参数的方法
jsp中四种传递参数的方法如下: 1.form表单 2.request.setAttribute();和request.getAttribute(); 3.超链接:<a herf="i ...
- Jsp传递参数的方法
今天老师讲了jsp中四种传递参数的方法,我觉得总结一下,挺好的,以备后用! 1.form表单 2.request.setAttribute();和request.getAttribute(); 3.超 ...
- Javascript 定时器调用传递参数的方法
文章来源: https://m.jb51.net/article/20880.htm 备注:先记下,以后整理: Javascript 定时器调用传递参数的方法,需要的朋友可以参考下. 无论是wind ...
- JSP页面之间传递参数的方法有哪些?
JSP页面之间传递参数的方法有哪些? 解答: 1)request 2)session 3)application 4)提交表单 5)超链接
- php cli传递参数的方法
php cli传递参数的方法 <pre>$options = "f:g:"; $opts = getopt( $options ); print_r($opts); & ...
- springMVC controller间跳转 重定向 传递参数的方法
springMVC controller间跳转 重定向 传递参数的方法 spring MVC框架controller间跳转,需重定向.有几种情况:不带参数跳转,带参数拼接url形式跳转,带参数不拼接参 ...
随机推荐
- MyBatis-Plus使用小结
官网: https://mybatis.plus/ https://gitee.com/baomidou/mybatis-plus https://github.com/baomidou/mybati ...
- 面试题 ~ 什么是RESTful?
一 : 说说什么是REST规则 ① 首先什么是REST ? 基于HTTP.URI.XML.JSON等标准和协议,支持轻量级.跨平台.跨语言的架构设计.是Web服务的一种新的架构风格(一种思想). ...
- 对于不平凡的我来说,从小我就在想为啥别人就什么都能拥有,而看看自己却什么都没有,对于原来的我就会抱怨爸妈怎么没有别人父母都能给自己想要的,可我从未想过父母的文化只有小学,其实父母内心也有太多的辛酸,所以我不甘愿如此,从此让我在大学里面直接选择一个让我巨大的转折————IT。
对于不平凡的我来说,从小我就在想为啥别人就什么都能拥有,而看看自己却什么都没有,对于原来的我就会抱怨爸妈怎么没有别人父母都能给自己想要的,可我从未想过父母的文化只有小学,其实父母内心也有太多的辛酸,所 ...
- Shellshock远程命令注入(CVE-2014-6271)漏洞复现
请勿用于非法用法,本帖仅为学习记录 shelshocke简介: shellshock即unix 系统下的bash shell的一个漏洞,Bash 4.3以及之前的版本在处理某些构造的环境变量时存在安全 ...
- leetcode-0101 对称二叉树
题目地址 https://leetcode-cn.com/problems/symmetric-tree/ 1.递归 本题最简单的思路是递归,可以假设两棵一模一样的树在进行镜像对比.他们之间的关系满足 ...
- iview使用之怎样通过render函数在table组件表头添加图标及判断多个状态
在实际项目开发中,我们经常会用到各种各样的表格,比如在表格中填加下拉菜单,按钮,图标及可以根据状态显示对应文字等等,因为这段时间一直在做后台管理系统,所以表格用的就比较多,当然UI组件库我用的是ivi ...
- Service Mesh 介绍
传统单体应用的局限性说明 传统单体应用代码体量庞大繁杂,不利于理解,也不利于团队合作开发,更不利于频繁更新和部署,增加服务宕机的风险. 耦合性高,功能代码块之前很容易造成强依赖,只要其中任何一个代码逻 ...
- centos 部署 vue项目
安装Nodejs 下载安装包,可选择其他版本 node-v10.16.0-linux-x64.tar.xz 将下载文件上传至linux服务器并解压 tar -xvf node-v10.16.0-lin ...
- C#多线程(12):线程池
目录 线程池 ThreadPool 常用属性和方法 线程池说明和示例 线程池线程数 线程池线程数说明 不支持的线程池异步委托 任务取消功能 计时器 线程池 线程池全称为托管线程池,线程池受 .NET ...
- linux抓包的实现
工具: wireshark tcpdump 在这里仅仅介绍后者: 在网络问题的调试中,tcpdump应该说是一个必不可少的工具,和大部分linux下优秀工具一样,它的特点就是简单而强大. 默认情况下, ...