package org.dayatang.mysql.jdbc; import java.sql.Connection; import java.sql.ResultSet; import java.util.Properties; public class ReplicationDriverDemo { public static void main(String[] args) throws Exception { GeminiReplicationDriver driver = new GeminiReplicationDriver(); // // 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://192.168.0.239/test", dbProps()); // // Perform read/write work on the master // by setting the read-only flag to "false" // // conn.setReadOnly(false); // conn.setAutoCommit(false); // conn.createStatement().executeUpdate("update cc set name='cc2' where id=1;"); // conn.commit(); // // Now, do a query from a slave, the driver automatically picks one // from the list // conn.setReadOnly(false); ResultSet rs = conn.createStatement().executeQuery("SELECT name FROM cc where id=1"); while(rs.next()) { System.out.println(rs.getString(1)); } } private static Properties dbProps() { 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", "root"); props.put("password", "123456"); return props; } }