【JavaWeb实验】图书管理系统

 第一次写文,做一次小尝试。把一年前学校里面的小作业放上来,供参考

代码将于文末以百度网盘的形式分享出来


一.实验背景:

熟悉并掌握如何编写编写各个页面的参数传递以及jsp基本知识。

1、实验目的

      通过JSP&JDBC的综合运用,掌握服务端Java Web数据库编程的基本原理和常用技术。具体包括:

1、编写Java代码,熟悉并掌握JDBC的使用,包括Connection、Statement、PreparedStatement和ResultSet等对象的使用。

2、掌握JDBC在JSP页面中的综合运用。

3、掌握JSP&JDBC对单表和关联关系表进行CRUD等常规数据操作。

2、实验要求

1. 掌握Web JDBC编程的基本步骤和常用对象应用;

2. 掌握模块开发的基本规范;

3. 写出实验报告。

3、背景知识

       在客户端综合编程实验基础上,结合JSP&JDBC等技术,完成相应的数据显示和操作功能,并调试运行程序

二.实验过程与结果

1.开发登录页面,利用用户表信息实现登录判断,登录成功转向首页,失败给予提示;

思路:登录功能通过request获取到文本框输入的用户名于密码,通过与数据库里user表中比对,如果SQL语句执行的结果集不为空则跳转到导航页面否则跳转到错误页面。

关键代码:

String url="jdbc:sqlserver://localhost:1433;databasename=bookstore";
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection conn=DriverManager.getConnection(url,"sa","cx19991120");
String sql="Select * from user1 where username=? and pwd=?";
PreparedStatement pstm=conn.prepareStatement(sql);
pstm.setString(1,name);
pstm.setString(2,pwd);
System.out.print(sql);
pstm.executeQuery();
ResultSet rs=pstm.executeQuery();
if(rs.next()){
	session.setAttribute("username",name);
	session.setAttribute("pwd", pwd);
	response.sendRedirect("index2.html");
}
else{
	response.sendRedirect("undeveloped.html");
}

运行截图:

 图1-1:登录错误1

 图1-2:登录错误2

 图1-3:登录正确1

 图1-4:登录正确2

2.分别开发针对书籍表、出版社表、书籍类型表和用户表的显示以及增加、更新和删除操作;要求根据实际情况分别采用Statement对象和PreparedStatement对象发送SQL语句;

思路:出版社,用户,以及书籍类型表的显示编辑添加页面的设计思路大同小异,仅仅需要改一些SQL语句,以及列名等基本参数,对于书籍表来说则较为复杂,需要连接三张表,显示页面的话需要根据publishid以及booktypeid连接出版社表以及类型表通过value进而找到对应的名称。同样书籍页面编辑也是比较麻烦,因为需要回显类型以及出版社字段,需要用到checked和selected属性和以前学过的JavaScript知识。

关键代码:

<td>
<select name="book_publish">
  <option value="">--请选择出版社---</option>
 <%while(rs1.next()) {%>
  <option  value="<%=rs1.getString("publishid")%>" <%if(publish.equals(rs1.getString("publishid"))){%> selected <%}%>><%=rs1.getString("出版社名称") %></option>
<%} %>
  </select>

</td>
<td class="firsttd">类别:</td>
<td>
<%while(rs2.next()) {%>
<input type="radio" name="book_type"    value="<%=rs2.getString("booktypeid")%>" <%if(type.equals(rs2.getString("booktypeid"))){%> checked <%}%>><%=rs2.getString("类型名称") %>
<%} %>	
</td>

运行截图:

 图1-5:书籍显示页面

 图1-6:书籍编辑页面1

 图1-6:书籍显示页面2

 

 图1-7:书籍删除页面

 图1-8:书籍删除页面2

3. 实现书籍查询功能。

思路:首先需要连接三张表,查询条件用SQL语句的拼接实现,最后回显数据。

关键代码:

String sql = "select a.书号,a.书名, a.作者,a.价格,b.出版社名称 ,c.类型名称,a.出版时间  from book a,publish b,booktype c ";
    sql+="where a.出版社=b.publishid and a.类型=c.booktypeid ";
    String number=request.getParameter("number");
    String name=request.getParameter("name");
    String author=request.getParameter("author");
    String publish=request.getParameter("publish");
    String type=request.getParameter("type");

if(number!=""){
	sql+="and a.书号 like '%" + number + "%'";
}
if(name!=""){
	sql+="and a.书名 like '%" + name + "%'";
}
if(author!=""){
	sql+="and a.作者 like '%" + author + "%'";
}
if(publish!=""){
	sql+="and a.出版社=" + publish +" ";
}
if(type!=""){
	sql+="and a.类型=" + type +" ";
}

运行截图:

 图1-9:书籍查询页面

 图1-10:书籍查询结果

在录屏当中各种情形下的搜索条件都已测试,这里仅展示一种情况。

三、实验分析与总结

(1)实验分析

出版社页面以及书籍页面老师上传了教学视频,跟着视频一步一步走所以没有遇到什么问题。而相对于用户模块和书籍类型模块与出版社模块基本上是照葫芦画瓢,内容仅仅做了一点点修改,途中也没遇到什么问题。但在查询模块遇到了一些问题。

发现问题:在输入查询条件后查询结果集为空。

 图2-1:程序出错图1

 图2-2:程序出错图2

问题缘由:我尝试将SQL语句打印出来,看能不能发现什么问题,于是便发现了端倪,因为查询的思路是如果某个查询条件不为空则给SQL加上对于的条件,但那些文本框为空的值,SQL语句同样也加了进去(刚刚只用了出版社的搜索条件,但其他搜索条件的SQL语句也加了进去),如下图。

 图2-3:程序出错代码

解决问题:所以我判断问题出在了if判断语句,因为文本框什么都不输他的值仍然不为空,所以我将if(**!=null)改换为if(***!=””),结果查询结果正常显示,问题解决。

(2)实验总结

        经过五次实验的磨练,一个趋于完整的书籍后台管理系统基本完成。首先是通过简单的html把每个页面的大致雏形展现出来,再循序渐进的为每个页面增加JavaScript代码,最终用动态的jsp代替先前的静态html。当实验五完成的时候发现,其实每个页面的增删改查功能都是大相径庭,仅仅需要改其中的一小部分就可以搬过来套用。而在不断的实验中,提升的不仅仅是代码能力,而是一种思路,同样自己的改bug能力也在渐入佳境,有的时候不用百度也可以找出错误,但其实这还远远不够。

四.源码

所有原码于同文件夹下的table文件夹中。


百度网盘:
链接:https://pan.baidu.com/s/14qaxEl-a5vjA0jBVAobHPQ
提取码:k642

图书借阅管理系统的主要任务是实现读者迅速检索查询,方便借阅归还图书,图书管理员高效的完成系统的各项基本操作,系统管理员是管理用户设置权限等操作,从图2.1可以看出图书借阅管理系统要完成一下功能: (1) 登录: 读者、图书管理员,系统管理员进入该系统必须登录,身份验证正确了才可以进入该系统,以不同身份进入该系统所对应的系统使用权限是不同的。 (2) 系统设置功能: 系统管理员可以设置图书馆相关的参数信息。 (3)用户管理功能: 对系统用户进行添加,修改,删除,权限设置等操作。 (4)查询功能: 对图书馆的馆藏图书,借阅历史,读者用户等信息进行查询。 (5)其他功能 系统管理员可以修改自己的密码,并且拥有其他用户所拥有的所有功能。 2、功能模型 图书管理员详细功能描述 读者管理功能: 对读者的类型和读者档案进行管理,包括添加,修改,删除读者类型和读者用户的相关信息,管理不同类型读者借阅图书的数量。 图书管理功能: 包括对图书类型和具体图书信息的管理,可以增加,修改,删除图书,丰富具体图书的信息,对不同图书进行分类操作。 图书借阅功能: 可以完成对读者借阅,续接和还书的操作。 系统查询功能: 查询图书相关资料,借阅历史和借阅到期题型. 修改密码功能: 可以修改自己的登录密码。 读者详细功能描述 (1) 修改登陆密码: 修改自己的登录密码。 (2) 查询功能: 对图书馆图书信息进行查询,对自己当前借阅书籍进行查询。
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值