当前位置: 首页 > 工具软件 > Cobar > 使用案例 >

java链接cobar例子_cobar续3-jdbc的简单调用

施德运
2023-12-01

由于Cobar遵循MySQL协议,访问Cobar的方式与访问MySQL数据库完全相同

mysql命令行访问如下:

mysql -h127.0.0.1 -utest -ptest -P8066 -Ddbtest

支持JDBC方式访问,支持用户使用JDBC连接池

jdbc:mysql://172.16.88.131:8066/testdb?user=test&password=test

也可以如下:

Class.forName("com.mysql.jdbc.Driver");

Connection conn

=

DriverManager.getConnection("jdbc:mysql://192.0.0.1:8066/dbtest",

"test",

"test")

这样就可以连接到cobar上了,使用和调用mysql一样简单。

在有分库的情况下,Cobar会提取SQL中的路由字段值判断此SQL被路由到哪个一分库执行,假如用户的SQL语句中没有路由字段值,Cobar将会把SQL分发到所有分库执行。

如果当前连接的schema没有拆分表,则SQL语句中显示指定的schema会原样发送给后端MySQL数据库;

如果当前连接的schema包含拆分表, 则SQL语句中显示指定的schema都将被删除掉。

注意:Cobar不允许再同一个连接中切换schema,如果切换的话,cobar会报错

mysql -h127.0.0.1 -utest -ptest -P8066 -Ddbtest

mysql> use db_home;

ERROR 1044 (HY000): Not allowed to change the database!

如果用户想查看Cobar是如何路由自己的SQL语句,只需在explain后加上该SQL,Cobar便会向用户展示该SQL被路由到哪些datanode执行。

mysql> explain select * from tb1 where id in (1, 2);

+-----------+---------------------------------------+

| DATA_NODE | SQL                                   |

+-----------+---------------------------------------+

| dnTest1   |  select * from tb1 where id in (1, 2) |

+-----------+---------------------------------------+

1 row in set (0.00 sec)

cobar操作要注意:

不支持跨库情况下的join、分页、排序、子查询操作;

SET语句执行会被忽略,事务和字符集设置除外;

分库情况下,insert语句必须包含拆分字段列名;

分库情况下,update语句不能更新拆分字段的值;

不支持SAVEPOINT操作;

使用JDBC时,不支持rewriteBatchedStatements=true参数设置(默认为false);

使用JDBC时,不支持useServerPrepStmts=true参数设置(默认为false);

使用JDBC时,BLOB, BINARY,

VARBINARY字段不能使用setBlob()或setBinaryStream()方法设置参数

 类似资料: