mybatis java.sql.SQLException: 无效的列类型

Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property. Cause: java.sql.SQLException: 无效的列类型

用过mybatis的人一定都遇到过这样的错误吧,网上都说是加上jdbctype就行了。确实可以,但是也太麻烦了,而且说到底,就是mybatis的默认设置太坑了。

我今天在寻找如何用拦截器打印查询语句结果集数量时,偶然看到了这样的信息
mybatis java.sql.SQLException: 无效的列类型
因为下面的LogImpl的值就是我刚刚手动配置的,所以立刻想到了这样改配置文件

  <settings>
   <!-- 
    <setting name="logImpl" value="LOG4J"/>
   -->
    <setting name="logImpl" value="connTest.conn.NbLog"/>
    <setting name="jdbcTypeForNull" value="VARCHAR"/>
  </settings>

测试了一下,确实成功了。再也不用写#{param1,jdbcType=VARCHAR} 这样臃肿的语句了,可以直接#{param1}。

真是意外之喜,只是打印查询结果集数量的方法依旧没找到。。。