com.mysql.jdbc.Driver‘. This is deprecated. The new driver class is
com.mysql.cj.jdbc.Driver‘的解决办法
说多了都是泪,搭建这个项目遇到的问题太多了,csdn下载的一个javaweb项目
github上也下载了几个,还学会了github上下载东西方法,全是英文的…
问题1:This is deprecated. The new driver class is
`com.mysql.cj.jdbc.Driver’
解决方案:mysql数据库驱动jar包5.0后包含5.0 至后面的6/7/8/9。。这些版本,数据库不支持这个连接
com.mysql.jdbc.Driver 要改为:com.mysql.cj.jdbc.Driver
问题2:SQLException: Access denied for user ‘root’@‘localhost’ (using
password: YES)
解决方案:你的数据库用户密码错误,自己百度操作方法
问题3:SQLSyntaxErrorException: Table ‘my_login.users’ doesn’t exist
解决方案:数据库里没有这个表 ,自己百度操作方法
问题4:SQLSyntaxErrorException: Unknown column ‘username’ in ‘where clause’
解决方案:原因是表里没这字段 ,自己百度操作方法
问题5:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:
Could not create connection to database server.解决方案:使用JDBC mysql-connector-java-5.0.5-bin.jar包跟你的数据库连接的时候,你的JDBC版本与MySQL Server
版本不兼容,MySQL Server 版本更高一些,在连接语句后加上“useSSL=‘true’”, 一般不建议这样,默认是false的
String dbUrl=“jdbc:mysql://localhost:3306/my_login?serverTimezone=Asia/Shanghai&useSSL=false&allowPublicKeyRetrieval=true”;
SSL(Secure Sockets Layer 安全套接字协议),在mysql进行连接的时候,如果MySQL Server的版本是5.7之后的版本必须要加上useSSL=false,MySQL Server5.7以及之前的版本则不用进行添加useSSL=false,会默认为false,一般情况下都是使用useSSL=false,尤其是在将项目部署到linux上时,一定要使用useSSL=false!!!,useSSL=true是进行安全验证,一般通过证书或者令牌什么的,useSSL=false就是通过账号密码进行连接,通常使用useSSL=false!!!
图下是JDBC驱动与MySQL版本不兼容的问题:
原因分析:驱动版本与MySQL版本不兼容,MySQL7.5以上版本使用的驱动与之前不一样
解决方案:驱动设置为com.mysql.cj.jdbc.Driver,url路径设置为jdbc:mysql://localhost:3306/my_login?serverTimezone=UTC&userUnicode=true&charsetEncoding=utf-8
数据库连接url 的几种写法 &是连接符,不能用 ?号处理,每个属性都有的意义
String dbUrl=“jdbc:mysql://localhost:3306/my_login?useSSL=false”;
String dbUrl=“jdbc:mysql://localhost:3306/my_login?serverTimezone=Asia/Shanghai&useSSL=false&allowPublicKeyRetrieval=true”;