首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JDBC字符串中的Mysql会话变量

问JDBC字符串中的Mysql会话变量
EN

Stack Overflow用户
提问于 2009-11-09 16:26:18
回答 5查看 8.9K关注 0票数 3

我正在使用此连接字符串从java连接到mysql:

jdbc:mysql://localhost:3306/db?noDatetimeStringSync=true&useUnicode=yes&characterEncoding=UTF-8

是否可以在字符串中设置会话变量,以便在连接到服务器时执行SET UNIQUE_CHECKS=0;?明摆着

jdbc:mysql://localhost:3306/db?noDatetimeStringSync=true&useUnicode=yes&characterEncoding=UTF-8&unique_checks=0

似乎不起作用,因为

'jdbc:mysql://localhost:3306/db?noDatetimeStringSync=true&useUnicode=yes&characterEncoding=UTF-8&unique_checks=blahblah`

不会产生任何错误。

干杯!

EN

回答 5

Stack Overflow用户

发布于 2010-04-21 21:52:49

如何使用sessionVariables:

代码语言:javascript
复制
 jdbc:mysql://localhost:3306/db?noDatetimeStringSync=true&useUnicode=yes&characterEncoding=UTF-8&sessionVariables=unique_checks=0
票数 9
EN

Stack Overflow用户

发布于 2009-11-09 16:31:13

因此,您的问题更多地是“如何在Java中连接字符串?”?

如果是这样,那么只需使用+操作符:

代码语言:javascript
复制
int uniqueChecks = 0; // Assign session variable here.
String url = "jdbc:mysql://localhost:3306/db?unique_checks=" + uniqueChecks;

或者,您也可以使用String#format(),其中可以使用%d模式来表示小数:

代码语言:javascript
复制
int uniqueChecks = 0; // Assign session variable here.
String url = String.format("jdbc:mysql://localhost:3306/db?unique_checks=%d", uniqueChecks);
票数 1
EN

Stack Overflow用户

发布于 2009-11-09 16:34:51

您可以使用Statement.execute()运行DB所理解的几乎所有语句,包括这样一个SET-statement。

使用URL参数或专用方法的优点是,JDBC驱动程序实际上知道已设置了该选项,并能够做出相应的反应。这对于这个特定选项可能有用,也可能没有必要,但对于其他选项来说,这是至关重要的(例如,用这样的语句切换自动提交是一个非常糟糕的想法)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1702120

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档