ibatis 在mysql上面的调试遇到的问题集锦

(1)  Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Every derived table must have its own alias
 表明嵌套的select语句生成的结果集必须被括号包围,并且声明别名。

(2) 动态标签dynamic

动态的一元标签dynamic隐式地具有值为true的removeFirstPrepend属性,那么在其所包含的内容体的第一个条件所含有的prepend属性值会被忽略,但是需要写成<dynamic prepend=" WHERE ">, 而不能写成WHERE <dynamic>, 并且如果所嵌套的内容体不含prepend属性的条件,不会被计算在内。

示例1: 正确

<dynamic prepend=" WHERE " >
  <isNotEmpty prepend=" AND " property="x">
     x = #x#
  </isNotEmpty>

  <isNotEmpty prepend=" AND " property="y">
     y = #y#
  </isNotEmpty>

</dynamic>

示例2: 错, 会生成where and x=?的错误SQL语句

WHERE

<dynamic >
  <isNotEmpty prepend=" AND " property="x">
     x = #x#
  </isNotEmpty>

    <isNotEmpty prepend=" AND " property="y">
     y = #y#
  </isNotEmpty>

</dynamic>

示例3: 错, 会生成where x=? y=? 的错误SQL语句

<dynamic prepend=" WHERE " >

  <isNotEmpty property="x">
     x = #x#
  </isNotEmpty>

    <isNotEmpty prepend=" AND " property="y">
     y = #y#
  </isNotEmpty>

</dynamic>

猜你喜欢

转载自reddog.iteye.com/blog/1097859
今日推荐