1.驱动使用8.0以上版本
https://mvnrepository.com/artifact/mysql/mysql-connector-java/8.0.27
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.27</version>
</dependency>
2.java与mysql8.0连接Jdbc驱动的配置参数
driver-class-name=com.mysql.jdbc.Driver 改为 com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false
不然会报错,如下:
3.连接参数说明
useAffectedRows=true
是否用受影响的行数替代查找到的行数来返回数据,也就是查找到了 但却不一定真正修改了
allowMultiQueries=true
MySQL连接数据库时,添加语句:“allowMultiQueries=true”的作用:
1.可以在sql语句后携带分号,实现多语句执行。
2.可以执行批处理,同时发出多个SQL语句。
rewriteBatchedStatements=true 批量执行
MySQL的JDBC连接的url中要加rewriteBatchedStatements参数,并保证5.1.13以上版本的驱动,才能实现高性能的批量插入。
MySQL JDBC驱动在默认情况下会无视executeBatch()语句,把我们期望批量执行的一组sql语句拆散,一条一条地发给MySQL数据库,批量插入实际上是单条插入,直接造成较低的性能。
只有把rewriteBatchedStatements参数置为true,驱动才会帮你批量执行SQL
另外这个选项对insert/update/delete都有效