从映射器访问属性

时间:2020-03-27 01:32:38

标签: sql-server spring mybatis spring-mybatis

我在SQL Server中有一个链接服务器,因此当我查询某些内容时,它必须是这样的:

SELECT * FROM [SERVERNAME].[DBNAME].[SCHEMA].[TABLE]

现在,我必须使用servername中提供的dbnameschemaapplication.properties来实现对现有项目的查询。

是否可以通过我的Mapper(xml)访问这些属性?

1 个答案:

答案 0 :(得分:1)

您可以使用properties
使用MyBatis-Spring-Boot,您可以在application.properties中以前缀mybatis.configuration.variables. [1]定义属性。

mybatis.configuration.variables.db_servername=YOUR_SERVER_NAME
mybatis.configuration.variables.db_dbname=YOUR_DB_NAME
mybatis.configuration.variables.db_schema=YOUR_SCHEMA

也可以引用在同一application.properties中定义的变量。

mybatis.configuration.variables.db_servername=${servername}
mybatis.configuration.variables.db_dbname=${dbname}
mybatis.configuration.variables.db_schema=${schema}

然后,您可以使用${}在映射器中使用这些变量。

SELECT * FROM [${db_servername}].[${db_dbname}].[${db_schema}].[TABLE]

注意:#{}不起作用。请参见FAQ entry,以了解区别。

[1]文档说前缀是mybatis.configuration-properties.,但是我只是对其进行了测试,因此无法正常工作。不过,这可能是我的错误。我打算在有空余时间时进行调查。