当前位置:网站首页>mapper.xml文件中的注释

mapper.xml文件中的注释

2022-07-05 14:49:00 蓝天⊙白云

注释方式

在mapper.xml文件中,注释方式为<!--existence of query content-->,直接采用Java代码方式的注释/*existence of query content*/会报错,尤其是在SQL语句中出现这种注释方式时。

‘无效的列索引’bug和解决

昨天在导入数据时需要对数据进行验证,在mapper文件中对表中数据进行查询,将作废sql注释时选择了Java方式,此时会报错。

<select id="getSeqNameCount" parameterClass="java.util.HashMap" resultClass="java.lang.Integer">
	SELECT COUNT(*) COUN FROM tablename A
		WHERE  A.id=#id#  and  A.name=#name#
	/*SELECT * FROM tablename A WHERE A.id=#id# and A.name=#name#*/
	</select>

    
     

在解析时由于会将参数位置解析为占位符‘?’,所以此时以下的sql会在后台解析成如下,但是传入的参数只有两个,所以这个时候会报 “Caused by: java.sql.SQLException: 无效的列索引”,因为传入的参数和占位符数量不等。

SELECT COUNT(*) COUN FROM tablename A WHERE A.id=? and A.name=?
	/*SELECT * FROM tablename A WHERE A.id=? and A.name=?/ 
    
     

总结

1、mapper.xml文件中注释方式为<!--existence of query content-->
2、 “Caused by: java.sql.SQLException: 无效的列索引”错误一般由sql语句中占位符引起:
1传入参数数量不等与占位符的数量;
2SQL语句中的占位符?是中文版;
3SQL语句中的占位符?被放在字符串内;

原网站

版权声明
本文为[蓝天⊙白云]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_38747892/article/details/125595684