Guest User

Untitled

a guest
Jan 12th, 2019
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.46 KB | None | 0 0
  1. JTA transaction with multiple data source in Spring
  2. <bean id="parentDataSource"
  3. class="org.springframework.jdbc.datasource.DriverManagerDataSource"
  4. abstract="true">
  5. <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
  6. <property name="username" value="root"/>
  7. </bean>
  8.  
  9. <bean id="firstDataSource" parent="parentDataSource">
  10. <property name="url" value="jdbc:mysql://localhost:3306/test"/>
  11. </bean>
  12.  
  13. <bean id="secondDataSource" parent="parentDataSource">
  14. <property name="url" value="jdbc:mysql://localhost:3306/test2"/>
  15. </bean>
  16.  
  17. <bean id="jtaTransactionManager"
  18. class="org.springframework.transaction.jta.JtaTransactionManager">
  19. </bean>
  20.  
  21. <bean id="customerDAO" class="springapp.datasource.CustomerDAO">
  22. <property name="dataSource">
  23. <ref local="firstDataSource"/>
  24. </property>
  25. <property name="dataSource2">
  26. <ref local="secondDataSource"/>
  27. </property>
  28. <property name="jtaTransactionManager">
  29. <ref local="jtaTransactionManager"/>
  30. </property>
  31. </bean>
  32.  
  33. public class CustomerDAO {
  34. private DataSource dataSource;
  35. private DataSource dataSource2;
  36. private JtaTransactionManager jtaTransactionManager;
  37.  
  38. public DataSource getDataSource2() {
  39. return dataSource2;
  40. }
  41.  
  42. public void setDataSource2(DataSource dataSource2) {
  43. this.dataSource2 = dataSource2;
  44. }
  45.  
  46. public JtaTransactionManager getJtaTransactionManager() {
  47. return jtaTransactionManager;
  48. }
  49.  
  50. public void setJtaTransactionManager(JtaTransactionManager jtaTransactionManager) {
  51. this.jtaTransactionManager = jtaTransactionManager;
  52. }
  53.  
  54. public DataSource getDataSource() {
  55. return dataSource;
  56. }
  57.  
  58. public void setDataSource(DataSource dataSource) {
  59. this.dataSource = dataSource;
  60. }
  61.  
  62. public void insertItem(Item item){
  63.  
  64.  
  65. TransactionTemplate tt = new TransactionTemplate(jtaTransactionManager);
  66. tt.execute(new TransactionCallback<Object>(){
  67. @Override
  68. public Object doInTransaction(TransactionStatus arg0) {
  69. JdbcTemplate jt = new JdbcTemplate(dataSource);
  70. String sql = "insert into item(name,price) values ('aaaa',11);";
  71. jt.setDataSource(dataSource);
  72. jt.update(sql);
  73. sql = "insert into item(name,price) values ('aaaa',12);";
  74. jt.setDataSource(dataSource2);
  75. jt.update(sql);
  76. return null;
  77. }
  78. });
  79. }
  80. }
Add Comment
Please, Sign In to add comment