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

时间:2015-11-12 13:08:10

标签: java spring mybatis spring-mybatis

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

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

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

在上面的文件中想要decalare变量让我们说
pName = XYZ

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

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

如果有任何其他解决方案,我们怎么可能呢?

2 个答案:

答案 0 :(得分:2)

访问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>

在mapper 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

答案 1 :(得分:0)

你可以这样做 - 1.在mybatis-config.xml文件中添加以下代码行

<properties resource="path/to/config.properties" />

然后,您应该能够在映射器文件中以${keyName}访问所有密钥。

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