ibatis 测试时出现错误提示: “could not find sql statement to include with refid xxx” , 出现这种错误一般是下面两种情况引起:
- refid引用的sqlid不正确, 自己好好检查下。
- refid正确,但还是报错, 可能原因是: sql refid定义的位置必须在引用的语句之前,否则会出错。
DONE!
ibatis 测试时出现错误提示: “could not find sql statement to include with refid xxx” , 出现这种错误一般是下面两种情况引起:
DONE!
使用mybatis,mybatis-config配置文件已使用下面两行配置
<settings> <setting name="aggressiveLazyLoading" value="false" /> <setting name="lazyLoadingEnabled" value="true" /> </settings> 但发现还是懒加载无效,其实可能在你的代码里有tostring,equal等默认方法触发了懒加载调用,可以通过添加一个配置项解决问题,使用下面的配置 <settings> <setting name="aggressiveLazyLoading" value="false" /> <setting name="lazyLoadingEnabled" value="true" /> <setting name="lazyLoadTriggerMethods" value=""/> </settings> 说明: lazyLoadTriggerMethods : Specifies which Object's methods trigger a lazy load, 指定触发懒加载的方法名,用逗号分隔, 默认值:equals,clone,hashCode,toString
mybatis写sql语句时会看到#{}, ${}的写法,有什么区别呢?
1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。
2. $将传入的数据直接显示生成在sql中。如:select * from ${table};
3. #方式能够很大程度防止sql注入。
4.$方式无法防止Sql注入。
5.$方式一般用于传入数据库对象,例如传入表名,order by、like 语句只能用${}了,用#{}会多个’ ‘导致sql语句失效
6.一般能用#的就别用$.