明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

分享一個(gè)MySQL ReplicationDriver類代碼

[摘要]$velocityCount在 MySQL 復(fù)制的環(huán)境中,要通過(guò) JDBC 連接這個(gè) MySQL 集群,就必須使用 ReplicationDriver 這個(gè)類來(lái)替換原有的 com.mysql.jdbc.Driver 。不過(guò)該 Driver 在連接池環(huán)境下無(wú)效,要通過(guò)連接池連接 MySQL 集群可使...

在 MySQL 復(fù)制的環(huán)境中,要通過(guò) JDBC 連接這個(gè) MySQL 集群,就必須使用 ReplicationDriver 這個(gè)類來(lái)替換原有的 com.mysql.jdbc.Driver 。不過(guò)該 Driver 在連接池環(huán)境下無(wú)效,要通過(guò)連接池連接 MySQL 集群可使用 lbpool。

public static void main(String[] args) throws Exception {
    ReplicationDriver driver = new ReplicationDriver();
    Properties props = new Properties();
    // We want this for failover on the slaves
    props.put("autoReconnect", "true");
 // We want to load balance between the slaves
    props.put("roundRobinLoadBalance", "true");
    props.put("user", "foo");
    props.put("password", "bar");
    //
    // Looks like a normal MySQL JDBC url, with a
    // comma-separated list of hosts, the first 
    // being the 'master', the rest being any number
    // of slaves that the driver will load balance against
    //
    Connection conn =
        driver.connect("jdbc:mysql://master,slave1,slave2,slave3/test",
            props);
    //
    // Perform read/write work on the master
    // by setting the read-only flag to "false"
    //
  //這個(gè)節(jié)點(diǎn)應(yīng)該是通過(guò)spring的事務(wù)管理來(lái)設(shè)置,同時(shí)這個(gè)conn對(duì)象應(yīng)該不是一個(gè)真正的connection,
	    //而是一個(gè)代理類,通過(guò)設(shè)置readonly,代理類會(huì)去使用不同的connection,
	    //那么問(wèn)題是它該代理類使用的connection是哪里取的,抑或說(shuō)難道它每次都會(huì)新開(kāi)一個(gè)connection?,需要看源代碼
conn.setReadOnly(false);
conn.setAutoCommit(false);
    conn.createStatement().executeUpdate("UPDATE some_table ....");
    conn.commit();
 //
    // Now, do a query from a slave, the driver automatically picks one
    // from the list
    //
conn.setReadOnly(true);
  ResultSet rs = 
      conn.createStatement().executeQuery("SELECT a,b FROM alt_table");
     .......
  }

以上就是分享一個(gè)MySQL ReplicationDriver類代碼的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!


學(xué)習(xí)教程快速掌握從入門到精通的SQL知識(shí)。