MySQL的URL说明
yml
jdbc:mysql://localhost:3306/qolome_psi?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true
参数 | 默认值 | 说明 |
---|---|---|
localhost | 地址 | |
3306 | 端口默认是3306 | |
qolome_psi | 数据库名称 | |
useUnicode=true | false | true表示使用unicode编码 |
characterEncoding=utf-8 | false | 当useUnicode设置为true时,指定字符编码。比如可设置为utf-8 |
zeroDateTimeBehavior=convertToNull | java在连接mysql数据库时,在操作值为0的timestamp类型时不能正确的处理,而是默认抛出一个异常,就是所见的:java.sql.SQLException: Cannot convert value '0000-00-00 00:00:00' from column 7 to TIMESTAMP。这一问题在官方文档中有详细说明。 这一问题在官方文档中有详细说明。 在JDBC连接串中有一项属性:zeroDateTimeBehavior,可以用来配置出现这种情况时的处理策略,该属性有下列三个属性值: l exception:默认值,即抛出SQL state [S1009]. Cannot convert value....的异常; l convertToNull:将日期转换成NULL值; l round:替换成最近的日期即0001-01-01; | |
allowMultiQueries=true | ||
autoReconnect | false | 当数据库连接异常中断时,是否自动重新连接? |
autoReconnectForPools | false | 是否使用针对数据库连接池的重连策略 |
failOverReadOnly | true | 自动重连成功后,连接是否设置为只读? |
maxReconnects | 3 | autoReconnect设置为true时,重试连接的次数 |
initialTimeout | 2 | autoReconnect设置为true时,两次重连之间的时间间隔,单位:秒 |
connectTimeout | 0 | 和数据库服务器建立socket连接时的超时,单位:毫秒。 0表示永不超时 |
socketTimeout | 0 | socket操作(读写)超时,单位:毫秒。 0表示永不超时 |
useSSL | 高版本设置useSSL=true,不然会有警告信息 | |
zeroDateTimeBehavior | 高版本设置convertToNull,防止出现Cannot convert value '0000-00-00 00:00:00' from column XX to TIMESTAMP异常 | |
allowMultiQueries=true | false | 允许批量更新,默认false,在批量更新时会报错 |
serverTimezone=UTC | 设置数据库时区为统一标准标准世界时间(最好不要设置,不然时间会和本地不一致) |