使用Mybatis接收Integer参数的问题

目录
  • Mybatis接收Integer参数
    • 解决办法
  • Mybatis在使用Integer类型
    • 当传人mybatis构成sql语句时

Mybatis接收Integer参数

最近在做项目的时候,在mybatis中用标签判断分页参数时,出现了问题。

<if test="startRow != null and startRow != '' and selectRow != null and selectRow != ''">
    LIMIT #{startRow},#{selectRow}
</if>

这段代码是为了在SQL中设置分页参数,接收的参数类型都为Integer。

我们都知道要查询第一页的话,startRow要赋值为0,但是这段代码一直不起作用。正常来说,0既不为null,也不等于空字符串;

但是查阅资料才知道,mybatis接收Integer参数时,若参数值为0,为被解析为空字符串' '

解决办法

<if test="startRow != null and selectRow != null">
    LIMIT #{startRow},#{selectRow}
</if>

1.只判断Integer参数不为null,不用判断不为空字符串;

2.可以判断参数不等于0(在我的例子中不适用)

Mybatis在使用Integer类型

当传人mybatis构成sql语句时

传入的类型为int类型的值为0时,会被认为是空字符串,所以只要这样判断

就可以了:

 <if test="payStatus != null and payStatus != '' or payStatus == 0">
                AND info.pay_status = #{payStatus}
            </if>

当payStatus的值为0时,再加一个payStatus==0就会走入if。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Mybatis Integer类型参数值为0时得到为空的解决方法

    今日遇到的问题: 查询版本信息时,由于version是Integer类型,所以当前台选择版本为0时,变成了查询了所有的版本信息. sql片段: </if> <if test="version != null and version != '' "> AND a.version = #{version} </if> 原因: MyBatis因自身原因默认了 Integer类型数据值等于0时 为 ""(空字符串) 解决办法: 1. 某些

  • mybatis 返回Integer,Double,String等类型的数据操作

    在使用mybatis的过程中会遇到只返回单独数据类型的问题会用到resultType. //返回Integer <select id="getSpeedByLinkId" parameterType="java.lang.String" resultType="Integer"> SELECT speed from dws_tfc_state_speed_link_last_rt where link_id = #{linkId} &

  • Mybatis返回int或者Integer类型报错的解决办法

    会报错如下: org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.apache.ibatis.binding.BindingException: Mapper method 'com.bill.springMybatis.dao.UserDao.getUserIdByName attempted to return null from a m

  • 解决myBatis返回integer值的问题

    经过测试 将 resultMap="java.lang.Integer" 改成 resultType="java.lang.Integer" 也可以解决问题~ 补充知识:mybatis返回count(*)的整数值 1.mybatis中resultType定义为"java.lang.Integer" <select id="selectNums" resultType="java.lang.Integer&quo

  • 使用Mybatis接收Integer参数的问题

    目录 Mybatis接收Integer参数 解决办法 Mybatis在使用Integer类型 当传人mybatis构成sql语句时 Mybatis接收Integer参数 最近在做项目的时候,在mybatis中用标签判断分页参数时,出现了问题. <if test="startRow != null and startRow != '' and selectRow != null and selectRow != ''">     LIMIT #{startRow},#{sel

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

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

  • Mybatis传单个参数和<if>标签同时使用的问题及解决方法

    // Mapper.java EmerEvent selectByAlarmId(Integer alarmId); // Mapper.xml <select id="selectByAlarmId" resultMap="BaseResultMap" parameterType="java.lang.Integer"> select <include refid="Base_Column_List" /&

  • MyBatis Mapper接受参数的四种方式代码解析

    这篇文章主要介绍了MyBatis Mapper接受参数的四种方式代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 对于单个参数而言,可以直接写#{param},这里的占位符名称没有限制,反正就一个参数一个占位符,不需要指定名称 对于多个参数,有常用的四种方式 根据位置排序号 public interface UserDao { public Integer addUser(String username, String password)

  • SpringBoot接口接收json参数解析

    目录 SpringBoot接口接收json参数 前言 前提 一.GET 二.DELETE 三.POST/PUT/PATCH Springboot restFul 参数检验 概述 常用注解 简单应用举例 自定义校验 抛出BindException而非MethodArgumentNotValidException SpringBoot接口接收json参数 前言 通常来讲,HTTP 方法会映射为 CRUD 动作,但这并不是严格的限制,有时候 PUT 也可以用来创建新的资源,POST 也可以用来更新资源

  • PowerShell函数中接收管道参数实例

    本文介绍在自定义PowerShell函数时,如何设置函数通过管道(Pipeline)接收输入参数. 先看一个例子,用管道作为输入参数的函数: 复制代码 代码如下: function Test-Pipeline {     param(         [Parameter(ValueFromPipeline=$true)]         $InputObject     )     process     {         "Working with $InputObject"  

  • Sql Server 存储过程调用存储过程接收输出参数返回值

    创建存储过程: ALTER PROCEDURE [dbo].[GetCustomers] (@rowcount INT OUTPUT) AS SELECT [CustomerID] ,[CompanyName] ,[ContactName] ,[ContactTitle] ,[Address] ,[City] ,[Region] ,[PostalCode] ,[Country] ,[Phone] ,[Fax] FROM [Northwind].[dbo].[Customers] SET @row

  • 详解SpringMVC——接收请求参数和页面传参

    spring接收请求参数: 1,使用HttpServletRequest获取 @RequestMapping("/login.do") public String login(HttpServletRequest request){ String name = request.getParameter("name") String pass = request.getParameter("pass") } 2,Spring会自动将表单参数注入到方

  • MyBatis中传入参数parameterType类型详解

    前言 Mybatis的Mapper文件中的select.insert.update.delete元素中有一个parameterType属性,用于对应的mapper接口方法接受的参数类型.本文主要给大家介绍了关于MyBatis传入参数parameterType类型的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 1. MyBatis的传入参数parameterType类型分两种 1. 1. 基本数据类型:int,string,long,Date; 1. 2. 复杂数据类

随机推荐