今天整合SSM没有想象中那么多错误,除去一些细节(比如忘写Autowired...)分享一下Mysql8.0 的注意事项
db.properties
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.host=localhost
jdbc.database=test
jdbc.userName=root
jdbc.passWord=123456
jdbc.initialSize=0
jdbc.maxActive=20
jdbc.maxIdle=20
jdbc.minIdle=1
jdbc.maxWait=1000
注意driver为com.mysql.cj.jdbc.Driver
applicationContext-dao.xml
<!-- 数据库连接池 -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
destroy-method="close">
<property name="driverClassName" value="${jdbc.driver}" />
<property name="url"
value="jdbc:mysql://${jdbc.host}:3306/${jdbc.database}?useSSL=false&serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull" />
<property name="username" value="${jdbc.userName}" />
<property name="password" value="${jdbc.passWord}" />
<!-- 初始化连接大小 -->
<property name="initialSize" value="${jdbc.initialSize}"></property>
<!-- 连接池最大数量 -->
<property name="maxActive" value="${jdbc.maxActive}"></property>
<!-- 连接池最大空闲 -->
<property name="maxIdle" value="${jdbc.maxIdle}"></property>
<!-- 连接池最小空闲 -->
<property name="minIdle" value="${jdbc.minIdle}"></property>
</bean>
主要是url的问题
- useSSL,版本不兼容,上一篇中有提到,会报错但不影响运行 ---> 传送门
- serverTimezone设置时区
- useUnicode和characterEncoding是编码方式
- zeroDateTimeBehavior = convertToNull 对日期为0 时(这是种异常现象)进行特判,将日期设置成NULL