Mysql.connect
引入
mysql-connector-java
包,协议为GPL2.0,该协议具有传染性,即:一旦使用(调用)GPL的库,你的软件将被感染为GPL的软件(主程序)。完全不具有商业友好特性。如果有顾虑,可以使用
mariadb-java-client
进行替代,见
mariadb-connector-j
,路径是
org.mariadb.jdbc.Driver
引入JDBC驱动程序
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${version}</version>
</dependency>
JDBC驱动程序版本选择
5.1.**版本
建议使用。
长期维护更新的版本,最新一版是Jul, 2019
维护的5.1.48
版本。
对应mysql
版本5.6
、5.7
、8.0
都可以放心使用
6.0.**版本
禁止使用。
只有几个release版本,没有安全感,已经有一段时间不维护。
与5.1.**存在一些兼容性的问题。
8.0.**版本
酌情使用。
尚未经过验证,该版本主要为了兼容mysql8.0。
更新十分频繁。
需要JDK8以上。
Maven 仓库
Mysql版本建议
选择6个月以上的稳定版,选择开源的社区版的稳定版GA版本。
考虑开发人员开发程序使用的版本是否兼容你选的版本。
优先企业非核心业务采用新版本的数据库GA版本软件。
需要尝试新特性的,多关注Mysql的版本发布通知。
用到JSON
等新特性的,可以考虑5.7
。
保守的可以选择5.6
。
一般云服务提供的版本大多是5.6
、5.7
。
JDBC连接池选择
选择连接池时,需要考虑的因素很多,比如综合性能,可靠性,稳定性,扩展性等。网上也有很多测评的文章,这里不多做介绍,把结论说一下。
Druid之各种连接池性能对比测试
HikariCP基准测试
hikariCP
>druid
>tomcat-jdbc
>dbcp
>c3p0
hikariCP
的性能十分优异,号称java平台最快的数据库连接池。
hikariCP
在并发较高的情况下,性能基本上没有下降。
从字节码的维度优化代码。让方法尽量在35个字节码一下,来提升jvm的处理效率。 (default inline threshold for a JVM running the server Hotspot compiler is 35 bytecodes )
阿里巴巴出品的druid
功能最为全面。
可视化监控,统计数据较为全面。
当然,如果使用的是云数据库,云数据库已经自带了大量监控指标。
如果对监控和跟踪没有要求,可以使用hikariCP
, 如果有监控方面的需求,可以使用druid
。我公司主要是用云数据库,所以基本都是使用hikariCP
,优化一下配置,性能会很棒。