Mybatis多参数及实体对象传递实例讲解

在使用Mybatis的时候,经常会有各种各样的参数传递,不同类型,不同个数的参数。

先上个例子:

 public List<LifetouchRelease> findOfficeList(@Param("lifetouchRelease") LifetouchRelease lifetouchRelease,
      @Param("advertisementId") String advertisementId, @Param("officeName") String officeName,
      @Param("isOnline") Integer isOnline);
  <select id="findOfficeList" resultType="LifetouchRelease">
    SELECT
      <include refid="lifetouchReleaseColumns"/>
    FROM lifetouch_release a
    <include refid="lifetouchReleaseJoins"/>
    <where>
      <if test="lifetouchRelease.typeIdentification > 0">
        AND a.type_identification = #{lifetouchRelease.typeIdentification}
      </if>
      <if test="lifetouchRelease.category != null andlifetouchRelease.category.id != null and lifetouchRelease.category.id != ''">
        AND a.release_type_id = #{lifetouchRelease.category.id}
      </if>
      AND a.office_id is not null
      AND a.advertisement_id like '%${advertisementId}%'
      AND (select name from sys_office where id=a.office_id) like '%${officeName}%'
      <if test="isOnline != null">
        AND a.del_flag = #{isOnline}
      </if>
    </where>
    <choose>
      <when test="lifetouchRelease.page !=null andlifetouchRelease.page.orderBy != null and lifetouchRelease.page.orderBy != ''">
        ORDER BY ${lifetouchRelease.page.orderBy}
      </when>
      <otherwise>
        ORDER BY a.update_date DESC
      </otherwise>
    </choose>
  </select>

上面是一个包含:实体对象,普通类型,多个参数的传递。

多个参数:使用注解的方式实现

实体对象:实体对象跟普通类型参数传递方法一样,只是在用的时候,以 对象名.(点)对象属性名 的方式调用就可以了。

其它传递,不过数据类型多复杂也是如此。

以上所述是小编给大家介绍的Mybatis多参数及实体对象传递实例讲解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • MyBatis拦截器:给参数对象属性赋值的实例

    该拦截器的作用:在进行增加.修改等操作时,给数据模型的一些通用操作属性(如:创建人.创建时间.修改人.修改时间等)自动赋值. 该实现是在DAO层拦截,即存入DB前最后一层.后经分析,不是很合理,改为在service层拦截,用spring AOP来实现了,该代码遂弃用.不过已经测试可用,记录备忘. package com.development; import java.lang.reflect.InvocationTargetException; import java.util.Date; i

  • 深入学习MyBatis中的参数(推荐)

    前言 相信很多人可能都遇到过下面这些异常: "Parameter 'xxx' not found. Available parameters are [...]" "Could not get property 'xxx' from xxxClass. Cause: "The expression 'xxx' evaluated to a null value." "Error evaluating expression 'xxx'. Retur

  • Java的MyBatis框架中关键的XML字段映射的配置参数详解

    properties 这些是外部化的,可替代的属性,这些属性也可以配置在典型的Java属性配置文件中,或者通过properties元素的子元素来传递.例如: <properties resource="org/mybatis/example/config.properties"> <property name="username" value="dev_user"/> <property name="pas

  • Mybatis传递多个参数进行SQL查询的用法

    PS:ibatis3如何传递多个参数有两个方法:一种是使用java.Map,另一种是使用JavaBean. 当只向xxxMapper.xml文件中传递一个参数时,可以简单的用"_parameter"来接收xxxMapper.java传递进来的参数,并代入查询,比如说这样: (1)xxxMapper.java文件中这样定义: List<String> selectAllAirportCode(Boolean mapping); (2)这时在对应的xxxMapper.xml文件

  • MyBatis传入参数的实例代码

    在MyBatis的select.insert.update.delete这些元素中都提到了parameterType这个属性.MyBatis现在可以使用的parameterType有基本数据类型和JAVA复杂数据类型 基本数据类型:包含int,String,Date等.基本数据类型作为传参,只能传入一个.通过#{参数名} 即可获取传入的值 复杂数据类型:包含JAVA实体类.Map.通过#{属性名}或#{map的KeyName}即可获取传入的值 基本数据类型参数示例: 根据班级ID查询教师列表 x

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

    foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合.foreach元素的属性主要有item,index,collection,open,separator,close.item表示集合中每一个元素进行迭代时的别名,index指定一个名字,用于表示在迭代过程中,每次迭代到的位置,open表示该语句以什么开始,separator表示在每次进行迭代之间以什么符号作为分隔符,close表示以什么结束,在使用foreach的时候最关键的也是最容易出错的就是collection属性

  • MyBatis 参数类型为String时常见问题及解决方法

    1. 参数为String时的插值问题 假设有下面一Dao接口方法 public Account findByAccountType (String type)throws DaoException; 对应的Mapper.xml <select id="findByAccountType " parameterType="string" resultType="account"> select * form account <wh

  • Mybatis传递多个参数的解决办法(三种)

    小编给大家分享三种方案解决mybatis传递多个参数的问题,具体介绍如下所示: 第一种方案 DAO层的函数方法 Public User selectUser(String name,String area); 对应的Mapper.xml <select id="selectUser" resultMap="BaseResultMap"> select * from user_user_t where user_name = #{0} and user_a

  • 解析Mybatis连续传递多个参数的方法

    MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录. 下面给大家介绍Mybatis连续传递多个参数的方法.具体代码如下所示: // order by 排序 //<![CDATA[ 值 ]]> 过滤符号 //${}方式

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

    怎么利用MyBatis传List类型参数到数据库存储过程中实现批量插入数据? MyBatis中参数是List类型时怎么处理?大家都知道MyBatis批处理大量数据是很难做到事务回滚的(事务由Spring管理),都将逻辑写在存储中又是及其头疼的一件事(参数长度也有限制),那么我想的是将参数在后台封装为单个或多个list集合,直接通过MyBatis将此参数传到数据库存储过程中,一来摆脱了MyBatis批量插入数据的诸多限制(例如:不能实时返回主键.foreach标签循环集合长度有限制),二来就是在存

随机推荐