Java MyBatis Freemarker 动态 SQL

标签 java mybatis freemarker dynamic-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 注入(inject)和其他类似的问题)?

谢谢, 加布里埃莱

最佳答案

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

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

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

关于Java MyBatis Freemarker 动态 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61470813/

相关文章:

java - 尝试在 freemarker 中创建 min(a,b) 函数失败

java - 强化 : vsprintf: prevented 33-byte write into 32-byte buffer

mysql - MyBatis 迁移 : migrate up causes org. apache.ibatis.jdbc.RuntimeSqlException

java - 无法在 mybatis 查询中连接超过 4k 字符

java - Spring声明式事务管理不起作用

spring - 如何从 src/main/resources 文件夹中读取 Freemarker 模板文件?

struts2 - 使用 struts2 和 freemarker 创建 "yes"和 "no"单选按钮

java - 尝试启动 ZetaSQL 规划器时出错

java - 如何用 Easymock 替换我的实例

java - Java中如何使用Jframe登录成功后显示用户信息[登录表单]