如何在JDBC MySQL连接字符串中添加两个会话变量而不被覆盖?
JDBC连接字符串添加多个会话变量的正确方式
嘿,这个坑我之前踩过!你遇到的第二个变量覆盖第一个的问题,根源在于重复使用了sessionVariables=参数——JDBC连接字符串里如果同一个参数名重复出现,后面的值会直接覆盖前面的,所以才会只生效第二个变量。
正确的做法是把多个会话变量放在同一个sessionVariables=参数里,用逗号,分隔开就行,具体写法如下:
jdbc:mysql://localhost:3306/your_database_name?sessionVariables=FOREIGN_KEY_CHECKS=0,SQL_SAFE_UPDATES=0
举个更完整的例子,加上其他常见参数:
jdbc:mysql://localhost:3306/shop_db?sessionVariables=FOREIGN_KEY_CHECKS=0,SQL_SAFE_UPDATES=0&useSSL=false&serverTimezone=UTC
这个写法是MySQL JDBC驱动官方支持的,它会自动解析逗号分隔的多个变量,同时设置到会话里,不会出现覆盖的问题。
内容的提问来源于stack exchange,提问作者Saravanan
相关产品推荐
相关产品推荐

