spring jdbc用配置声明事务处理

sxlcom 2008-11-20 10:35:39
本人有一个问题是对spring jdbc用配置声明事务处理:以下是我的XML(spring applicationcontext.xml)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName"
value="oracle.jdbc.driver.OracleDriver">
</property>
<property name="url"
value="jdbc:oracle:thin:@192.168.1.200:1521:orajy">
</property>
<property name="username" value="db_wwsb"></property>
<property name="password" value="db_wwsb"></property>
</bean>

<!-- database 数据库相关的接口和实现类 -->
<bean id="UserDAO" class="com.dserves.dao.UserDAOImpl">
<property name="dataSource" ref="dataSource" />
</bean>

<bean id="HanterDAO" class="com.dserves.dao.HanterDAOImpl">
<property name="dataSource" ref="dataSource" />
</bean>

<!-- end-->


<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource">
<ref bean="dataSource" />
</property>
</bean>

<bean id="UserDAOProxy"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
<property name="target">
<ref local="UserDAO" />
</property>
<property name="transactionAttributes">
<props>
<prop key="insert*">PROPAGATION_REQUIRED,-DataAccessException</prop>
<prop key="update*">PROPAGATION_REQUIRED,-DataAccessException</prop>
<prop key="delete*">PROPAGATION_REQUIRED,-DataAccessException</prop>
<prop key="*">PROPAGATION_REQUIRED,-DataAccessException</prop>
</props>
</property>
</bean>


<bean id="HanterDAOProxy"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
<property name="target">
<ref local="HanterDAO" />
</property>
<property name="transactionAttributes">
<props>
<prop key="insert*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="delete*">PROPAGATION_REQUIRED</prop>
<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>



</beans>

--------------------------------------
以下是我的方法:
public void updateHanter(String code) throws DataAccessException {
try {
getJdbcTemplate().update(
"update DS_HASTEN set title='MMMMM' where code=?",
new Object[] { code });
getJdbcTemplate().update(
"AAAA");

} catch (DataAccessException e) {

e.printStackTrace();
}
}
但是虽然抛异常了还是这一个更新了没有实现回滚为什么??????
...全文
795 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
无限寂寞 2012-02-22
  • 打赏
  • 举报
回复
你配置了声明势事务管理,所以不需要tyr cathce了,他会自动管理实务
hnlzt 2012-01-15
  • 打赏
  • 举报
回复
利用spring事务处理就不需要try catch了
悬崖边冥思 2011-04-18
  • 打赏
  • 举报
回复
我也遇到了同样的问题,求解释~
sxlcom 2008-11-20
  • 打赏
  • 举报
回复
异常,但是你catch了,系统认为你已经处理了这个异常,所以不会回滚的。
个人理解。
-----------------------------------------------------
我不try.....catch也是这样没有回滚.
老紫竹 2008-11-20
  • 打赏
  • 举报
回复
异常,但是你catch了,系统认为你已经处理了这个异常,所以不会回滚的。
个人理解。
jianpc 2008-11-20
  • 打赏
  • 举报
回复
try catch 是编程式事务管理!既然你都已经捕获异常了,为什么不在catch块里面加上回滚的代码呢?

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧