mybatis中如何传递单个String类型的参数

目录
  • 如何传递单个String类型的参数
  • mybatis仅传入一个String类型参数报错  
    • 目前我知道有两种方式解决问题

如何传递单个String类型的参数

使用mybatis接口参数只有一个string的时候 如果不指定@Param 的话mybatis去会把parameterType参数默认成接口的参数类型然后对于xml里的#{a}参数 去调用该类型下参数a 的get/set方法然后就报错了。

使用了@Param注解 mybatis就会一一对应赋值就不会导致这个错误。

接口如下:

xml文件如下:

报错如下:

改成如下就可以了:

mybatis仅传入一个String类型参数报错  

mybatis中仅传入一个String类型参数时,不可以用 以下方式

List<Map<String,Object> selectEmployee(String time)

这种方式传参会报错:

There is no getter for property named 'id' in class 'java.lang.String'

目前我知道有两种方式解决问题

1.用 _parameter

<if test="_parameter !=null and _parameter !=''">
         DATE_FORMAT( dms.statistic_date, '%Y-%m' ) = #{_parameter,jdbcType=VARCHAR}
</if>

2.在mapper中参数加上@Param注解

List<Map<String,Object> selectEmployee(@param("time") String time)

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

(0)

相关推荐

  • Mybatis中传递多个参数的4种方法总结

    前言 现在大多项目都是使用Mybatis了,但也有些公司使用Hibernate.使用Mybatis最大的特性就是sql需要自己写,而写sql就需要传递多个参数.面对各种复杂的业务场景,传递参数也是一种学问. 下面给大家总结了以下几种多参数传递的方法. 方法1:顺序传参法 #{}里面的数字代表你传入参数的顺序. 这种方法不建议使用,sql层表达不直观,且一旦顺序调整容易出错. 方法2:@Param注解传参法 #{}里面的名称对应的是注解 @Param括号里面修饰的名称. 这种方法在参数不多的情况还

  • MyBatis中如何接收String类型的参数实现

    在MyBatis学习初期,当parameterType的值为String<==>也就是接收String类型的参数时,我会通过value来接,如图: 通过value接收String类型的值舒适又简单,然而,直到有一天,我发现屡试不爽的value不给力了->接收String类型值的时候出了问题. 到底是什么凶残吓到了我的value->就是<bind/ >标签,大家请看: 这是配套数据表 查出来的结果让我很费解,用value接收值的时候出了这个问题(好好的"GZ&q

  • 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中如何传递单个String类型的参数

    目录 如何传递单个String类型的参数 mybatis仅传入一个String类型参数报错 目前我知道有两种方式解决问题 如何传递单个String类型的参数 使用mybatis接口参数只有一个string的时候 如果不指定@Param 的话mybatis去会把parameterType参数默认成接口的参数类型然后对于xml里的#{a}参数 去调用该类型下参数a 的get/set方法然后就报错了. 使用了@Param注解 mybatis就会一一对应赋值就不会导致这个错误. 接口如下: xml文件如

  • 浅谈mybatis中SQL语句给boolean类型赋值问题

    我就废话不多说了,大家还是直接看代码吧~ <select id="getBiTree" parameterType="String" resultMap="MenuVoListMap"> SELECT m.menu_id , m.parent_id , m.`name` , 1 opens FROM menu m WHERE m.is_valid = 1 AND (m.type = 0 or m.type = 1) and m.men

  • mybatis中<if>标签bool值类型为false判断方法

    昨天实现一个功能,根据文章的id或者别名查找文章. 起初采用mybatis的Example进行查询,对参数artName进行判断,如果是纯数字就byId查询,否则就by别名.由于查询文章的同时,需要关联查询文章分类标签,所以选择采用select语句映射的方式查询,但又不想写两个查询方法,就使用了mybatis中动态sql. /** * 查询文章 * @param artName id 或 别名 * @param byId 如果是 true 则按照id查询 * 否则 按照别名查询 * @retur

  • 基于mybatis中数组传递注意事项

    目录 mybatis中传数组时应当注意的地方 1.直接传递数组 2.将数字放入map中传递 mybatis传入参数为数组.list的写法 1.当传入参数为数组 2.当传入参数为集合时 mybatis中传数组时应当注意的地方 parameterType为主要注意点之一,foreach循环为注意点之二 例如如下代码: 1.直接传递数组 如果 parameterType使用的是 数组参数 例如上述的Long[], 则foreach循环 collection中 必须使用 array(其他代码可以忽略主要

  • mybatis中查询结果为空时不同返回类型对应返回值问题

    今天在别人的代码基础上实现新需求,看到对于mybatis查询结果的判断不是很正确,如果查询结果为空就会异常,不知道大家有没有这样的疑惑:mybatis中resultType有多种返回类型,对于每种不同类型,查询结果为空时dao接口的返回值是一样的吗?接下来我就总结一下常见的几种情况. 第一种:resultType为基本类型,如string(在此暂且把string归纳为基本类型) 如果select的结果为空,则dao接口返回结果为null 第二种,resultType为基本类型,如int 后台报异

  • 详解MyBatis resultType与resultMap中的几种返回类型

    目录 一.返回集合 1.返回JavaBean集合 2.返回 Map 集合 二.返回 Map 1.一条记录 2.多条记录,需要指定 Map 的 Key 和 Value 的类型 三.返回 resultMap 自定义结果集封装 1.自定义 JavaBean 的封装 2.关联查询的封装,一对一,JavaBean 属性包含 JavaBean 3.关联查询的封装,一对多,JavaBean 属性包含 JavaBean 的集合 4.鉴别器discriminator 一.返回集合 1.返回JavaBean集合 p

  • 简单谈谈Java中String类型的参数传递问题

    提要:本文从实现原理的角度上阐述和剖析了:在Java语言中,以 String 作为类型的变量在作为方法参数时所表现出的"非对象"的特性. 一.最开始的示例 写代码最重要的就是实践,不经过反复试验而得出的说辞只能说是凭空遐想罢了.所以,在本文中首先以一个简单示例来抛出核心话题: public class StringAsParamOfMethodDemo { public static void main(String[] args) { StringAsParamOfMethodDem

  • Redis中一个String类型引发的惨案

    ​ 曾经看到这么一个案例,有一个团队需要开发一个图片存储系统,要求这个系统能快速记录图片ID和图片存储对象ID,同时还需要能够根据图片的ID快速找到图片存储对象ID.我们假设用10位数来表示图片ID和图片存储对象ID,例如图片的ID为1101021043,它所对应的图片存储对象的ID为2301010051,可以看到图片ID和图片存储ID正好是一一对应的,是典型的key-value形式,所以首先会想到直接使用String类型来保存数据.把图片ID和图片存储ID分别作为键值对的key和value来保

  • mybatis 如何返回list<String>类型数据

    mybatis返回list<String>类型数据 studends表里一条teacher_id 数据对应多条 student_id数据,所以通过teacher_id 查询出来的student_id 是一个List. mybatis代码如下: //返回类型是String类型的student_id <resultMap id="studentIdResult" type="java.lang.String" > <result colum

随机推荐