2011-04-29 45 views
1

我只是想知道如何使用MyBatis的主/從MySQL複製數據庫。 JDBC提供com.mysql.jdbc.ReplicationDriver(見here),但我無法找出我可以使用類似的事情,包括所有的良好特性我可以配置(roundRobinLoadBalanceautoReconnect的,...)在MyBatis的。使用MySQL複製(主/從)與MyBatis

目前我在MyBatis的配置我沒有複製的數據庫是這樣的:

<environments default="development"> 
    <environment id="development"> 
     <transactionManager type="JDBC" /> 
     <dataSource type="POOLED"> 
      <property name="driver" value="com.mysql.jdbc.Driver" /> 
      <property name="url" 
       value="jdbc:mysql://localhost:3306/database" /> 
      <property name="username" value="root" /> 
      <property name="password" value="" /> 
     </dataSource> 
    </environment> 
    <environment id="production"> 
     <transactionManager type="JDBC" /> 
     <dataSource type="POOLED"> 
      <property name="driver" value="com.mysql.jdbc.Driver" /> 
      <property name="url" 
       value="jdbc:mysql://xxx:3306/database" /> 
      <property name="username" value="production" /> 
      <property name="password" value="" /> 
     </dataSource> 
    </environment> 
</environments> 

任何人都有一個對我一個提示?

感謝您的幫助。

丹尼爾

+0

你有沒有試過在'''中使用'ReplicationDriver'? – 2011-04-29 15:40:03

回答

1

另一種可能的答案

如果你發現,你的XML中的驅動程序設置的屬性也是常見的屬性進行設置,並傳遞到JDBC。所以,如果MyBatis剛把它們傳給了驅動程序,我也不會感到驚訝。所以也許試試這個:

<environments default="development"> 
    <environment id="development"> 
     <transactionManager type="JDBC" /> 
     <dataSource type="POOLED"> 
      <!-- Just use ReplicationDriver --> 
      <property name="driver" value="com.mysql.jdbc.ReplicationDriver" /> 
      <property name="url" 
       value="jdbc:mysql://localhost:3306/database" /> 
      <property name="autoReconnect" value="true" /> 
      <property name="roundRobinLoadBalance" value="true" /> 
      <property name="username" value="root" /> 
      <property name="password" value="" /> 
     </dataSource> 
    </environment> 
    <environment id="production"> 
     <transactionManager type="JDBC" /> 
     <dataSource type="POOLED"> 
      <!-- Just use ReplicationDriver --> 
      <property name="driver" value="com.mysql.jdbc.ReplicationDriver" /> 
      <property name="url" 
       value="jdbc:mysql://xxx:3306/database" /> 
      <property name="autoReconnect" value="true" /> 
      <property name="roundRobinLoadBalance" value="true" /> 
      <property name="username" value="production" /> 
      <property name="password" value="" /> 
     </dataSource> 
    </environment> 
</environments> 
+0

會試試這個。謝謝。 – High6 2011-04-30 07:28:19

+0

作爲URL我也選擇了一個有效的複製網址,它工作。例如。 'jdbc:mysql:replication:// master,slave1,slave2/database' – High6 2011-05-04 14:34:43

+0

太棒了。我很高興它的工作。這是你使用的具體網址嗎?如果是這樣,我會編輯我的答案。 – Dave 2011-05-04 15:02:02