sharding-jdbc.1.5.0 配置default-data-source无效

发布于 2021-11-29 10:08:02 字数 1729 浏览 828 评论 4

 

数据源配置:

<bean id="dataSource" class="com.qbao.dling.dao.datasource.QbaoDataSource" ><!-- 读写分离配置 -->
   <property name="targetDataSources">
      <map key-type="java.lang.String">
         <entry value-ref="MASTER_TV_DATA_SOURCE" key="MASTER_TV_DATA_SOURCE"></entry>
         <entry value-ref="SLAVE_TV_DATA_SOURCE" key="SLAVE_TV_DATA_SOURCE"></entry>
      </map>
   </property>
   <property name="defaultTargetDataSource" ref="MASTER_TV_DATA_SOURCE" >
   </property>
</bean>

<rdb:strategy id="clockAlgorithm" sharding-columns="user_id" algorithm-class="com.qbao.dling.qbaolive.argorithm.SingleKeyModuloTableShardingAlgorithm" />
<rdb:data-source id="shardingDataSource" >
   <rdb:sharding-rule data-sources="dataSource" default-data-source="dataSource">
      <rdb:table-rules>
         <rdb:table-rule logic-table="td_clock_log" actual-tables="td_clock_log_0${0..9}" table-strategy="clockAlgorithm" />
      </rdb:table-rules>
   </rdb:sharding-rule>
</rdb:data-source>

执行的SQL:

<insert id="add" parameterType="TvShieldInfo">
    <selectKey resultType="long" order="AFTER" keyProperty="id">
        SELECT LAST_INSERT_ID() AS id
    </selectKey>
    INSERT INTO td_broadcast_shield_info
    (user_id,shield_user_id,state,create_time,update_time)
    VALUES(#{userId},#{shieldUserId},#{state},now(),now())
</insert>

应该是SELECT LAST_INSERT_ID() AS id引起的问题。

jdk:1.7

报错信息:

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

剑心龙吟 2021-12-04 15:12:07

同问default-data-source无效。

醉生梦死 2021-12-04 08:28:52

明白,感谢亮哥解答

风透绣罗衣 2021-12-01 02:53:37

没有参与分表的也无法使用主键返回吗?除了订单表和订单详情是分表的。其他表不分表,需要返回id做关联,怎么处理?

拍不死你 2021-11-30 11:03:51

不支持SELECT LAST_INSERT_ID()

使用分表库分表后也不建议在使用MySQL原生的自增主键,这样做不到分布式主键不冲突

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文