github:https://github.com/shirley981128/usermanage
前期的准备工作主要是搭建SSM环境,配置Maven和jdbc。我使用了国内的阿里云镜像,请求中央仓库自动下载jar包。
在完成初始配置和页面访问两个步骤后,我们可以进入usermanage的访问页面。
总结一下遇到的两个问题。
1.无法通过Maven设置依赖,从中央仓库自动下载jar包。
解决方法:在setting.xml中设置镜像
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
就可以从阿里云服务器下载jar包了。
2.程序报错:could not get jdbc connections.
调了好久,一直觉得jdbc.properties配置的问题,可是总共四个配置,几乎全改了一遍也不行。最后把jdbc.url里的127.0.0.1改成了localhost突然有反应了。根据这个思路查到原因应该是网络防火墙。
localhost和127.0.0.1还是有区别的: localhost不经网卡传输,不受网络防火墙和网卡相关的的限制。
127.0.0.1是通过网卡传输,依赖网卡,并受到网络防火墙和网卡相关的限制。 本机IP 也是通过网卡传输的,依赖网卡,并受到网络防火墙和网卡相关的限制。
127.0.0.1 只能通过本机访问,是本机网卡的环回地址,数据在进过网卡上环回。本机IP 通过本机访问也能通过外部访问,有时候用localhost可以,但用127.0.0.1就不可以的情况就是在于此。猜想localhost访问时,系统带的本机当前用户的权限去访问,而用ip的时候,等于本机是通过网络再去访问本机,用的到网络用户的权限。
解决方案:1.在windows防火墙的入站规则里新建规则,允许端口号为3306的访问通过。但这样的解决方案有潜在的安全风险,所以要特别注意使用复杂的密码。
2.使用localhost代替127.0.0.1.
但是改过之后连接特别慢,等了十分钟还是没有刷新出来。于是继续漫长的debug之路…
最后发现是因为我的mysql版本太高,maven依赖的版本太低,访问不到。
最终解决方案:在parent/pom.xml里修改mysql的版本至<mysql.version>8.0.15</mysql.version>
,修改jdbc.properties至
jdbc.driverClassName=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/123?useSSL=false&serverTimezone=GMT
,在WEB-INF下新建lib文件夹,导入mysql-connector-java-8.0.15-sources.jar和mysql-connector-java-8.0.15.jar。问题完美解决~
最终效果图如下:按更新时间倒序查询结果: