如何从注释配置的Mybatis映射器中读取生成的sql语句

时间:2014-01-27 11:23:32

标签: java spring mybatis

我正在使用带有基于注释的配置的Spring 3.2.5的MyBatis 3.2.3。

我有一些POJO调用生成的Mapper接口来执行SQL查询 是否可以检索映射器正在执行的SQL语句?我可以理解如何使用“旧”方法,我有DAO扩展SqlMapClientDaoSupport,但现在我只使用映射器接口,我不知道如何获得对生成的SQL的引用。

任何指示赞赏。

1 个答案:

答案 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());