`

[转]MyBatis之传入参数

 
阅读更多

在MyBatis的select、insert、update、delete这些元素中都提到了parameterType这个属性。MyBatis现在可以使用的parameterType有基本数据类型和JAVA复杂数据类型

  • 基本数据类型:包含int,String,Date等。基本数据类型作为传参,只能传入一个。通过#{参数名} 即可获取传入的值
  • 复杂数据类型:包含JAVA实体类、Map。通过#{属性名}或#{map的KeyName}即可获取传入的值

 

  • 基本数据类型参数示例:

根据班级ID查询教师列表

xml文件

[html] view plaincopy
  1. <select id="selectTeacher" parameterType="int" resultType="com.myapp.domain.Teacher">  
  2.     select * from Teacher where c_id=#{id}  
  3. </select>  


java代码

[java] view plaincopy
  1. List<Teacher> tList = teacherMapper.selectTeacher(2);    
  2. for (Teacher entityTemp : tList) {    
  3.     System.out.println(entityTemp.toString());    
  4. }    
  • JAVA实体类型参数示例
[html] view plaincopy
  1. <select id="selectTeacher" parameterType="com.myapp.domain.Teacher" resultType="com.myapp.domain.Teacher">  
  2.     select * from Teacher where c_id=#{id}  
  3. </select>  
[java] view plaincopy
  1. java代码  
  2.   
  3. Teacher queryTeacher=new Teacher();  
  4. queryTeacher.setId(2);  
  5. List<Teacher> tList = teacherMapper.selectTeacher(queryTeacher);    
  6. for (Teacher entityTemp : tList) {    
  7.     System.out.println(entityTemp.toString()); }  
  • Map参数示例:
    [html] view plaincopy
    1. <select id="selectTeacher" parameterType="Map" resultType="com.myapp.domain.Teacher">  
    2.     select * from Teacher where c_id=#{id} and sex=#{sex}  
    3. </select>  

    [java] view plaincopy
    1. java代码  
    2.   
    3. Map<String,String> map=new HasMap<String,String>();  
    4. map.put("id","2");  
    5. map.put("sex","男");  
    6. List<Teacher> tList = teacherMapper.selectTeacher(map);    
    7. for (Teacher entityTemp : tList) {    
    8.     System.out.println(entityTemp.toString()); }  

 另外MyBatis还提供了一个使用注解来参入多个参数的方式。这种方式需要在接口的参数上添加@Param注解

示例:

接口方法

[java] view plaincopy
  1. public List<Teacher> selectTeacher(@Param(value="id") String id,@Param(value="sex") String sex);  


XML文件

[html] view plaincopy
  1. <select id="selectTeacher"  resultType="com.myapp.domain.Teacher">  
  2.     select * from Teacher where c_id=#{id} and sex=#{sex}  
  3. </select>  


测试代码

[java] view plaincopy
  1. List<Teacher> tList = teacherMapper.selectTeacher("2","男");    
  2. for (Teacher entityTemp : tList) {    
  3.     System.out.println(entityTemp.toString());   
分享到:
评论

相关推荐

    mybatis 动态sql及参数传递

    在实际开发过程中,我们往往需要编写复杂的SQL语句,拼接稍有不注意就会导致错误,Mybatis给开发者提供了动态SQL,大大降低了拼接SQL导致的错误。 动态标签 if标签 if标签通常用那个胡where语句,update语句,insert...

    总结--Mybatis传递参数的几种方法

    Mybatis 传递参数的几种方法 Mybatis 中传递参数有多种方法,以下是其中的四种: 1. 传递单个参数 在 Mybatis 中,传递单个参数非常简单。可以直接将参数写在方法中,参数类型可以是 String,也可以是基本类型,...

    postgresql + mybatis传入时间参数的问题.md

    我们看到, 直接在可视化工具里用SQL写 ccf.last_update_timestamp between TIMESTAMP '2019-12-13' AND TIMESTAMP '2019-12-13' 甚至去掉 TIMESTAMP 都是可以的, pgSQL可以自动把字符串给你转换成日期格式, ...

    MyBatis传入多个参数的问题

    ### MyBatis传入多个参数的问题 在使用MyBatis框架进行数据库操作时,经常会遇到需要向SQL查询语句传入多个参数的情况。本文将详细介绍几种常见的多参数传递方法,并结合具体的代码示例来帮助读者更好地理解和应用...

    关于MyBatis参数传入#{index}的问题的解决方案【源码】

    在这个问题中,开发者遇到了一个关于如何正确传入参数#{index}的问题。在MyBatis中,#{index}是参数占位符,它用于动态SQL的拼接,但具体如何使用,特别是当有多个参数时,可能会引发困惑。本文将深入探讨这个问题,...

    MyBatis中传入参数parameterType类型详解

    MyBatis中传入参数parameterType类型详解 MyBatis是一款流行的持久层框架,它提供了一个灵活的方式来与数据库交互。在MyBatis中,parameterType类型是Mapper文件中的一个重要属性,它用于指定Mapper接口方法接受的...

    MyBatis传入集合 list 数组 map参数的写法

    在MyBatis中,处理集合参数如list、array以及map是非常常见的操作。这些参数通常用于构建动态SQL,特别是当需要在`IN`语句中使用多个值时。下面将详细解释如何在MyBatis中使用这些参数类型。 1. **List参数**: 当...

    Mybatis Log(自动填充sql参数打印到控制台)

    Mybatis 提供了一种日志机制,能够自动填充SQL参数并打印到控制台,这对于排查问题和理解查询逻辑非常有帮助。 首先,Mybatis的日志实现依赖于日志库,如Log4j、Logback或Java内置的java.util.logging。为了开启SQL...

    Mybatis传list参数调用oracle存储过程的解决方法

    Mybatis是当前最流行的持久层框架之一,它提供了强大的数据访问和操作功能。但是,如何将List类型参数传递给Oracle存储过程,实现批量插入数据却是一个棘手的问题,本文将给大家介绍Mybatis传List参数调用Oracle存储...

    Mybatis多参数查询与列表查询不同方式实现

    调用时直接传入参数: ```java List&lt;User&gt; users = userMapper.selectUser("evankaka", 25); ``` 3. **Pojo类作为参数**: 另一种方式是创建一个包含所有查询参数的Pojo类,然后将该对象作为Mapper方法的参数...

    MyBatis拦截器分页与动态修改SQL及其参数值

    例如,我们可以在拦截器中检查传入的参数,如果需要模糊查询,可以在SQL语句中添加`LIKE`条件。例如: ```xml SELECT * FROM user != null"&gt; WHERE name LIKE #{keyword} ``` 这里,如果`keyword`参数不为...

    mybatis动态sql之Map参数的讲解

    MyBatis动态SQL之Map参数的讲解 MyBatis动态SQL中参数类型可以是Map类型的,在实际开发中,我们经常需要在Mapper文件中传递Map参数,以实现动态SQL的构建。今天,我们将详细讲解MyBatis动态SQL之Map参数的使用。 ...

    MyBatis传入参数的实例代码

    在MyBatis中,传入参数是执行SQL语句时必不可少的部分,用于传递SQL执行所需的数据。本文将详细讲解MyBatis中传入参数的不同方式。 1. 基本数据类型参数: 当传入的参数为Java的基本数据类型(如int, String, Date...

    Mybatis现学现用

    MyBatis排序时使用order by 动态参数时需要注意,用$而不是# 字符串替换 默认情况下,使用#{}格式的语法会导致MyBatis创建预处理语句属性并以它为背景设置安全的值(比如?)。这样做很安全,很迅速也是首选做法,...

    MyBatis中Foreach参数问题.doc

    当传入一个集合类型的参数时,MyBatis会将其封装成一个包含`collection`和`list`两个键的Map对象。具体实现如下: ```java private Object wrapCollection(Object object) { DefaultSqlSession.StrictMap map; if...

    Mybatis的切换数据库

    Mybatis 提供了这样的功能,可以通过传入参数的方式实现数据库的切换。 首先,我们需要理解Mybatis的配置文件(mybatis-config.xml)。在这个文件中,我们可以定义多个数据源,每个数据源对应一个数据库连接。例如...

    Mybatis如何传入多个参数的实现代码

    直接传入参数,在SQL语句中按照参数传递的顺序,利用arg1、arg2、…顺序获得对应的参数值。注意:param后面的数字是从1开始的,而arg后面的数字是从0开始的。 通过这两种方式,我们可以灵活地传入多个参数,以满足...

    mybatis动态插入list传入List参数的实例代码

    MyBatis 是一款优秀的 ORM 工具,提供了许多实用的功能,其中之一便是动态插入 List,下面我们将通过实例代码详解 MyBatis 动态插入 List 传入 List 参数的方法。 MyBatis 动态插入 List MyBatis 动态插入 List 是...

    mybatis直接执行sql语句后续之一

    这篇博客“mybatis直接执行sql语句后续之一”可能探讨了如何在MyBatis中高效且有效地执行SQL操作。下面我们将深入探讨MyBatis的SQL执行机制及相关知识点。 首先,MyBatis的核心组件是SqlSessionFactory,它是创建...

Global site tag (gtag.js) - Google Analytics