我正在使用带有基于注释的配置的Spring 3.2.5的MyBatis 3.2.3。
我有一些POJO调用生成的Mapper接口来执行SQL查询 是否可以检索映射器正在执行的SQL语句?我可以理解如何使用“旧”方法,我有DAO扩展SqlMapClientDaoSupport,但现在我只使用映射器接口,我不知道如何获得对生成的SQL的引用。
任何指示赞赏。
答案 0 :(得分:2)
实际上,可以在不使用插件/拦截器的情况下在Spring配置的应用程序中执行此操作:
SqlSessionFactory s = (SqlSessionFactory) ctx.getBean("sqlSessionFactory");
Configuration configuration = s.getConfiguration();
MappedStatement ms = configuration.getMappedStatement("MyStatementId");
BoundSql boundSql = ms.getBoundSql(parameters); // pass parameters for the SQL statement
System.out.println("SQL" + boundSql.getSql());