ITPub博客

首页 > Linux操作系统 > Linux操作系统 > cobar续3-jdbc的简单调用

cobar续3-jdbc的简单调用

原创 Linux操作系统 作者:a3zi 时间:2015-01-17 23:34:49 0 删除 编辑

 

由于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()方法设置参数

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29806344/viewspace-1405594/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-08-15

  • 博文量
    45
  • 访问量
    228904