MySQL 读写分离 使用驱动com.mysql.jdbc.ReplicationDriver
说明文档:http://dev.mysql.com/doc/refman/5.1/en/connector-j-reference-replication-connection.html
代码例子:
1 import java.sql.Connection; 2 import java.sql.ResultSet; 3 import java.util.Properties; 4 5 import com.mysql.jdbc.ReplicationDriver; 6 7 public class ReplicationDriverDemo { 8 9 public static void main(String[] args) throws Exception { 10 ReplicationDriver driver = new ReplicationDriver(); 11 12 Properties props = new Properties(); 13 14 // We want this for failover on the slaves 15 props.put("autoReconnect", "true"); 16 17 // We want to load balance between the slaves 18 props.put("roundRobinLoadBalance", "true"); 19 20 props.put("user", "foo"); 21 props.put("password", "bar"); 22 23 // 24 // Looks like a normal MySQL JDBC url, with a 25 // comma-separated list of hosts, the first 26 // being the 'master', the rest being any number 27 // of slaves that the driver will load balance against 28 // 29 30 Connection conn = 31 driver.connect("jdbc:mysql:replication://master,slave1,slave2,slave3/test", 32 props); 33 34 // 35 // Perform read/write work on the master 36 // by setting the read-only flag to "false" 37 // 38 39 conn.setReadOnly(false); 40 conn.setAutoCommit(false); 41 conn.createStatement().executeUpdate("UPDATE some_table ...."); 42 conn.commit(); 43 44 // 45 // Now, do a query from a slave, the driver automatically picks one 46 // from the list 47 // 48 49 conn.setReadOnly(true); 50 51 ResultSet rs = 52 conn.createStatement().executeQuery("SELECT a,b FROM alt_table"); 53 54 ....... 55 } 56 }
来自:http://www.cnblogs.com/taven/archive/2013/04/24/3040489.html