开发者社区> 问答> 正文

我们OceanBase数据库一个应用使用这个JDBC链接字符串,是哪里有问题?

我们OceanBase数据库一个应用使用这个JDBC链接字符串,报错了java.sql.SQLException: isolation level is not supported
jdbc:mysql://${DBSERVICE}/dataopen?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shangha
麻烦看一下,是哪里有问题?我们原来的mysql库有这个配置transaction-isolation = READ-COMMITTED,是不是在ob里要做些什么调整?

展开
收起
真的很搞笑 2023-12-05 21:49:04 109 0
来自:OceanBase
2 条回答
写回答
取消 提交回答
  • OceanBase 数据库默认的隔离级别为读已提交(Read Committed)。
    隔离级别不写 试下呢 ,此回答整理自钉群“[社区]技术答疑群OceanBase”

    2023-12-06 14:27:52
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    从您提供的JDBC链接字符串来看,您正在使用MySQL数据库。在OceanBase数据库中,事务隔离级别(transaction-isolation)的设置与MySQL略有不同。

    在OceanBase数据库中,您可以使用以下事务隔离级别:

    1. READ-UNCOMMITTED
    2. READ-COMMITTED
    3. REPEATABLE-READ
    4. SERIALIZABLE

    而在MySQL中,事务隔离级别有以下几种:

    1. TRANSACTION_NONE
    2. TRANSACTION_READ_UNCOMMITTED
    3. TRANSACTION_READ_COMMITTED
    4. TRANSACTION_REPEATABLE_READ
    5. TRANSACTION_SERIALIZABLE

    因此,您需要将OceanBase数据库中的事务隔离级别更改为MySQL支持的级别。例如,如果您希望使用可重复读(REPEATABLE-READ),则可以将连接字符串更改为:

    
    jdbc:mysql://${DBSERVICE}/dataopen?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&transactionIsolation=REPEATABLE-READ
    

    请注意,这里的transactionIsolation参数是用于设置事务隔离级别的。根据您的需求选择合适的隔离级别,并将其添加到连接字符串中。

    2023-12-06 13:32:55
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
+ 订阅
蚂蚁OceanBase数据库团队,用于OceanBase技术原理、运维经验和案例分享、对外交流。
问答排行榜
最热
最新

相关电子书

更多
DTCC 2022大会集锦《云原生一站式数据库技术与实践》 立即下载
阿里云瑶池数据库精要2022版 立即下载
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载