Pregunta

Me pregunto cómo puedo usar una base de datos de replicación MySQL maestro/esclavo con MyBatis. JDBC ofrece un com.mysql.jdbc.ReplicationDriver (ver aquí), pero no pude averiguar dónde puedo usar cosas similares, incluidas todas las buenas propiedades que puedo configurar (Roundrobinloadbalance, autoreconexión, ...) en mybatis.

Actualmente he configurado mi base de datos no replicada en MyBatis como esta:

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

¿Alguien tiene una pista para mí?

Gracias por tu ayuda.

Daniel

¿Fue útil?

Solución

Otra posible respuesta

Si se da cuenta, las propiedades que está configurando en el XML para el controlador también son propiedades comunes establecidas y pasadas a JDBC. Por lo tanto, no me sorprendería si MyBatis solo los estaba llevando y pasándolos directamente al conductor. Entonces, tal vez intente esto:

<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>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top