JDBC连接MYSQL数据库常见问题处理

欢迎点击「算法与编程之美」↑关注我们!

本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列博客。

我们在使用idea编写javaweb时难免会使用到MySQL(数据库)里的数据来使得页面“动”起来,但我们使用Java连接MySQL时经常会有一个类我们需要使用,这个类就是:

Class.forName("com.mysql.jdbc.Driver")

但是在使用tomcat服务器加载jsp文件时极有可能出现HTTP Status 500 – Internal Server Error的问题,500问题中又有三个问题,分别是时区,密码错误和无法识别MySQL的jar包,以下就是我对这三个问题的决解方案,若有错误请告知:

1 时区

第一个是时区问题,因为数据库里面都是以时间戳来存储的,所以有时本地时区会和服务器时区冲突。下图代码为错误提示:

javax.servlet.ServletException: java.sql.SQLException:The server time zone value ' й   ׼ʱ  ' isunrecognized or represents more than one time zone. You must configure eitherthe server or JDBC driver (via the serverTimezone configuration property) touse a more specifc time zone value if you want to utilize time zone support.

这个问题比较好解决,主要是mysql连接出现服务器时区有问题,这时我们采用程序生成UTC时间就可以解决这一问题,代码如下:

jdbc:mysql://localhost:3306/sctu_javaweb_2018?serverTimezone=UTC

(在连接后加一句utc就可以解决时区问题,UTC是通用时区)

这样时区的问题就可以解决了。

2 密码

第二个问题就是密码问题了,有时候我们密码记错了极有可能导致我们无法访问mysql数据库,所以我们要记住我们的密码哟。

错误的代码如下,如果出现以下代码,你就只需要把你的登陆密码改一改就可以了。

javax.servlet.ServletException: java.sql.SQLException:Access denied for user 'root'@'localhost' (using password: YES)

3 Class NoFound

第三个问题就是前文提到我们所需的类tomcat无法识别,无法识别的原因是你的依赖没有建好,所以系统无法识别,这个错误的代码如下:

javax.servlet.ServletException:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

         org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:667)

         org.apache.jsp.index_jsp._jspService(index_jsp.java:255)

         org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)

         javax.servlet.http.HttpServlet.service(HttpServlet.java:741)

         org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:444)

         org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386)

         org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330)

         javax.servlet.http.HttpServlet.service(HttpServlet.java:741)

         org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

所以决解这个问题,就需要我们建好依赖,再在tomcat中重新添加这个项目,这样一般就可以识别mysql这个类了,具体操作如下:

在modules(项目模块)中选中你的项目(没有就自己加一个或就选择根目录),在右侧选择Dependencies(依赖),然后点击右侧的“+”号:

选择第一个将JARs加入你的项目,建立好项目依赖,然后在右侧选择

Artifacts:

点击“+”号添加项目的部署包,注意选择是exploded的war包,接下来需要在output layout(输出结构)中注意WEB-INF下的lib要有项目部署的jar,由于我们决解的数据库的问题,所以我们需要MySQL的jar包,如果有,那我们的项目依赖就建好了,tomcat就可以找到(识别)MySQL的com.mysql.jdbc.Driver。接下来配置一哈tomcat就好了,如果配置了就重新配置哈,配置详见图解:

点击如图所示小三角,接着点击Edit Configurations-->绿色加号-->如果列表里没有则-->点击33 items more irrelevant这一项后继续寻找

在右侧配置,注意配置画红线的两处:第一处是tomcat的目录地址,第二处是Java JRE地址。

再在Deployment中添加你的项目:

保存修改就可以运行了,大致可以解决tomcat无法找到jdbc。

有朋友推荐说无法识别就把tomcat加入系统环境中就可以了,这种方法没有实验过,不知可否能行,你们也许可以去试一试。

注:本文系四川旅游学院16级信息管理与信息系统专业胡干航投稿。


更多精彩文章:

四川旅游学院 where2go 团队


   

微信号:算法与编程之美          

640?wx_fmt=jpeg

长按识别二维码关注我们!

温馨提示:点击页面右下角“写留言”发表评论,期待您的参与!欢迎转发!

你可能感兴趣的:(JDBC连接MYSQL数据库常见问题处理)