分享我的开源项目-spring+mybatis实现读写分离

阅读更多
先吐槽下博客园,每天都推荐水帖不说,正经的分享技术的博客还他妈的不让上首页,我在那里投入了那么多汗水,什么垃圾东西。

spring+ibatis实现读写分离

特点
无缝结合spring+ibatis,对于程序员来说,是透明的
除了修改配置信息之外,程序的代码不需要修改任何东西
支持spring的容器事务

规则:

基于spring配置的容器事务
读写事务到主库
只读事务到从库
如果没有配置事务,更新语句全部到主库,查询语句均衡到从库
源码地址
qq讨论群:261502547
快速入门
maven依赖

    org.springmore
    springmore-core
    1.0.0

1
2
3
4
5
dataSource配置(applicationContext.xml中)


    xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    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.0.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-3.0.xsd
        ">
   
   
       
            com.mysql.jdbc.Driver
       

       
            jdbc:mysql://192.168.1.246:3306/db1
       

       
            ysb
       

       
            ysb
       

       
            20
       

       
            20
       

       
            200
       

       
            255000
       

   


   
       
            com.mysql.jdbc.Driver
       

       
            jdbc:mysql://192.168.1.246:3306/db2
       

       
            ysb
       

       
            ysb
       

       
            20
       

       
            20
       

       
            200
       

       
            255000
       

   


   
       
            com.mysql.jdbc.Driver
       

       
            jdbc:mysql://192.168.1.246:3306/db3
       

       
            ysb
       

       
            ysb
       

       
            20
       

       
            20
       

       
            200
       

       
            255000
       

   


   
            
       
           
               
               
           
        
       

   


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
整合mybatis配置(applicationContext.xml中)

   
   
       
       
   

   
       
   


   
       
   

1
2
3
4
5
6
7
8
9
10
11
12
事务配置(applicationContext.xml中)

   
            class="org.springmore.core.datasource.DynamicDataSourceTransactionManager">
       
   

   
            proxy-target-class="true" />       

   
   
       
                            rollback-for="Exception" />
                            rollback-for="Exception" />
                            rollback-for="Exception" />
                            rollback-for="Exception" />
           
           
           
       

   

   
   
       
       
   

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
dao代码示例:

@Repository("UserMapperImpl")
public class UserMapperImpl implements UserMapper{

    @Autowired
    private DynamicSqlSessionTemplate sqlSessionTemplate;

    //从库
    public List selectByUserNameAndPwd(User user) {
        return sqlSessionTemplate.selectList("selectByUserNameAndPwd", user);
    }

    //主库
    public void insert(User user) {
        sqlSessionTemplate.insert("insert", user);     
    }
}

你可能感兴趣的:(企业应用,Spring,读写分离)