将整个sql查询作为参数传递到MyBatis中的映射器中

时间:2017-08-16 15:03:27

标签: java sql mybatis

我开始使用带注释的MyBatis,我试图在这样的映射器中传递整个查询:

public interface Mapper {   

    @Select("#{sql}")
    public HashMap<String,String> getResult(String sql);    

}

这就是我调用方法的方法:

String sql = "select * from table";
List<Object> list = session.selectList("getResult",sql);

当我执行程序时,我遇到了这个例外:

 org.apache.ibatis.exceptions.PersistenceException:
Error querying database.  Cause: org.apache.ibatis.type.TypeException: Error setting null for parameter #1 with JdbcType OTHER . Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property. Cause: java.sql.SQLException: Invalid column type: 1111 

1 个答案:

答案 0 :(得分:0)

你不能,因为sql字符串不是&#34; sql参数&#34;!相反,您可以使用此解决方案:How to run arbitrary sql with mybatis?