首页 > 解决方案 > 在 Springboot 中可以使用 MyBatis 进行动态查询吗?

问题描述

基本上我想主要在两个不同的数据库服务器(PostgresSQL 和 SQL Server)中运行我的应用程序,并且我各自的查询在语法上都不同。我想让它更有活力。因此,当时位于我本地的 PostgresSQL 服务器将加载那些 PG 查询(即我的LDEV环境)并加载Non LDEV.

我正在尝试以下方式,但现在遇到了重大障碍。

我的服务类

class Service{
   @Autowired
   private MyBatisMapper mMapper;

   public List<Object> getMostTwoRecordsByName(String name){
     return mMapper.getyName(name);
   }
}

MyBatis 映射器

public class MyBatisMapper {
    @Select("SELECT * FROM dev.tTable where name=#{name} limit 2") // PostgresSQL Query
    @Select("SELECT top(2)* FROM where name=#{name} dev.tTable ")  // SQL ServerQuery
    @ResultType(String.class)
    List<String> getyName(@Param(value = "name")String name);
}

我曾尝试将其作为内容,但我无法动态填充Environment特定的查询。

在我正在使用的本地PostgreSQL环境中,我的其他环境是SQL Server.

有什么办法可以解决这个问题吗?提前致谢 !!

标签: spring-bootenvironmentspring-mybatis

解决方案


推荐阅读