这个项目主要有五个模块,这五个模块分别是数据管理、数据统计、用户管理、角色管理、网站信息管理。咱们团队实现了其中的4个模块,分别是数据管理、数据统计、用户管理、网站信息管理。其中主要实现了对数据的增删改查,其中增长数据中包含了对图片的上传,修改包括对已上传的图片以及数据进行修改,删除包含单个删除以及批量删除,查询实现了分页的功能以及对指定数据的详细查询。html
表1 页面信息表home前端
序号数据库 |
字段名数组 |
类型app |
描述框架 |
|||
1jsp |
Id函数 |
int学习 |
序号测试 |
|||
2 |
gid |
tinyint |
模块 |
|||
3 |
topic |
varchar |
标题 |
|||
4 |
time |
datatime |
上传时间 |
|||
5 |
filesrc |
varchar |
图片 |
|||
6 |
content |
varchar |
内容 |
|
||
7 |
status |
varchar |
显示状态 |
|
表2 模块分类页面信息genre
序号 |
字段名 |
类型 |
描述 |
1 |
gid |
tinyint |
序号 |
2 |
gname |
varchar |
模块 |
用户管理表user
序号 字段名 |
类型 |
描述 |
|
1 Id |
int |
标识 |
|
2 name |
varchar |
姓名 |
|
3 password |
varchar |
密码 |
|
4 userRows |
varchar |
用户角色 |
|
5 sex |
varchar |
性别 |
|
6 date |
date |
日期 |
|
7 filesrc |
varchar |
文件 |
数据管理表datamanagement
序号 字段名 |
类型 |
描述 |
|
1 id |
int |
记录数据 |
|
2 name |
varchar |
姓名 |
|
3 mark |
varchar |
惟一标识 |
|
4 age |
varchar |
年龄 |
|
5 gender |
varchar |
性别 |
|
6 belong |
varchar |
所属 |
|
7 test_time |
varchar |
测试用时 |
|
8 warning_level |
varchar |
预警等级 |
|
7 testTime |
varchar |
测试时间 |
数据统计表datamanagement
序号 字段名 |
类型 |
描述 |
|
1 id |
int |
记录数据 |
|
2 name |
varchar |
姓名 |
|
3 mark |
varchar |
惟一标识 |
|
4 age |
varchar |
年龄 |
|
5 gender |
varchar |
性别 |
|
6 belong |
varchar |
所属 |
|
7 test_time |
varchar |
测试用时 |
|
8 warning_level |
varchar |
预警等级 |
|
7 testTime |
varchar |
测试时间 |
3.2.1.1 从登录界面进入到程序时显示了数据管理,同时进行了查询的工做
(1)重要代码
处理器:
Service层:
Dao层的实现:
(2)实现状况
3.2.1.1 点击查看按钮进行详细信息的查询
(1)重要代码
处理器:
service层 :
Dao 层:
(2) 实现状况
3.2.1.1 对数据的删除
(1)重要代码
(3)实现状况
删除前 :
删除后:
3.2.1.1 对数据的添加
(1)重要代码
(2)实现状况
3.2.2 数据统计模块的实施方案
3.2.2.1 对数据的查询
(1)重要代码
(2)实现状况
3.2.2.2 对单个数据的查看
(1)重要代码
(2)实现状况
3.2.2.3 对数据的删除
(1)重要代码
(2)实现状况
3.2.3 用户管理中的模块实施方案
3.2.3.1 查询内容和分页内容:
(1)重要代码
处理器页面数据查询方法
@RequestMapping("/userManage.do")
public String userManage(intpageno, Modelmodel) {
System.out.println(pageno);
Page<User> page =service.findCurrentPage(pageno);
model.addAttribute("page",page);
return"/html/User_management.jsp";
}
实现类页面查询
public Page<User> findCurrentPage(intpageno) {
Page<User> page =new Page<>(pageno, Constants.PAGE_SIZE);
//查询出总记录数
longtotalRows =dao.selectTotalRows();
page.setTotalRows(totalRows);
//查询出当前页包含的栏目详情
intpageStartIndex =page.getPageStartIndex();
intpageSize =page.getPageSize();
Map<String, Object> map =new HashMap<>();
map.put("pageStartIndex",pageStartIndex);
map.put("pageSize",pageSize);
List<User> datas =dao.selectCurrentPgaeUser(map);
page.setDatas(datas);
returnpage;
}
(2)实现状况
3.2.3.2 对用户的添加
(1)重要代码
@RequestMapping("/userInsert.do")
public String userInsert(Useruser, Model model) {
System.out.println(user);
service.addUser(user);
return"/html/user_management_add.jsp";
}
(2)实现状况
3.2.3.3 .删除
(1)重要代码
@RequestMapping("/userDelete.do")
public String userDelete(intid, Modelmodel) {
service.delete(id);
return"/test/userManage.do?pageno=1";
}
(2)实现状况
3.2.3.4 密码修改、用户修改
(1)重要代码
修改的处理器方法:先经过id查询,数据回显以后,在经过修改处理器方法。
@RequestMapping("/userUpdate.do")
public String userUpdate(Useruser, Model model) {
service.modifyUser(user);
System.out.println(user);
System.out.println("111");
/*return "/html/user_management_password.jsp";*/
return"/test/toUserUpdate.do";
}
@RequestMapping("/toUserUpdate2.do")
public String toUserUpdateId2(intid, Modelmodel) {
User user=service.findUserById(id);
System.out.println(id);
model.addAttribute("user",user);
return"/html/user_management_edit.jsp";
}
@RequestMapping("/userUpdate2.do")
public String userUpdate2(Useruser, Model model) {
service.modifyUser(user);
System.out.println(user);
System.out.println("222");
/*return "/html/user_management_password.jsp";*/
return"/test/toUserUpdate2.do";
}
(2)实现状况
3.2.3.5 批量删除
(1)重要代码
@RequestMapping("userRemove.do")
public String removeNews(Stringnids, User user) {
String[] ids =nids.split(",");
for (Stringstring : ids) {
intid = Integer.parseInt(string);
service.removeUserById(id);
}
return"/test/userManage.do?pageno=1";
}
(2)实现状况
3.2.3.6 对用户名的查询
(1)重要代码
@RequestMapping("/toUserUpdateShow.do")
public String toUserUpdateShow(intid, Modelmodel) {
User user=service.findUserById(id);
System.out.println(id);
model.addAttribute("user",user);
System.out.println("显示成功");
return"/html/user_management_show.jsp";
}
(2)实现状况
3.2.4 网站信息管理模块的实施方案
3.2.4.1查询模块(两个查询子类查询和父类查询)
(1)重要代码
处理器
Dao层
(2)实现状况
查询全部
首页,这是一个所有查询 home(多条新闻)-àgenre(类别),这是一个多对一的关系。
在home类中添加一个域属性private Genre genre;
3.2.4.2添加模块(两个查询子类查询和父类查询)
(1)重要代码
处理器
Dao层
(2)实现状况
添加成功
3.2.4.3删除模块
(1)重要代码
处理器
Dao层
(2)显示状况
删除前
删除后
3.2.4.4修改模块
(1)重要代码
处理器
Dao层
(2)显示状况
修改为功
4、项目说明
登陆界面为login.jsp,这个页面在WebContent下的html文件中,登录后直接点击登陆就能够登陆到系统,不须要输入密码。咱们实现了数据管理中的数据统计,用户管理以及网站信息管理,可是网站信息管理的部分功能在进行·系统整个的时候出现了不能实现的状况,因此在源码中有两个一个是全部的整合在一块儿的源码,还有一个是网站信息管理单独的实现源码。数据库在打包文件中有一个表名为index的数据库,项目里面的WebContent中的db文件中还有一个数据库备份index。
对于数据管理模块主要包括3部分,分别为数据的添加,数据的查询和数据的删除。其中数据的添加和删除都差很少,查询相比较于其余两个较为复杂,须要定义page类做为查询出来的结果与jsp页面进行数据交互。
添加写的时候问题在于jsp没法调用处理器,后来发现是jsp中的JavaScript与调用处理器的实现发生了冲突,解决诶这个问题后很容易的就能够实现添加功能。查询的时候须要进行分页,也能够很容易的实现,问题仍是在于与jsp页面进行数据交互的时候出现了问题,数据没法显示,与源jsp代码中的JavaScript发生了冲突。删除实现的时候由于是根据id进行删除,可是一直没法实现删除,检查代码发现从数据库中读取的数据中没有读取id,解决了这些后,基本的功可以就所有实现了。
在进行小组一块儿写的时候,写以前应该先统一所用的jar包,jdk的版本,数据源等配置信息,否则最后进行整合的时候会很麻烦,还有就是写的时候要常常进行交流,有时候本身遇到的问题恰好有人解决了就能够立刻学习,节省很多的时间。
经过写这个程序,发现了本身的不少不足的地方,对JavaScript的理解不够,没办法读懂原来的jsp页面中的代码,致使前台与后台进行数据交互的时候出现不少问题,因此要好好补一下前端的基本内容,确保能够在之后避免这些问题。
网站信息管理中的首页模块。重要包括四个部分查询部分、修改部分、添加部分、删除。其中查询部分和删除部分大体相同,修改和添加部分有类似的运行原理。四个模块中比较重要的是添加模块和修改模块。
其中添加和修改模块有关于文件的上传。文件上传主要的步骤是:先找到你将要把文件存储的位置;而后去找添加图片的名称和位置;把文件保存到硬盘中;而后经过设置值把图片放到数据库中。
删除和查询的原理:查询包括了两个查询,子类查询父类,一对多的关系。运行的原理:查询到要删除的ID,而后删除对应的整条信息。
程序中存在的问题(之后应该完善的地方):在四个模块整合的过程当中因为注解方式的不一样致使程序出现问题。我写的程序单独运行可以正常的进行,可是所有整合只要出现文件上传就会出现错误。最后在整合部分把图片写成固定的,上传的是一个固定的图片才能正常运行。
经过该程序本身也认识到了本身哪方面的知识薄弱,本身在平时是学习的时候也要注意基础知识的学习。不只要对课本知识有很好的掌握,并且要学习不少与专业相关的一些其余内容。只有这样对于个项目的编写才能有更好的认识。本身平时也要多作几个小的项目,这样之后对项目也不会看到就恐惧。除此以外,经过四我的一个小组去完成一个项目,可以促进同窗之间的合做,同窗之间也可以相互学习,取长补短。在整个项目的过程当中,遇到许多问题,都可以相互探讨,比本身一我的去思考会更有效果。懂得一组写一个大项目须要从什么地方入手,怎么分工。
编写的时候jar包须要统一,包的命名,配置环境一致,全注解配置,以及建表须要你们一块儿来完成和商量。
查询当前页内容、分页内容前台定义的js框架使后台page查询的内容没法实现,因而删除其js框架,使用本身定义的分页功能。
对用户的添加前台js须要调用其对应函数,响应后台处理器的添加的方法,而后跳到添加页面jsp。
删除前台js须要调用其对应函数,响应后台处理器id的删除的方法,而后跳到第一页或者当前页面。
批量删除js使用大量头文件让前台成功是关键,后台将其定义成数组,完成普通删除。
密码修改、用户修改先对应id查询让其修改jsp页面回显数据而后再调处理器完成修改。
过程较复杂,可是关键在于修改有个隐藏id,须要说明<input type="hidden"name="id" value="${user.id }">。
对用户名的查询,跟普通查询同样,但在这里我图片添加到数据库中,将其路径定义传到前台回显,是一次尝试。
主要实现了对数据的查询以及修改的功能,在写这个模块的时候遇到了不少的问题。刚开始的时候由于是复制的oa的项目,在所有删完从新建包滨完成配置后,运行测试时发生了不少的错误,以后又重新写了一个,这些错误才得以解决,多是由于复制过来后哪里没有改完致使了错误的发生。在实现查询的时候,分页出了点问题,常常出现查询出来后一条数据都没有的时候会发生下一个和末页能够点击的状况,可是点击后就会报错,最后在page类中的获得totalpages的方法中找到了问题的所在,删除的时候出现了页面删除可是数据库没有执行删除的状况,以后发现没有调用处理器,在前台和后台交互的时候出现了问题,以后请教了别人后问题得以解决。
在写程序的时候会出现不少的问题,出现问题的第一步是本身查找,以后网查找,找不到以后最后再向别人进行请教,有一些很简单的问题本身百度一下就能够解决的。经过这个程序认识到了本身对一些基本概念理解的不够深入,要更加努力的去学习。