oceanbase驱动包

【 使用环境 】测试环境
【 OB or 其他组件 】oceanbase-client、spring boot、mybatis
【 使用版本 】spring boot 版本 2.2.13.RELEASE、mybatis 版本 3.5.6
【问题描述】
用驱动包oceanbase-client-2.4.0.jar
出现的问题是:方法 resultSet.getString,在没加别名的情况下,获取的c字段,是b表的。
但实际是想要a表的。如果是使用mysql,没有加别名,有相同字段,通常会得到第一张表(即表 a )的 c 字段的值。

驱动包换成oceanbase-client-2.4.11.jar,项目启动不起来。
启动报错:Caused by: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.psbc.system.mapper.SysConfigMapper.selectConfigList

用oceanbase-client-2.4.11.jar直连数据库就没有出现驱动包oceanbase-client-2.4.0.jar的问题。但是项目启动不起来。

第二个表是啥意思,读错表了吗?这两个表的表名分别是啥?

另外这是用的社区版的 ob 吗?直接用 mysql 驱动呢?

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.28</version>
</dependency>

就是联表查询,例如A表跟B表都有个c字段,我们想要取的是A表的c字段,但实际取到的是B表的。
是社区版的ob,mysql驱动试过了,不支持flowable,启动报错。

我理解一下,等于现在 select * 的时候,a 表的 c 字段没有被读到,b 表的 c 字段被读取了两次,这样吗?

不好意思,上面描述的不完整。
用驱动包oceanbase-client-2.4.0.jar的方法 resultSet.getString,在没加别名的情况下,获取的c字段,是b表的。
但实际是想要a表的。如果是使用mysql,没有加别名,有相同字段,通常会得到第一张表(即表 a )的 c 字段的值。

咨询了驱动的同学,
用列名获取值,取到了另一个表的相同的列名的问题在2.4.0后解决了,
替换了2.4.11后无法启动项目,报错mybatis 找不到对应的mapper。可确认下mybatis 的xml中是否有databaseid这样的属性应用。如图

,如果有的话可在url参数中添加: useCompatibleMetadata=true 尝试解决。

好的。谢谢。有另外一个问题就是列自增的问题。如图,自增设置的是1,但是1000001到1000007后就跳到2000001了,知道这是啥问题吗?


刚又查了一遍表,发现日期不是同一天,自增列就变了,这不正常的吧 ?
103a13ccfb70a332502751add77c216

为了便于知识归类形成知识库,方便大家检索以更快解决类似问题,新问题麻烦另起一个帖子,谢谢。

1 个赞