首頁 > 資料庫 > mysql教程 > MySQL之-JDBC實作Master Slave的範例程式碼

MySQL之-JDBC實作Master Slave的範例程式碼

黄舟
發布: 2017-03-14 14:47:46
原創
1391 人瀏覽過

今天,帶給大家一段JDBC實作Master Slave的程式碼,好了,不多說了,我們直接上程式碼吧。

具體程式碼如下:

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

104

105

106

107

package com.lyz.test;

 

import java.beans.PropertyVetoException;

import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.SQLException;

 

import com.mchange.v2.c3p0.ComboPooledDataSource;

 

/**

 * Mysql JDBC 实现Master Slave

 *

 * @author liuyazhuang

 * @datetime 2016-11-17

 *

 */

public class ReplicationDriverTest {

    private static final String URL = "jdbc:mysql://127.0.0.1:3306/test1?useUnicode=true&characterEncoding=utf8";

    private static final String DRIVER = "com.mysql.jdbc.Driver";

    /* Master Slave */

    private static final String replicationURL = "jdbc:mysql:replication://localhost:3306,10.2.15.123:3306/test?useUnicode=true&characterEncoding=utf8";

    /* 负载平衡 */

    private static final String loadBalanceURL = "jdbc:mysql:loadbalance://localhost:3306,10.2.15.123:3306/test?useUnicode=true&characterEncoding=utf8";

    private static final String REPLICATION_DRIVER = "com.mysql.jdbc.ReplicationDriver";

 

    public static void main(String[] args) throws SQLException {

        // oneDB();

        // replicationDB(URL);

        // replicationDB(replicationURL);

        replicationDB(loadBalanceURL);

 

    }

 

    public static void replicationDB(String url) throws SQLException {

        ComboPooledDataSource dataSource = new ComboPooledDataSource();

        try {

            dataSource.setDriverClass(REPLICATION_DRIVER);

        } catch (PropertyVetoException e1) {

            e1.printStackTrace();

        }

        dataSource.setJdbcUrl(url);

        dataSource.setMaxPoolSize(10);

        dataSource.setMinPoolSize(10);

        dataSource.setUser("kevin");

        dataSource.setPassword("123456");

        dataSource.setCheckoutTimeout(1000);

        dataSource.setDataSourceName("datasource");

        dataSource.setInitialPoolSize(10);

        try {

            Connection connection = dataSource.getConnection();

            connection.setReadOnly(true);//设置为只读,代理类将会获取Slave数据库连接,否则设置Master连接

            java.sql.PreparedStatement pStatement_ = connection.prepareStatement("SELECT user_id, username, PASSWORD, email  FROM account_0 LIMIT 0,3;");

            ResultSet rs = pStatement_.executeQuery();

            while (rs.next()) {

                System.out.println(rs.getInt(1) + "\t" + rs.getString(2) + "\t" + rs.getString(3) + "\t" + rs.getString(4));

            }

            rs.close();

            pStatement_.close();

            connection.close();

        } catch (SQLException e) {

            e.printStackTrace();

        }

        Connection connection = dataSource.getConnection();

        connection.setReadOnly(false);//设置为只读,代理类将会获取Slave数据库连接,否则设置Master连接

        java.sql.PreparedStatement pStatement_ = connection.prepareStatement("UPDATE account_0 SET  username = 'kevin' ,PASSWORD = 'password' ,email = 'xxxx' WHERE user_id = '1001' ;");

        int row = pStatement_.executeUpdate();

        System.out.println(row);

        pStatement_.close();

        connection.close();

    }

 

    public static void oneDB() throws SQLException {

        ComboPooledDataSource dataSource = new ComboPooledDataSource();

        try {

            dataSource.setDriverClass(DRIVER);

        } catch (PropertyVetoException e1) {

            e1.printStackTrace();

        }

        dataSource.setJdbcUrl(URL);

        dataSource.setMaxPoolSize(10);

        dataSource.setMinPoolSize(10);

        dataSource.setUser("root");

        dataSource.setPassword("123456");

        dataSource.setCheckoutTimeout(1000);

        dataSource.setDataSourceName("datasource00");

        dataSource.setInitialPoolSize(10);

        try {

            Connection connection = dataSource.getConnection();

            java.sql.PreparedStatement pStatement_ = connection.prepareStatement("SELECT * FROM user limit 1");

            ResultSet rs = pStatement_.executeQuery();

            while (rs.next()) {

                System.out.println(rs.getInt(1) + "\t" + rs.getString(2) + "\t" + rs.getString(3) + "\t" + rs.getString(4));

            }

            rs.close();

            pStatement_.close();

            connection.close();

        } catch (SQLException e) {

            e.printStackTrace();

        }

        Connection connection = dataSource.getConnection();

        java.sql.PreparedStatement pStatement_ = connection.prepareStatement("UPDATE user SET   NAME = 'KEVIN-LUAN' , sex = '1' , age = '89' WHERE id = 16 ;");

        int row = pStatement_.executeUpdate();

        System.out.println(row);

        pStatement_.close();

        connection.close();

    }

}

登入後複製

以上是MySQL之-JDBC實作Master Slave的範例程式碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板