<bean id="dataSource1" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/db1" /> <property name="username" value="username1" /> <property name="password" value="password1" /> </bean> <bean id="dataSource2" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/db2" /> <property name="username" value="username2" /> <property name="password" value="password2" /> </bean> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource1" /> </bean> <tx:annotation-driven transaction-manager="transactionManager" /> <bean id="userService" class="com.example.UserService"> <property name="userDao" ref="userDao" /> </bean> <bean id="userDao" class="com.example.UserDao"> <property name="dataSource" ref="dataSource2" /> </bean> @Service public class UserService { @Autowired private UserDao userDao; @Transactional public void transferMoney(int fromAccountId, int toAccountId, int amount) { userDao.withdraw(fromAccountId, amount); userDao.deposit(toAccountId, amount); } } @Repository public class UserDao { @Autowired private JdbcTemplate jdbcTemplate; public void withdraw(int accountId, int amount) { String sql = "UPDATE account SET balance = balance - ? WHERE id = ?"; jdbcTemplate.update(sql, amount, accountId); } public void deposit(int accountId, int amount) { String sql = "UPDATE account SET balance = balance + ? WHERE id = ?"; jdbcTemplate.update(sql, amount, accountId); } }


上一篇:
下一篇:
切换中文