首先说下实现了什么效果,就是不用每次查询前手动创建
sessionFactory和添加datasource文件了。
整个工程结构是这样的
这次我也把代码放在了gitee上,方便大家更全貌的看到所有的实现细节。代码链接如下:
Java: 一些Java代码 (gitee.com)
最后就是可以成功查询到数据库的数据啦
我把遇到的一些问题简单记录下, 避免后人踩坑。
1.Failed to obtain JDBC Connection; nested exception is java.sql.SQLException:
这个和驱动版本有关系,我用的是com.mysql.cj.jdbc.Driver,所以当时用5.x版本就报错了
所以我选了
- com.mysql.jdbc.Driver和mysql-connector-java 5.x一起用。
- com.mysql.cj.jdbc.Driver和mysql-connector-java 6.x 及以上一起用。
2. Failed to obtain JDBC Connection; nested exception is java.sql.SQLException: The server time zone value '�й���ʱ��' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the 'serverTimezone' configuration property) to use a more specifc time zone value if you want to utilize time zone support.
这个要在数据源配置文件里,加上时区serverTimezone=Asia/Shanghai
druid.url=jdbc:mysql://localhost:3306/blog?serverTimezone=Asia/Shanghai
参考这个文档的解释The server time zone value ‘�й���ʱ��‘ is unrecognized or represents more than one time zone-CSDN博客