项目源码加上数据表加上mysql-connection连接包8版本已上传至百度网盘:链接:https://pan.baidu.com/s/1EMGUFwIqW8SkRojxVWYt2w
提取码:r93q 需要的自取!
源头:最近想回温下javaSE基础,就找了个之前大二未完善的项目来做,本以为一帆风顺,却是一波三折!
说明:该上传项目于2019年3月23日测试是可以运行的(当然了,有不少警告,如果有强迫症的可以自行解决,不影响项目运行),这篇文章不是来说明代码的实现流程,如何采取瀑布模式来进行需求分析,设计,编码,而是想和大家分享下项目本身没有问题由于mysql一些东西导致无法运行的一些经验!(该项目原型来源于开源社区,本人只是改了一部分,相当于站在巨人肩膀上,特此说明,尊重开源!)
项目具体功能图:
1.登陆界面
2系统主界面
3.读者信息添加
4.读者信息删除修改
5.图书类别添加
6.图书类别修改
7.图书信息添加
8.图书信息修改
9.新的图书订购
10.对添加的图书进行验收
11.图书借阅
12.图书归还
13.图书搜索(由于mysql连接jar包或者mysql版本不同,条件查询很有可能异常,有代码强迫症的童鞋请自调试)
14.更改系统管理员密码
15.添加普通用户
16.对普通用户进行修改删除
以上是图书管理系统的基本功能,但是如果有些问题没解决,是进不去系统主界面的。
下面说下我遇到的问题:(前提说明本电脑使用的mysql版本为8.0版本)
1>此时我导入的是下载下来的时候的mysq连接包,版本为3.1
异常信息为:java.sql.SQLException:Unknown character set index for field '225'received from server.
百度了好久,中间看过了不少误人子弟的文章,最后找到了解决方案:
然后我去maven里面找到了mysql连接包的最高版本,下了一个8系列的jar包,替换3版本的,然后继续运行 。
又出现问题了。
首先抛出了一个驱动类不对的问题,具体看图
大概就是说8系列的驱动是com.mysql.cj.jdbc.Driver而不是com.mysql.jdbc.Driver
修改DAOl里面的驱动为8系列的,继续运行,又出错了
见图:
异常类是java.sql.SQLExcepion,具体错误为: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.
百度了下原因为:出现这个的原因是因为 mysql返回的时间总是有问题,比实际时间要早8小时
解决方案为:在jdbc连接的url后面加上serverTimezone=GMT即可解决问题,如果需要使用gmt+8时区,需要写成GMT%2B8
也就是在DAO层将url数据库后面追加些条件,见代码:
protected static String dbUrl = "jdbc:mysql://localhost:3306/db_library?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false";
解决完了之后就可以愉快的使用了!(悄咪咪的说一句,这代码还是可以的,具有一定的参考价值,希望对大家有帮助!)