MyBatis3使用#{}传递参数值为空

 

    最近做项目的时候遇到一个问题,使用mybatis作为项目的持久层,举一个简单的例子:

<select id="getAccountByName" parameterType="String" resultType="Account">
		select 
			accountname as accountName,
			accountpswd as accountPassword,
			createtime as createTime
		from
			account
		where
			accountname = #{accountName }
	</select>

     这是在mapper文件中的一段配置,很简单就是通过accountName获取account的相应信息。

     不知道你又没有看出这段配置中的错误,反正我被这个问题折磨了一天!

     #{}是mybatis中的一种占位符,它会将传入的数据预编译后去除关键字等后放到相应的位置,不过使用占位符的时候我们千万不能留有空格!!

   #{accountName(这里有一个空格)},正确的写法是: #{accountName} ,将所有位置占满不留一个空格!!!!

    其实道理很简单,mybatis的映射原理就是Map,如果我们在一个map中存入一个值:map.put("key ","value"),在通过map.get("key");取出来的为null。万恶的空格呀。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值