Mybatis中parameterType=“String“坑人之处
public interface CheckItemDao {//查询public Page<CheckItem> selectByCondition(String queryString); }
错误代码 <select id="selectByCondition" parameterType="String" resultType="checkItem">select * from t_checkitem<if test="queryString != null and queryString.length > 0">where code like '%"#{queryString}"%' or name like '%"#{queryString}"%'</if></select>
正确代码
使用mybatis默认的对象名:value
<select id="selectByCondition" parameterType="string" resultType="com.itheima.pojo.CheckItem">select * from t_checkitem<if test="value != null and value.length > 0">where code = #{value} or name = #{value}</if> </select>
或 使用_parameter
<if test="_parameter != null">f_name like #{_parameter}"%" </if>
或 定义@Param要传入的字符串名
List<User> selectedUser(@Param("userId") String userId,@Param("userName") String userName);
<select id="selectedUser" resultType="com.xxx.User" parameterType="String">SELECT user_Id AS userId, user_Name AS userName FROM users WHERE user_id = #{userId} AND user_name = #{userName} </select>
会报错
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named ‘name’ in ‘class java.lang.String’
原因:
mybatis自动调用OGNL寻找String的name属性
mybatis中SQL接受的参数分为:(1)基本类型(2)对象(3)List(4)数组(5)Map
无论传哪种参数给mybatis,他都会将参数放在一个Map中:
如果传入基本类型:变量名作为key,变量值作为value 此时生成的map只有一个元素。
如果传入对象: 对象的属性名作为key,属性值作为value,
如果传入List: "list"作为key,这个List是value (这类参数可以迭代,利用标签实现循环)
如果传入数组: "array"作为key,数组作为value(同上)如果传入Map: 键值不变。
Mybatis中parameterType=“String“坑人之处相关推荐
- mybatis中传入String类型参数异常
mybatis中传入String类型参数异常 参考文章: (1)mybatis中传入String类型参数异常 (2)https://www.cnblogs.com/azhqiang/p/5981796 ...
- mybatis中传入String类型参数的问题
1. 出现的问题 需求是想写一个按公司名字查询公司列表的功能,最开始的代码如下 Dao层接口如下: @MyBatisDao public interface OfficeDao extends Tre ...
- Mybatis中parameterType的用法
在mybatis映射接口的配置中,有select,insert,update,delete等元素都提到了parameterType的用法,parameterType为输入参数,在配置的时候,配置相应的 ...
- mybatis中collection中的ofType=“String“时
mybatis中collection中的ofType="String"时 DTO: package com.example.mybatis.entity;import java.u ...
- mybatis中的resultMap与resultType、parameterMap与 parameterType的区别
Map:映射:Type:Java类型 resultMap 与 resultType.parameterMap 与 parameterType的区别在面试的时候被问到的几率非常高,项目中出现了一个小b ...
- mybatis中传集合时 报异常 invalid comparison: java.util.Arrays$ArrayList and java.lang.String
mybatis中传集合时 报异常 invalid comparison: java.util.Arrays$ArrayList and java.lang.String 参考文章: (1)mybati ...
- Mybatis中传参包There is no getter for property named XXX in class java.lang.String
一.发现问题 <select id="queryStudentByNum" resultType="student" parameterType=&quo ...
- MyBatis 中的九种设计模式
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | http://www.crazyant.net ...
- mybatis中自建的类型别名
在使用mybatis过程中经常用到类型别名,除了我们自己新建的别名外,mybatis还自带了很多类型别名和java中的类型的映射,下面先看一个自建的别名的配置 <typeAliases>& ...
最新文章
- 磁铁驱动反向续流串接电阻的的分析
- 恭喜CocoStudio 1.5和Mac版本发布
- ffmpeg-从flv文件中提取AAC音频数据保存为文件
- 字符串分割--java中String.split()用法
- 高倍数泡沫装置PHP_泡沫灭火系统,了解这几点就好
- 2020年2月全国程序员工资统计
- Zbrush学习指南—小白也能学会得雕刻软件
- 用Mediator Pattern + Queue 解决 订单处理流程
- 中国各主要大城市经纬度数据
- Ettercap网络嗅探工具攻略
- DevOps案例研究|中华有为-解构华为软开云DevOps实践
- Oracle 11g 表空间管理
- 蛋白互作常用的研究方法
- 程序员该如何规划自己的职业发展?
- 安科瑞ACTB-6互感器二次侧开路保护装置
- 与孤独世界的博弈——诺贝尔奖得主约翰·纳什的传奇一生
- 香港虚拟主机租用价格
- 拼多多败诉:砍价始终差0.9%侵犯知情权,被判赔400元
- 电脑公司GHOST WIN7 装机旗舰版 2013 04
- 西部世界:人的大部分痛苦来自控制一切的执念
热门文章
- 【使用指南】BXERP使用指南
- 做人的基本原则---如何正确做人
- 经典面试题:从URL到页面
- 黑马参赛分享:我已看到未来已来 观众人气奖揭晓
- 推荐系统之矩阵分解(MF)没废话,有代码
- 优先队列——51Nod逛街
- 2022/7/7/[CCSU Summer Training Contest 2 - Virtual Judge (vjudge.net)](https://vjudge.net/contest/49
- 『网络协议攻防实验』SYN Flood攻击
- How Digg is Built
- FPGA NCOip核的使用及仿真(quartusii 13.1+modelsimse 10.5)