首页 > 解决方案 > Java MyBatis Freemarker 动态 SQL

问题描述

我在 Spring Boot 应用程序中使用 MyBatis(带有 Freemarker 驱动程序),使用 @Mapper 和 @Select 注释访问查询。

@Mapper
public interface DataRepository {

    @Lang(FreeMarkerLanguageDriver.class)
    @Select("/sqlMappers/module/findList.ftl")
    public List<DomainDto> findItemsMatchingFilter(
            @Param("entityId") Long entityId,
            @Param("commonSearch") CommonSearch commonSearch);

我有一些特定的查询,我想保存在数据库中并在运行时由 MyBatis 运行(想法是修改查询以动态生成一些 XLSX 报告)。

MyBatis 是否有可能(我想使用它不必担心 sql 注入和其他类似方面)?

谢谢,加布里埃尔

标签: javamybatisfreemarkerdynamic-sql

解决方案


所以,用mybatis-freemarker是不可能的。

我想我会将它保存在具有 freemarker 格式的数据库表中,因此我会将它们作为本机查询执行。

业务需求是创建一个小引擎来对数据库执行自定义查询并将它们导出为 excel 文件。


推荐阅读