我只是想知道如何在MyBatis中使用主/从MySQL复制数据库。JDBC提供了一个com.mysql.jdbc.ReplicationDriver(参见here),但是我无法找到在哪里可以使用类似的东西,包括我可以在MyBatis中配置的所有好的属性(roundRobinLoadBalance、autoReconnect,…)。
目前,我已经在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>

有人给我提示吗?
谢谢你的帮助。
丹尼尔

最佳答案

另一个可能的答案
如果您注意到,在xml中为驱动程序设置的属性也是公共属性集,并传递给jdbc。所以,如果迈巴蒂斯只是把它们带到司机面前,我一点也不奇怪。所以不妨试试这个:

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

关于java - 在MyBatis上使用MySQL复制(主/从),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5834046/

10-11 10:37