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

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


一.实验背景:

熟悉并掌握如何编写编写各个页面的参数传递以及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

【JavaWeb实验】图书管理系统相关推荐

  1. 基于javaweb的图书管理系统(java+jsp+layui+bootstrap+servlet+mysql)

    基于javaweb的图书管理系统(java+jsp+layui+bootstrap+servlet+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse ...

  2. Javaweb项目:基于JavaWeb的图书管理系统(有源码)

    Javaweb项目:基于JavaWeb的图书管理系统(有源码) 源码如下 实现功能 数据库 运行环境 数据库设计 图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,现今 ...

  3. 数据库实验 图书管理系统(使用SQLsever,附C#窗体程序源码)

    写一个可以登录注册包括管理员身份.读者身份在内的,可以管理(增删改查)图书.借阅信息,可以借书还书的图书管理系统 使用数据库:SQL sever 使用语言:C# 使用IDE:Visual Studio ...

  4. JavaWeb程序设计———图书管理系统

    目录 1.设计题目与要求 2.效果展示 2.1 登录页面 2.2 学生用户注册页面 2.3 学生用户主页面 2.4 学生用户浏览借阅页面 2.5 学生用户借阅记录页面 2.6 借阅记录导出页面 2.7 ...

  5. JavaWeb丨图书管理系统

    要求:写一个基于Java JDBC与Servlet技术的简单图书管理系统,能够对图书进行查询.修改.添加.删除. idea项目源码(百度云盘,免费) idea项目源码(CSDN) ps:数据库脚本在项 ...

  6. 基于java web的图书馆_基于Java-Web的图书管理系统的设计与实现.doc

    题 目 基于Java Web的图书管理 系统的设计与实现 指导老师 ****** 专业班级 姓 名 ******* 学 号 ***** 年 月*日 第 PAGE \* MERGEFORMAT 0 页 ...

  7. 基于javaweb的图书管理系统

    1.简介 使用jsp.layui.mysql完成的图书馆系统,包含用户图书借阅.图书管理员.系统管理员界面,功能齐全. 开发工具为eclipse,环境java8,tomcat9.0+,mysql为5. ...

  8. JavaWeb 图书管理系统(数据库综合实验)

    <数据库系统综合实验>设计报告 分工我负责了图书管理系统中整个数据库的设计与实现,编写与整理了数据库相关方面的文档.梳理了概念设计,对于实体,实体对应的属性,各实体间的关联,E-R(实体联 ...

  9. JavaWeb图书管理系统day03

    视频+资料+笔记[链接:https://pan.baidu.com/s/127I2oA8zvhTECCmC6wMSmQ   提取码:zjxs] JavaWeb图书管理系统[bookEstore文档] ...

  10. JavaWeb图书管理系统day02

    视频+资料+笔记[链接:https://pan.baidu.com/s/127I2oA8zvhTECCmC6wMSmQ   提取码:zjxs] JavaWeb图书管理系统[bookEstore文档] ...

最新文章

  1. 将div垂直居中放置在另一个div中[重复]
  2. 条件变量为什么要和互斥锁一起用
  3. laravel--基础知识
  4. android培训内容明细,记录Android开发学习
  5. 插播面试题:海量数据求最大值Topk或者是最小值Topk
  6. Collect proper diagnostic data is very important
  7. Java日志操作总结
  8. manjaro linux下载软件,manjaro linux
  9. DB-Engines 9月数据库排名:ClickHouse一路猛冲,Redis坐稳第7
  10. SPSS软件自身案例数据
  11. 第1章练习题-SQL基础教程
  12. 胃肠道微生物与癌症有关
  13. 针对Faster RCNN具体细节以及源码的解读之SmoothL1Loss层
  14. 独家专访阿里集团副总裁贾扬清:我为什么选择加入阿里巴巴?
  15. 简单易用的运动控制卡(十二):运动控制系统的安全设置
  16. C语言实现简易扫雷游戏
  17. 最新某宝x-sign参数生成原理
  18. 投票刷票 php,关于PHP写的投票网站之刷票终结版_PHP教程
  19. python中true用法_使用True/False作为键-如何/为什么这样做?
  20. Streamlit - 小记

热门文章

  1. 苟富贵,不相忘~阿里七面面经分享给CSDN的同行(附笔记)
  2. js实现将canvas保存成图片并下载到本地
  3. [附源码]Python计算机毕业设计Django的高校车辆租赁管理系统
  4. 基于 Springboot 的车辆租赁网站的设计与实现
  5. 车联网上云最佳实践(二) 1
  6. 代理登录,token,ticket
  7. GIS基于智慧城市建设的作用
  8. 小米CyberDog四足机器人的AI运动系统的实现
  9. IBM食品安全追溯解决方案
  10. 蓝牙BLE遥控器的应用