JAVA jdbcTemplate更改数据库,如何创建新的连接,把值赋给jdbcTemplate。

jdbcTemplate更改数据库,如何创建新的连接,把值赋给jdbcTemplate。我是新手,实在是不会,跪求答案... jdbcTemplate更改数据库,如何创建新的连接,把值赋给jdbcTemplate。我是新手,实在是不会,跪求答案 展开
 我来答
armslave88
2015-02-27 · TA获得超过416个赞
知道小有建树答主
回答量:535
采纳率:100%
帮助的人:460万
展开全部
<beans>

<bean id="dataSource"

class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">

<property name="driverClassName">

<value>net.sourceforge.jtds.jdbc.Driver</value>

</property>

<property name="url">

<value>jdbc:jtds:sqlserver://127.0.0.1:1433/Sample</value>

</property>

<property name="username">

<value>test</value>

</property>

<property name="password">

<value>baidu</value>

</property>

</bean>

<bean id="transactionManager"

class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

<property name="dataSource">

<ref local="dataSource" />

</property>

</bean>

<bean id="userDAO" class="net.xiaxin.dao.UserDAO">

<property name="dataSource">

<ref local="dataSource" />

</property>

<property name="transactionManager">

<ref local="transactionManager" />

</property>

</bean>

</beans>

配置中包含了三个节点:

Ø dataSource

这里我们采用了apache dhcp组件提供的DataSource实现,并为其配置了JDBC驱动、数据库URL、用户名和密码等参数。

Ø transactionManager

针对JDBC DataSource类型的数据源,我们选用了DataSourceTransactionManager

作为事务管理组件。

如果需要使用基于容器的数据源(JNDI),我们可以采用如下配置:

<bean id="dataSource"

class="org.springframework.jndi.JndiObjectFactoryBean">

<property name="jndiName">

<value>jdbc/sample</value>

</property>

</bean>

<bean id="transactionManager"

class="org.springframework.transaction.jta.JtaTransactionManager"/>

Ø userDAO

申明了一个UserDAO Bean,并为其指定了dataSource和

transactionManger资源。

UserDAO对应的代码如下:

public class UserDAO {

private DataSource dataSource;

private PlatformTransactionManager transactionManager;

public PlatformTransactionManager getTransactionManager() {

return transactionManager;

}

public void setTransactionManager(PlatformTransactionManager

transactionManager) {

this.transactionManager = transactionManager;

}

public DataSource executeTestSource() {

return dataSource;

}

public void setDataSource(DataSource dataSource) {

this.dataSource = dataSource;

}

public void insertUser() {

TransactionTemplate tt =new TransactionTemplate(getTransactionManager());

tt.execute(new TransactionCallback() {

public Object doInTransaction(TransactionStatus status) {

JdbcTemplate jt = new JdbcTemplate(executeTestSource());

jt.update(

"insert into users (username) values ('xiaxin');");

jt.update(

"insert into users (id,username) values(2,

'erica');");

return null;

}

});

}

}

可以看到,在insertUser方法中,我们引入了一个新的模板类:org.springframework.transaction.support.TransactionTemplate。 TransactionTemplate封装了事务管理的功能,包括异常时的事务回滚,以及操作成功后的事务提交。和JdbcTemplate一样,它使得我们无需在琐碎的try/catch/finally代码中徘徊。

在doInTransaction中进行的操作,如果抛出未捕获异常将被自动回滚,如果成功执行,则将被自动提交。
更多追问追答
追问
首先谢谢你。项目是这样的,JdbcTemplate与原来的数据库连接,现在我更改了url,想要重新连接数据库,因为JdbcTemplate是全局变量,所以要把新的连接赋给它。这个地方我不会。
追答
你的数据库配置文件在哪里?是不是单独存放的,如果是改url就行了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式