2011-04-29 8 views
1

Je me demande simplement comment utiliser une base de données de réplication MySQL maître/esclave avec MyBatis. JDBC offre un com.mysql.jdbc.ReplicationDriver (voir here), mais je ne pouvais pas savoir où je peux utiliser des choses similaires, y compris toutes les bonnes propriétés que je peux configurer (roundRobinLoadBalance, autoReconnect, ...) dans MyBatis.Utilisation de la réplication MySQL (maître/esclave) avec MyBatis

Actuellement, j'ai configuré ma base de données none répliqué dans mybatis comme ceci:

<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> 

Quelqu'un at-il un pour moi un soupçon?

Merci pour votre aide.

Daniel

+0

Avez-vous essayé d'utiliser 'ReplicationDriver' dans' '? –

Répondre

1

UN AUTRE REPONSE

Si vous remarquez, les propriétés que vous configurez dans le fichier XML pour le pilote sont également des propriétés communes définies et transmises à Jdbc. Donc, je ne serais pas surpris si MyBatis ne faisait que les prendre et les passer directement dans le pilote. Alors peut-être essayer ceci:

<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

Je vais essayer ça. Merci. – High6

+0

Comme URL j'ai également choisi une URL de réplication valide et cela a fonctionné. Par exemple. 'jdbc: mysql: réplication: // maître, esclave1, esclave2/base de données' – High6

+0

Génial. Je suis content que ça a marché. Est-ce l'URL spécifique que vous avez utilisée? Si c'est le cas, je vais modifier ma réponse. – Dave