我正试图将spring
外部化SQL语句用于https://stackoverflow.com/a/24141382/1194415。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<entry key="SQL_MAX_ID">
<![CDATA[
SELECT MAX(id) FROM mytable
]]>
</entry>
</properties>
问题:当有多个sql语句时,最好只定义mytable
一次,然后将其称为某种变量。
这可以在一个简单的属性文件中吗?
我按如下方式加载文件:
@Bean
public PropertiesFactoryBean sql() {
PropertiesFactoryBean bean = new PropertiesFactoryBean();
bean.setLocation(new ClassPathResource("sql.xml"));
return bean;
}
答案 0 :(得分:0)
在spring项目中存储属性的推荐方法是在src / main / resources下的属性文件application.properties文件中使用属性文件,并在那里定义属性
table=mytable
然后使用JSTL在xml中访问它
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<entry key="SQL_MAX_ID">
<![CDATA[
SELECT MAX(id) FROM ${table}
]]>
</entry>
</properties>