在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
我在我的项目中使用 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