c# SQL跨数据库事务问题。

c# SQL跨数据库事务问题。,第1张

数据库建同义词 ,可以不需要 跨数据库 这样插入的。

以下示例首次创建将在此后的示例中使用的同义词。

USE tempdb

GO

CREATE SYNONYM MyAddressType

FOR AdventureWorks.Person.AddressType

GO

以下示例将行插入到由 MyAddressType 同义词引用的基表。

USE tempdb

GO

INSERT INTO MyAddressType (Name)

VALUES ('Test')

GO

1.使用注解的方式

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:context="http://www.springframework.org/schema/context"

xmlns:tx="http://www.springframework.org/schema/tx"

xsi:schemaLocation="

http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context-3.0.xsd

http://www.springframework.org/schema/tx

http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">

<!-- 使用annotation定义数据库事务,这样可以在类或方法中直接使用@Transactional注解来声明事务 -->

<tx:annotation-driven transaction-manager="transactionManager" />

</beans>

2.使用事务管理器来管理

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:jee="http://www.springframework.org/schema/jee"

xmlns:aop="http://www.springframework.org/schema/aop"

xmlns:tx="http://www.springframework.org/schema/tx"

xmlns:context="http://www.springframework.org/schema/context"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-3.1.xsd

http://www.springframework.org/schema/aop

http://www.springframework.org/schema/aop/spring-aop-3.1.xsd

http://www.springframework.org/schema/tx

http://www.springframework.org/schema/tx/spring-tx-3.1.xsd

http://www.springframework.org/schema/jee

http://www.springframework.org/schema/jee/spring-jee-3.1.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context-3.1.xsd">

<bean id="transactionManager"

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

<property name="dataSource" ref="dataSource" />

</bean>

<aop:config>

<!-- 切入点指明了在执行com.zxt.service包中的所有方法时产生事务拦截 *** 作 -->

<aop:pointcut id="daoMethods"

expression="execution(* com.zxt.service.*.*(..))" />

<!-- 定义了将采用何种拦截 *** 作,这里引用到 txAdvice -->

<aop:advisor advice-ref="txAdvice" pointcut-ref="daoMethods" />

</aop:config>

<!-- 事务通知 *** 作,使用的事务管理器引用自transactionManager -->

<tx:advice id="txAdvice" transaction-manager="transactionManager">

<tx:attributes>

<!-- 指定哪些方法需要加入事务 -->

<tx:method name="save*" propagation="REQUIRED" />

<tx:method name="delete*" propagation="REQUIRED" />

<tx:method name="update*" propagation="REQUIRED" />

<!-- read-only="true":其余方法只读格式,加强其安全性 -->

<tx:method name="*" read-only="true" propagation="NOT_SUPPORTED" />

</tx:attributes>

</tx:advice>

</beans>


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9927958.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存