我正在做一个项目,在这个项目中我们使用了在bean中声明的spring jdbc模板对象。我想创建一个jdbc模板对象来连接到另一个数据库,并在一些处理之后关闭该连接。我需要jdbc模板对象,因为我们在DAO中的所有方法都是将jdbc模板作为参数来执行数据库操作。我不能在spring bean中声明另一个db连接,因为每当调用该服务时,我只需要连接到第二个db进行一次处理。因此,我必须在java代码中设置jdbc模板连接,并将该对象发送到DAO方法,以便在另一个DB中执行一些处理。
请帮助我在java代码中创建jdbc模板对象所需的代码,以便我可以连接到数据库时,只有当我的服务被调用,然后关闭连接。
发布于 2016-02-16 13:11:32
任何地方,您需要为您的一次性访问数据库的JdbcTemplate。您可以执行以下代码。每个数据库供应商都有自己特定的数据源实现,您可以使用这些实现。
对于Derby,针对MySQL、com.mysql.jdbc.jdbc2.optional.MysqlDataSource.的org.apache.derby.jdbc.ClientDataSource
例如mysql数据库
DataSource dataSource = new com.mysql.jdbc.jdbc2.optional.MysqlDataSource();
// Initialize the datasource with host, username, password
JdbcTemplate template = JdbcTemplate(dataSource);
// Use JdbcTemplate to access/modify database发布于 2016-02-16 14:06:05
您只需在您的上下文配置中定义另一个JdbcTemplate,并在您的服务方法中自动创建它:
<bean id="myJdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="myDatasource" />
</bean>
<bean id="myDatasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
</bean>在您的服务类中注入以下代码:
public class MyServiceClassImpl implements MyServiceClass {
@Autowired
@Qualifier("myJdbcTemplate") //if you have other defined JdbcTemplates
private JdbcTemplate myJdbcTemplate;
@Autowired
private MyDao dao;
public void myMethodThatCallsDao(){
dao.callMethod(myJdbcTemplate);
}
}希望这能有所帮助。
https://stackoverflow.com/questions/35424106
复制相似问题