在mybatis的Mapper文件中访问变量值

Access Variable value in Mapper File of mybatis

我在我的项目中使用 Spring 和 Mybatis。项目可以 运行 在任何平台上,如 SQL Server Oracle 等

我面临 1 个问题,我想从属性文件、应用程序上下文文件到 Mybatis Mapper 文件访问变量值。

For.eg : ApplicationContext.xml - Spring 文件
config.properties 文件

在上面的文件中想要声明变量可以说
pName = XYZ

我想在 Mybatis Mapper XML 文件中访问这个 pName。

<select id="getValue" parameterType="java.lang.String" >
${pName}
</select>

这怎么可能?如果有任何其他解决方案欢迎。

你可以这样做—— 1. 在您的 mybatis-config.xml 文件

中添加以下代码行
<properties resource="path/to/config.properties" />

那么您应该能够访问映射器文件中的所有键 ${keyName}

参考自 mybatis 文档 - http://mybatis.org/mybatis-3/configuration.html#properties

访问spring方式: 使用

<util:properties id="myPropertyConfigurer" location="classpath:yourpropertiesfile.properties"/>

<context:property-placeholder  properties-ref="myPropertyConfigurer" order="1" ignore-unresolvable="true" />

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="applicationDataSource" />
    <property name="configLocation" value="classpath:sqlMapConfig.xml" />
    <property name="configurationProperties" ref="myPropertyConfigurer"></property>
</bean>

在您的映射器 xml 文件中:

<select id="searchSomeOne" parameterType="map" .....>
        SELECT
        ${pName} AS module
        FROM MY_TABLE
        WHERE
        COL_ONE = #{moduleName} and
        COL_TWO like #{username}
</select>

并在 yourpropertiesfile.properties

中定义 pName=MODULE