如何在JDBC网址中正确传递会话变量?

2022-09-02 05:38:03

我必须增加group_concat_max_len。我不能通过prepstatement来做到这一点,而且我也无法在mysql my.conf文件中做到这一点。

我在mysql文档上发现有一个选项可以在url中传递会话变量。但是没有例子,我试图这样做:

jdbc.url=jdbc:mysql://xxxx.xx.xx.xx/dbName?sessionVariables=group_concat_max_len:204800

我有这个例外:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':204800' at line 1

我也像这样尝试:

jdbc.url=jdbc:mysql://xxxx.xx.xx.xx/dbName?sessionVariables=group_concat_max_len,204800

因为官方文档说:

sessionVariables

A comma-separated list of name/value pairs to be sent as SET SESSION ... to the server when the driver connects.

Since version: 3.1.8

任何想法???


答案 1

试试这个:

jdbc.url=jdbc:mysql://xxxx.xx.xx.xx/dbName?sessionVariables=group_concat_max_len=204800

答案 2

如果需要添加多个会话参数,可以按如下方式操作:

jdbc:mysql://localhost/database?sessionVariables=FOREIGN_KEY_CHECKS=0&sessionVariables=SQL_SAFE_UPDATES=0

推荐