当前位置: 首页 > 知识库问答 >
问题:

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

蒋鸿文
2023-03-14

我正在使用MyBatis 3.2.3和Spring 3.2.5以及基于注释的配置。

我有几个POJO调用生成的映射器接口来执行SQL查询。
是否可以检索映射器正在执行的SQL语句?如果我使用“旧”方法,我可以理解如何做到这一点,其中我有扩展SqlMapClientDaoSupport的DAO,但现在我只使用映射器接口,我不确定如何获得对生成的SQL的引用。

共有1个答案

屈晨
2023-03-14

实际上,在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());
 类似资料:
  • 问题内容: 假设我有一个模块: 我想测试模块并检查它是否在没有类和字段但直接从注入器获取值的带注释的字段中注入正确的值: 问题答案:

  • 我正在尝试使用xml配置在mybatis中配置HikariCp 我没有找到任何在线文章展示如何通过xml配置在hikarIDataSource对象中设置hikariConfig对象。 使用Spring我可以为hikariConfig创建一个bean,并将其作为hikariDataSource对象中的参数传递,但是这里我没有使用Spring,所以需要找到一种使用XML的方法。 如果没有hikariC

  • 问题内容: 似乎mmap接口仅支持readline()。如果我尝试遍历对象,则会得到字符而不是完整的行。 逐行读取mmap文件的“ pythonic”方法是什么? 问题答案: 遍历an行的最简洁方法是 请注意,在Python 3的前哨参数必须是类型的,而在Python 2它需要一个(即,而不是)。

  • 主要内容:XML实现映射器,注解实现映射器,MyBatis 映射器的主要元素映射器是 MyBatis 中最重要的文件,文件中包含一组 SQL 语句(例如查询、添加、删除、修改),这些语句称为映射语句或映射 SQL 语句。 映射器由 Java 接口和 XML 文件(或注解)共同组成,它的作用如下。 定义参数类型 配置缓存 提供 SQL 语句和动态 SQL 定义查询结果和 POJO 的映射关系 映射器有以下两种实现方式。 通过 XML 文件方式实现,比如我们在 mybatis

  • 我正在使用MapStruct和maven,如文档中所述(http://mapstruct.org/documentation/stable/reference/html/). 现在,我想将生成的映射器类的位置从目标文件夹更改为源文件夹。我已经阅读了如何更改mapstruct生成的类location和M2E,以及如何将maven生成的源文件夹作为eclipse源文件夹,并通过使用maven处理器插件

  • 问题内容: 我有一个包含一些字段的Bean,并且其中两个不打算由hibernate模式映射(errorStatus和operationResultMessage)。我如何(通过注释)告诉Hibernate我不想映射这些字段? Bean中的映射表没有字段:errorStatus和operationResultMessage 提前致谢。 代码如下所示: **吸气剂和二传手被忽略! 问题答案: 使用注释