一.传递一个参数

例:根据员工编号查询员工的基本信息

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();
}
}

***#{}和${}有什么区别?

#{}在传递参数的时候底层使用的占位符的方式传参,你可以简单理解为在传参的时候默认会在参数外加一个引
号,一般建议使用这种传参方式。 
${}在传参的时候底层实际上使用的拼接sql的方式,有的时候像模糊查询必须采用这种传参方式。但是在使用${}传
参的时候需要在dao接口方法的形参前加一个@Param的注解。 

第二种:使用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传递参数的方法的更多相关文章

  1. mybatis 传递参数的方法总结

    有三种mybatis传递参数的方式: 第一种 mybatis传入参数是有序号的,可以直接用序号取得参数 User selectUser(String name,String area); 可以在xml ...

  2. MyBatis传递参数

    MyBatis传递参数 一.使用 map 接口传递参数 在 MyBatis 中允许 map 接口通过键值对传递多个参数,把接口方法定义为 : public List<Role> findR ...

  3. C++向main函数传递参数的方法(实例已上传至github)

    通常情况下,我们定义的main函数都只有空形参列表: int main(){...} 然而,有时我们确实需要给mian传递实参,一种常见的情况是用户设置一组选项来确定函数所要执行的操作.例如,假定ma ...

  4. jsp中四种传递参数的方法

    jsp中四种传递参数的方法如下: 1.form表单 2.request.setAttribute();和request.getAttribute(); 3.超链接:<a herf="i ...

  5. Jsp传递参数的方法

    今天老师讲了jsp中四种传递参数的方法,我觉得总结一下,挺好的,以备后用! 1.form表单 2.request.setAttribute();和request.getAttribute(); 3.超 ...

  6. Javascript 定时器调用传递参数的方法

    文章来源:  https://m.jb51.net/article/20880.htm 备注:先记下,以后整理: Javascript 定时器调用传递参数的方法,需要的朋友可以参考下. 无论是wind ...

  7. JSP页面之间传递参数的方法有哪些?

    JSP页面之间传递参数的方法有哪些? 解答: 1)request 2)session 3)application 4)提交表单 5)超链接

  8. php cli传递参数的方法

    php cli传递参数的方法 <pre>$options = "f:g:"; $opts = getopt( $options ); print_r($opts); & ...

  9. springMVC controller间跳转 重定向 传递参数的方法

    springMVC controller间跳转 重定向 传递参数的方法 spring MVC框架controller间跳转,需重定向.有几种情况:不带参数跳转,带参数拼接url形式跳转,带参数不拼接参 ...

随机推荐

  1. IO流学习总结

    IO: 概述: IO流用来处理设备之间的数据传输,如上传文件和下载文件 Java对数据的操作是通过流的方式 Java用于操作流的对象都在IO包中按照数据流向: 输入流 读入数据 从操作系统上读入文件到 ...

  2. [算法总结]DFS(深度优先搜索)

    目录 一.关于DFS 1. 什么是DFS 2. DFS的搜索方式 二.DFS的具体实现 三.剪枝 1. 顺序性剪枝 2. 重复性剪枝 3. 可行性剪枝 4. 最优性剪枝 5. 记忆化剪枝 四.练习 一 ...

  3. Docker-Bridge Network 01 容器间通信

    本小节介绍bridge network模式下,单机上的容器网络拓扑及通信. 1.前言 对于单机上的容器,Docker提供了bridge.host.none三种网络.我们首先介绍经典的bridge模式. ...

  4. linux 下强大的 JSON 解析命令 jq

    介绍 jq is like sed for JSON data - you can use it to slice and filter and map and transform structure ...

  5. golang slice 源码解读

    本文从源码角度学习 golang slice 的创建.扩容,深拷贝的实现. 内部数据结构 slice 仅有三个字段,其中array 是保存数据的部分,len 字段为长度,cap 为容量. type s ...

  6. Crossing River POJ过河问题

    A group of N people wishes to go across a river with only one boat, which can at most carry two pers ...

  7. Springboot:员工管理之环境准备(十(1))

    1:静态资源 下载静态资源:https://files.cnblogs.com/files/applesnt/ztzy.zip 项目下载:https://files.cnblogs.com/files ...

  8. 使用dynamic和MEF实现轻量级的AOP组件 (3)

    转摘 https://www.cnblogs.com/niceWk/archive/2010/07/22/1783068.html 水到渠成 在上一篇的<偷梁换柱>中,介绍了Weavabl ...

  9. 模拟电磁曲射炮_H题 方案分析【2019年电赛】【刘新宇qq522414928】

    请查看我的有道云笔记: 文档:电磁曲射炮分析.note链接:http://note.youdao.com/noteshare?id=26f6b6febc04a8983d5efce925e92e21

  10. jdbc-手写Java方法连接数据库

    一.关键四元素   ①    com.mysql.jdbc.Driver      mysql数据库连接jar包.   获取途径: 链接:https://pan.baidu.com/s/1SFcjuu ...