博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Myslq连接(JDBC)url属性的参数的设置
阅读量:2144 次
发布时间:2019-04-30

本文共 1472 字,大约阅读时间需要 4 分钟。

概要

在Java Web项目中连接数据库是最常用到的,其中最熟悉的就是Mysql连接(及连接池)各属性的配置,其中连接的url属性的参数种类繁多,今天给大家介绍主要url的参数说明,以druid连接池配置信息举例如:

参数说明

  • user                        数据库用户名(用于连接数据库)
  • passWord                用户密码(用于连接数据库)
  • useUnicode              是否使用Unicode字符集,如果参数characterEncoding设置为gb2312或gbk,本参数值必须设置为true 
  • characterEncoding         当useUnicode设置为true,给定编码,常用utf8,默认是:autodetect
  • autoReconnect                当数据库连接异常中断时,是否自动重新连接?
  • serverTimezone            连接数据库的时区信息
  • autoReconnectForPools       是否使用针对数据库连接池的重连策略
  • maxReconnects                      autoReconnect设置为true时,重试连接的次数
  • createDatabaseIfNotExist=true    连接数据库时如果没有库名自动创建
  • initialTimeout                       autoReconnect设置为true时,两次重连之间的时间间隔,单位:秒 
  • connectTimeout                  和数据库服务器建立socket连接时的超时,单位:毫秒。 0表示永不超时,
  • socketTimeout                    socket操作(读写)超时,单位:毫秒。 0表示永不超时
  • failOverReadOnly                   自动重连成功后,连接是否设置为只读?
  • zeroDateTimeBehavior             "exception", "round" and "convertToNull",默认exception
  • maxRows                                     返回的最大行数,默认-1,不限制
  • autoDeserialize                         driver自动发现,并行化存储blob字段
  • allowMultiQueries               允许一个statement执行多个用;分割的sql,默认false
  • useSSL                              连接MySQL 5.5.45+, 5.6.26+ or 5.7.6+默认为true,之前低版本为false

如果你已经升级好了mysql-connector,其中的characterEncoding=utf8可以被自动被识别为utf8mb4(当然也兼容原来的utf8),而autoReconnect配置强烈建议配上。

对应中文环境,通常mysql连接URL可以设置为: 

jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=utf8&autoReconnect=true&failOverReadOnly=false 

在使用数据库连接池的情况下,最好设置如下两个参数: 

autoReconnect=true&failOverReadOnly=false 

注意:在xml配置文件中,url中的&符号需要转义成&。比如直接配置再数据源的配置文件中写属性值的话,需要改成如下示例:

jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=utf8&autoReconnect=true

因此推荐大家还是把数据库连接信息写到配置文件中(jdbc.properties)中,就可以安全写“&”作为连接参数了。

(完)

转载地址:http://fhhgf.baihongyu.com/

你可能感兴趣的文章
为什么需要 Mini-batch 梯度下降,及 TensorFlow 应用举例
查看>>
为什么在优化算法中使用指数加权平均
查看>>
什么是 Q-learning
查看>>
用一个小游戏入门深度强化学习
查看>>
如何应用 BERT :Bidirectional Encoder Representations from Transformers
查看>>
5 分钟入门 Google 最强NLP模型:BERT
查看>>
强化学习第1课:像学自行车一样的强化学习
查看>>
强化学习第2课:强化学习,监督式学习,非监督式学习的区别
查看>>
强化学习第3课:有些问题就像个赌局
查看>>
强化学习第4课:这些都可以抽象为一个决策过程
查看>>
强化学习第5课:什么是马尔科夫决策过程
查看>>
强化学习第6课:什么是 Crossentropy 方法
查看>>
强化学习第7课:交叉熵方法的一些局限性
查看>>
强化学习 8: approximate reinforcement learning
查看>>
图解什么是 Transformer
查看>>
代码实例:如何使用 TensorFlow 2.0 Preview
查看>>
6 种用 LSTM 做时间序列预测的模型结构 - Keras 实现
查看>>
走进JavaWeb技术世界1:JavaWeb的由来和基础知识
查看>>
走进JavaWeb技术世界2:JSP与Servlet的曾经与现在
查看>>
走进JavaWeb技术世界3:JDBC的进化与连接池技术
查看>>