中文导致Mybatis无效的列索引

本文介绍了解决MyBatis使用中文字段名时出现的“无效的索引列”错误的方法。通过调整XML文件的编码格式或将参数标记从#{}

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



<!-- 普铁 -->
	<select id="selectTrainSceneThrough" parameterType="HashMap" resultType="HashMap">
		select ROUND(("普铁用户专网总流量KB"+"普铁用户公网总流量KB")/1024/1024,3) as total_dataflow,
		"普铁用户数" as total_users 
		from RPT_NETWORK_HOUR
		where "日期"='#{kpi_time}'
		and "线路标识"=#{road_id}
	</select>

提示“无效的索引列”

<select id="selectCRHSceneThrough" parameterType="HashMap" resultType="HashMap">
		select *
		from RPT_NETWORK_HOUR
		where report_id=#{road_id}
	</select>

运行正常

起初以为是#和$的问题,后来知道是中文引起的。


解决方法一:

文件头是 <?xml version="1.0" encoding="UTF-8" ?> 改成 <?xml version="1.0" encoding="GBK" ?>

该方法不一定有效时选择方法二

用${}  代替 #{}


<select id="selectCRHSceneThrough" parameterType="HashMap" resultType="HashMap">
		select ROUND(("高铁用户专网总流量KB"+"高铁用户公网总流量KB")/1024/1024,3) as total_dataflow,
		"高铁用户数" as total_users 
		from RPT_NETWORK_HOUR
		where "日期"='${kpi_time}'
		and "线路标识"=${road_id}
	</select>

只是会在日志里直接打印出完整的sql。完全降低了。


-------------

更多的Java,Angular,Android大数据,J2EE,Python数据库Linux,Java架构师,:

http://www.cnblogs.com/zengmiaogen/p/7083694.html




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

松门一枝花

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值