我正在使用此连接字符串从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`
不会产生任何错误。
干杯!
发布于 2010-04-21 21:52:49
如何使用sessionVariables:
jdbc:mysql://localhost:3306/db?noDatetimeStringSync=true&useUnicode=yes&characterEncoding=UTF-8&sessionVariables=unique_checks=0发布于 2009-11-09 16:31:13
因此,您的问题更多地是“如何在Java中连接字符串?”?
如果是这样,那么只需使用+操作符:
int uniqueChecks = 0; // Assign session variable here.
String url = "jdbc:mysql://localhost:3306/db?unique_checks=" + uniqueChecks;或者,您也可以使用String#format(),其中可以使用%d模式来表示小数:
int uniqueChecks = 0; // Assign session variable here.
String url = String.format("jdbc:mysql://localhost:3306/db?unique_checks=%d", uniqueChecks);发布于 2009-11-09 16:34:51
您可以使用Statement.execute()运行DB所理解的几乎所有语句,包括这样一个SET-statement。
使用URL参数或专用方法的优点是,JDBC驱动程序实际上知道已设置了该选项,并能够做出相应的反应。这对于这个特定选项可能有用,也可能没有必要,但对于其他选项来说,这是至关重要的(例如,用这样的语句切换自动提交是一个非常糟糕的想法)。
https://stackoverflow.com/questions/1702120
复制相似问题