Domanda

Mi chiedo solo come posso usare un database di replica master / slave MySQL con MyBatis. JDBC offre una com.mysql.jdbc.ReplicationDriver (vedi qui ), ma non ho potuto scoprire dove posso usare le cose simili tra cui tutte le proprietà piacevoli posso configurare ( roundRobinLoadBalance , Autoreconnect , ...) in MyBatis .

Al momento ho configurato il mio database nessuno-replicato in MyBatis in questo modo:

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

Qualcuno ha un un suggerimento per me?

Grazie per il vostro aiuto.

Daniel

È stato utile?

Soluzione

Un'altra risposta POSSIBILE

Se si nota, le proprietà si sta impostando in XML per il conducente sono anche le proprietà comuni definiti e passati a JDBC. Quindi, io non sarei sorpreso se MyBatis stava solo prendendo loro e passando proprio nel driver. Quindi forse provare questo:

<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>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top