Java Web 学习过程遇到的问题
The server time zone value is unrecognized or represents more than one time zone.
问题重现:
使用JDBC连接MySQL数据库时,报错“The server time zone value is unrecognized or represents more than one time zone.”
问题原因分析
时区不一致导致。
解决方法:
1.在构造的连接字符串后面加上:?serverTimezone=UTC
例如:jdbc:mysql://localhost:3306/learnjdbc?serverTimezone=UTC
2.直接在数据库中更改时区:set global time_zone=’+8:00’
Loading class com.mysql.jdbc.Driver'. This is deprecated. The new driver class is
com.mysql.cj.jdbc.Driver’.
问题重现
使用Class.forName(“com.mysql.jdbc.Driver”)获取驱动类时,报Loading class com.mysql.jdbc.Driver'. This is deprecated. The new driver class is
com.mysql.cj.jdbc.Driver’. 错误。
问题原因分析
根据报错信息来看,很容易得出,新版的驱动类已经更改为"com.mysql.cj.jdbc.Driver"。详细的,MySQL 8.0以上版本:com.mysql.jdbc.Driver 更换为 com.mysql.cj.jdbc.Driver;MySQL 8.0 以上版本不需要建立 SSL 连接的,需要显示关闭;最后还需要设置 CST。
解决方法
将Class.forName(“com.mysql.jdbc.Driver”)更改为Class.forName(“om.mysql.cj.jdbc.Driver”)即可。
Oracle和MySQL 大数据(LOB)问题
问题描述:
Oracle储存大数据采用CLBO(大文本)和BLOB(大二进制)。
MySQL储存大数据采用TEXT(大文本)和BLOB(大二进制)。其中TEXT根据储存数据大小分为:TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT;BLOB根据储存数据大小分为:TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB。
具体JDBC操作方式二者相同。
另:文本文档编码问题
在使用JDBC存txt文件里的中文到MySQL后,在数据库查询是乱码。原以为是数据库编码设置错误,遂尝试在数据库登录字符串里修改编码(jdbc:mysql://localhost:3306/learnjdbc?serverTimezone=UTC&characterEncoding=utf8),无果;又在InputStreamReader里设置编码(Reader reader = new InputStreamReader(in,“utf-8”);),无果。最后猛然想起txt的编码,查看后果然发现默认编码是ANSI,改成utf-8后,乱码问题消失。
IDEA Java Web 项目无法新建Java Class文件
问题描述
如题
解决方法
1.打开File -> Project Structure -> Modules。
2.在右面选择存放源代码的目录,右单机选择Sources。
然后就可以新建Java Class文件了。
IDEA新建web项目没有web.xml
问题描述:
如题
解决方法:
打开File -> Project Structure -> Facets -> 点击加号 -> 选择web -> Apply
然后就可以看到IDEA自动在WEB-INF下添加了web.xml了。