Mybatis中常见异常原因分析
1、mybatis使用 dao.xml中的sql语句报错Tag name expected
原因分析:在mybatis中出现Tag name expected错误时(一般编译是就会报错),主要的原因是xml文件中编写SQL语句大于、小于等需要转义处理
// < 用 <代替
// > 用 >代替
// & 用 &代替
// ' 用 '代替
// “ 用 "代替
第一种写法(1):
原符号 < <= > >= & ' "
替换符号 < <= > >= & ' "
例如:sql如下:
create_date_time >= #{startTime} and create_date_time <= #{endTime}
第二种写法(2):
大于等于
<![CDATA[ >= ]]>
小于等于
<![CDATA[ <= ]]>
例如:sql如下:
create_date_time <![CDATA[ >= ]]> #{startTime} and create_date_time <![CDATA[ <= ]]> #{endTime}
2、mybatis中的一对多查询时,如果两张表的id名称都相同,最好给第二张表取一下别名,防止查出的数据出问题(即查出的数据错误的)
3、mybatis中使用if标签注意事项,当object对象为空时会报异常,最好这样判断test=‘object !=null and object.name!=null’
<if test='object.name!=null'>name=#{object.name}</if>(当object为null时会报空指针)
<if test='object !=null and object.name!=null'>name=#{object.name}</if>(正确写法)