我正在阅读参考文档 - http://docs.spring.io/spring/docs/2.0.8/reference/jdbc.html使用Spring架构从Web应用程序连接数据库。
这里,代码使用数据源创建一个jdbcTemplate。
public class JdbcCorporateEventDao implements CorporateEventDao {
private JdbcTemplate jdbcTemplate;
public void setDataSource(DataSource dataSource) {
this.jdbcTemplate = new JdbcTemplate(dataSource);
}
// JDBC-backed implementations of the methods on the CorporateEventDao follow...
}
数据源在xml文件中定义 -
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="corporateEventDao" class="com.example.JdbcCorporateEventDao">
<property name="dataSource" ref="dataSource"/>
</bean>
<!-- the DataSource (parameterized for configuration via a PropertyPlaceHolderConfigurer) -->
<bean id="dataSource" destroy-method="close" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
</beans>
我很难理解 -
感谢您的输入。
答案 0 :(得分:2)
例如,如果我将文件命名为datasource.xml并将其存储在 src / main / resources / config 文件夹下:
<import resource="classpath:config/datasource.xml"/>
我想您在询问如何在不同环境下轻松配置数据源。有很多方法 - 我通常在目录中创建一些数据源文件(通常是我上面提到的那个)
datasource.DEV.xml
datasource.QA.xml
datasource.PROD.xml
每个都配置为不同的数据库。然后我通过传入一个环境变量来导入我调用&#34; env&#34;:
<import resource="classpath:config/datasource.${env}.xml"/>
如果要使用Eclipse启动,则可以在&#34; Environment&#34;下的运行配置中指定它。标签
答案 1 :(得分:1)
首先使用更高版本的弹簧(3及以上)有效地使用注释。
在xml文件中添加以下行
<bean id="template" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"/>
</bean>
使用@Repository
注释你的dao类。
并在此课程内使用
@Autowired
JdbcTemplate jdbcTemplate
所以你的课应该是
@Repository
public class JdbcCorporateEventDao implements CorporateEventDao {
@Autowired
private JdbcTemplate jdbcTemplate;
// JDBC-backed implementations of the methods on the CorporateEventDao follow...
}
以后如果你想改变你的数据源,那么只需触摸下面的代码来改变数据源参考
<bean id="template" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"/>
</bean>
此处更改数据源属性的ref="new datasource"
答案 2 :(得分:1)
回答你的第一个问题。
命名只是标准的追随方式。这不具体。,
一般大多使用
application-context.xml,
application-resource.xml
回答你的第二个问题
谈论文件的位置并不局限于任何文件夹。只要在web.xml中定义导入资源属性。
<import resource="yourpath/myxml.xml"/>
还有一件事要说:代码中缺少@Autowired。 migth是没有获得jdbcTemplate的原因。
@Autowired
public void setDataSource(DataSource dataSource) {
this.jdbcTemplate = new JdbcTemplate(dataSource);
}