通常MySQL连接URL可以设置为:

jdbc:mysql://localhost:3306/test?user=root&password=123456&useUnicode=true&characterEncoding=gbk
&autoReconnect=true&failOverReadOnly=false&serverTimezone=UTC&driver=com.mysql.cj.jdbc.Driver

注:test 是数据库名;user 指定登录用户名;password 指定密码。

参数介绍

参数名称参数说明缺省值最低版本要求
user数据库用户名(用于连接数据库)
password用户密码(用于连接数据库)
useUnicode是否使用Unicode字符集,如果参数characterEncoding设置为gb2312或gbk,本参数值必须设置为truefalse1.1g
useSSLMySQL在高版本需要指明是否进行SSL连接 在mysql连接字符串url中加入ssl=true或者false即可
characterEncoding当useUnicode设置为true时,指定字符编码。比如可设置为gb2312或gbkfalse1.1g
autoReconnect当数据库连接异常中断时,是否自动重新连接?false1.1
autoReconnectForPools是否使用针对数据库连接池的重连策略false3.1.3
failOverReadOnly自动重连成功后,连接是否设置为只读?true3.0.12
maxReconnectsautoReconnect设置为true时,重试连接的次数31.1
initialTimeoutautoReconnect设置为true时,两次重连之间的时间间隔,单位:秒21.1
connectTimeout和数据库服务器建立socket连接时的超时,单位:毫秒。 0表示永不超时,适用于JDK 1.4及更高版本03.0.1
socketTimeoutsocket操作(读写)超时,单位:毫秒。 0表示永不超时03.0.1
allowMultiQueriesmysql驱动开启批量执行sql的开关false
serverTimezone设置时区 例如 serverTimezone=UTC(统一标准世界时间)或serverTimezone=Asia/Shanghai(中国时区)
tinyInt1isBit如果tinyInt1isBit =true(默认),且tinyInt存储长度为1 ,则转为java.lang.Boolean 。否则转为java.lang.Integer。true

  • 中文环境中,characterEncoding配置为gbk
  • 出现中文乱码时,解决办法就是:useUnicode=true&characterEncoding=UTF-8
  • UTC是统一标准世界时间
  • 如果tinyInt1isBit =true(默认),且把数据类型tinyInt存储长度设为1,那么数据库tinyInt类型会自动转成Java的Boolean,否则自动转成Java的Integer。如果希望转成Java的整数型,则将tinyInt1isBit设为false,或者把tinyInt的长度设为大于1,即tinyInt(N), N>1,例如 tinyInt(2)。也就是说,默认情况下,把字段的数据类型定义为tinyInt(1) ,是用来代表Boolean含义的字段,对应的是Java的Boolean类型,如果插入true,数据库会自动保存1,插入false数据库会自动保存0
  • inyInt1isBit参数名区分大小写,否则不生效
  • 在使用数据库连接池的情况下,最好设置如下两个参数:
    autoReconnect=true&failOverReadOnly=false
  • 在xml配置文件中,url中的&符号需要转义成&amp ;。比如在tomcat的server.xml中配置数据库连接池时,MySQL JDBC URL如下:
jdbc:mysql://localhost:3306/test?user=root&password=&useUnicode=true&characterEncoding=gbk
&autoReconnect=true&failOverReadOnly=false
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐