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形式跳转,带参数不拼接参 ...
随机推荐
- linux下DNS服务器搭建,正反向解析配置
dns服务器之前自己搭建玩过,一段时间不搞,加上当时没写文档,基本忘光光了,这次老实了,写个文档记下来,方便以后查阅. 1.服务器准备 为了避免不必要的问题,关闭防火墙,关闭selinux,hosts ...
- stand up meeting 11/25/2015 暨sprint2总结
今天在课堂上进行了小组项目的阶段性总结,这两天小组内也是频繁的开会,具体细节我们已经反复核查,具体不表~ sprint2个人工作总结: 冯晓云:完成了必应词典在线查词api的调用和网络状况的检测:完成 ...
- Cobalt Strike系列教程第七章:提权与横向移动
Cobalt Strike系列教程分享如约而至,新关注的小伙伴可以先回顾一下前面的内容: Cobalt Strike系列教程第一章:简介与安装 Cobalt Strike系列教程第二章:Beacon详 ...
- vue2.x学习笔记(二十)
接着前面的内容:https://www.cnblogs.com/yanggb/p/12631279.html. 循环引用 递归组件 组件是可以在它们自己的模板中调用自身的,不过它们只能通过[name] ...
- C# WCF之用接口创建服务契约、部署及客户端连接
服务契约描述了暴露给外部的类型(接口或类).服务所支持的操作.使用的消息交换模式和消息的格式.每个WCF服务必须实现至少一个服务契约.使用服务契约必须要引用命名空间System.ServiceMode ...
- tensorflow1.0 构建lstm做图片分类
import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data #this is data mni ...
- dns的抓包分析
dns: 域名系统(服务)协议 dns的解析全过程: 1. 浏览器先检查自身缓存中有没有被解析过的这个域名对应的ip地址,如果有,解析结束.同时域名被缓存的时间也可通过TTL属性来设置. 2. 如果浏 ...
- MySQL系列(三)
本章内容: 视图.增/删/改/查 触发器.增/删/改/查 存储过程.增/删/改/查 存储过程三种传参,pymysql 怎么用? 函数.增/删/改/查/return值 内置函数 事务 1.1视图 视图是 ...
- 多线程并行请求问题及SplashActivity预加载问题解决方案
1. 问题描述(一): 现有3个线程thread1, thread2, thread3.这3个线程是并发执行的,当着3个线程都执行完成以后,需要执行一个finish()事件. 1.1 实现方法: /* ...
- linux 之学习路线
原文地址:https://www.oschina.net/question/587367_156024 推荐的发行版如下: UBUNTU 适合纯菜鸟,追求稳定的官方支持,对系统稳定性要求较弱,喜欢最新 ...