1

我只是想知道如何将主/从 MySQL 复制数据库与 MyBatis 一起使用。JDBC 提供了一个com.mysql.jdbc.ReplicationDriver(见这里),但我找不到在哪里可以使用类似的东西,包括我可以在 MyBatis 中配置的所有不错的属性(roundRobinLoadBalanceautoReconnect、...)。

目前我已经在 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>

有人给我提示吗?

谢谢你的帮助。

丹尼尔

4

1 回答 1

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>
于 2011-04-29T15:58:32.470 回答