资源描述
实验室资产管理系统
—查询模块
一、 开发环境
MyEclipse 8.5 + Mysql 5.09 + tomcat 6.0
MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对
Eclipse IDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开 发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML, Struts, JSF, CSS, Javascript, SQL, Hibernate。
MySQL是一个小型关系型数据库管理系统,目前 MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网 站总体拥有成本而选择了MySQL作为网站数据库。
Tomcat 是一个小型的轻量级应用服务器, 在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML 页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和jSP容器,独立的Servlet容器是Tomcat的默认模式。
JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技 术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP 标记(tag),从而形成JSP文件(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。
二、需求分析
2.1 可行性分析
实验室资产管理系统,基于b/s结构,运行在tomcat平台上使用MyEclipse开发的,主要使用本地计算机和网络计算机测试和使用,完全可以运行!
2.2基本功能
1、查看实验室总资产
2、查看实验室所有仪器和药品
3、搜索实验室药品和仪器
2.3 数据库设计
1、仪器表
2、药品表
三、模块设计
3.1精确查询
精确查询可以输入要查询仪器或者药品的名称,也可以只输入一个字,在数据库里进行模糊查询,如果数据库中存在,则用户可以查看该仪器或者药品的信息,并且可以修改,若果没有,则显示不好意思,没有您搜索的结果!重新搜索(链接)。
代码:
package com.org.control;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.org.model.DateBaseUtil;
import com.org.service.Filter;
public class SelectSYServlet extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Filter filter=new Filter();
if(filter.isValue(request, response)){
response.setContentType("text/html;charset=GBK");
PrintWriter out= response.getWriter();
request.setCharacterEncoding("GBK");
String ykeywords = request.getParameter("rkeywords");
if(null == rkeywords || rkeywords.equals("")){
out.println("<center>请输入关键字!<a href='smessage.jsp'>重新搜索</a></center>");
return;
}else{
String sql = "select * from yaopin where rname like '%"+rkeywords +"%'";
System.out.println(sql);
Connection conn = DateBaseUtil.getConn();
Statement stmt = null;
ResultSet rs = null;
try {
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
if(rs.next()){
printSheBei(out,rs);
}else{
out.println("<center>不好意思,没有您搜索的结果!<a href='smessage.jsp'>重新搜索</a></center>");
}
out.close();
DateBaseUtil.closeRs(rs);
DateBaseUtil.closeStmt(stmt);
DateBaseUtil.closeConn(conn);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
图3.11
1、如果没有输入关键字,则会出现下图:
图3.12
点击重新搜索,返回搜索页面图3.11!
2、查询出结果:
代码:
public void printSheBei(PrintWriter out,ResultSet rs)throws SQLException{
out.println("<html><head>");
out.println(" <td><a href='logout.jsp'>注销</a></td> " +
"<td><a href='message.jsp'>返回个人信息中心</a></td> " +
"<td><a href='smessage.jsp'>查询设备信息</a></td> " +
"<td><a href='addr.jsp'>添加仪器</a></td> " +
" <td><a href='addy.jsp'>添加药品</a></td>");
out.println("<title>搜索结果</title>");
out.println("<center><H3>搜索结果</H3> <a href='smessage.jsp'>重新搜索</a>");
out.println("</head><body><table border=1><tr>");
out.println("<th width='80'>编号</th><th width='80'>名称</th><th width='80'>数量</th><th width='80'>价格</th><th width='80'>仓库</th><th width='80'>总计</th><th width='80'>备注</th></tr>");
out.println("<tr>");
out.println("<td>" +rs.getString("ynumber")+ "</td>");
out.println("<td>" +rs.getString("yname")+ "</td>");
out.println("<td>" +rs.getInt("ycount")+ "</td>" );
out.println("<td>" +rs.getInt("yprice")+ "</td>");
out.println("<td>" +rs.getString("yaddress")+ "</td>");
out.println("<td>"+rs.getInt("yprice")*rs.getInt("ycount")+"</td>");
out.println("<td><a href='updatey.jsp?id="+rs.getString("id")+"'> 修改</a> <a href='DeleteYServlet?id="+rs.getString("id")+"'> 删除</a></td>");
out.println("</table></center></body></html>");
}
}
3.2查询所有
这里可以查询所有的仪器或者药品的所有信息,用户可以从这里查看到仪器药品的信息,用来决定要不要添加仪器或者药品等。
代码:
<%
int pageNo =1;
Connection conn=DateBaseUtil.getConn();
//定义一个页面显示的仪器数
final int PAGE_SIZE = 10;
//接收传递的页数
String strPageNo = request.getParameter("pageNo");
System.out.println(strPageNo);
//判断页数是否为空,
int totalPages = 0;
if(strPageNo != null && !strPageNo.trim().equals("")) {
try {
pageNo = Integer.parseInt(strPageNo);
} catch (NumberFormatException e) {
pageNo = 1;
}
}
if(pageNo <= 0){
pageNo=1;
}
System.out.println(pageNo);
int startPos = (pageNo-1) * PAGE_SIZE;
String sql_count="select count(*) from riqi";
String sql="select * from riqi order by id desc limit " + startPos + "," + PAGE_SIZE ;
System.out.println(sql);
Statement stmt=null;
ResultSet rs_count=null;
ResultSet rs=null;
try {
stmt = conn.createStatement();
rs_count = stmt.executeQuery(sql_count);
//获取数据库中所有的记录总数
rs_count.next();
int totalRecords=rs_count.getInt(1);
//求出可以分为多少页
totalPages = (totalRecords + PAGE_SIZE - 1)/PAGE_SIZE;
System.out.println(totalPages);
if(pageNo > totalPages-1){
pageNo = totalPages-1;
}
rs = stmt.executeQuery(sql);
%>
<body>
<center>
<H3>查看所有仪器</H3>
<table >
<tr>
<th width="80">编号</th>
<th width="80">名称</th>
<th width="80">数量</th>
<th width="80">价格</th>
<th width="80">仓库</th>
<th width="80">总计</th>
<th width="48"></th>
<th width="48"></th>
</tr>
</table>
<%
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
while(rs.next()){
%>
<table border="1" cellpadding="4" cellspacing="2">
<tr>
<td width="80"><%=rs.getString("rnumber") %></td>
<td width="80"><%=rs.getString("rname") %></td>
<td width="80"><%=rs.getInt("rcount") %></td>
<td width="80"><%=rs.getInt("rprice") %></td>
<td width="80"><%=rs.getString("raddress") %> </td>
<td width="80"><%=rs.getInt("rprice")*rs.getInt("rcount") %></td>
<td><a href=updater.jsp?id=<%=rs.getInt("id") %>> 修改</a></td>
<td><a href=DeleteRServlet?id=<%=rs.getInt("id") %>> 删除</a></td>
</tr>
</table>
<%
}
DateBaseUtil.closeRs(rs_count);
DateBaseUtil.closeRs(rs);
DateBaseUtil.closeStmt(stmt);
DateBaseUtil.closeConn(conn);
%>
<a href="selectr.jsp?pageNo=1">第一页</a>
<a href="selectr.jsp?pageNo=<%=pageNo - 1 %>">上一页</a>
<a href="selectr.jsp?pageNo=<%=pageNo + 1 %>">下一页</a>
<a href="selectr.jsp?pageNo=<%=totalPages %>">最末页</a>
</center>
</body>
<%} %>
3.3注销
代码:
<%
HttpSession sion = request.getSession();
sion.invalidate();
%>
<center>
<h3>已成功退出!</h3>
<a href="index.jsp">重新登录</a>
<a href="javascript:window.close()"><font color=#cc0000>关闭窗口</font></a>
四、总结
通过本次课程设计,让我更加深刻的认识到数据库理论和软件开发实践关系的重要,比如在开发之前的需求分析很重要,在刚开始设计的时候就遇到这个问题,所以对这个问题的印象比加深,还有在使用SQL语句时,也会由于需求分析的不合理,导致很多问题,所以一定要花时间去设计和分析,以免到最后因为需求分析不当的原因导致系统出现很多缺陷。
在设计的过程中,又重新学习了以前的知识,很多原来不明白的知识点,再复习的过程中夜都迎刃而解了,并且更进一步巩固了掌握的知识。
本系统也有很多需要改进的地方,限于本人现在的水平有限,在以后的学习中,将会一步一步完善本系统的!
五、参考文献
《Java Web开发实战经典》李兴华 清华大学出版社 2010年8月第一版
《Java Web开发实战宝典》王国辉等 清华大学出版社 2010年1月第一版
Google搜索,等资源。
2010年读书节活动方案
一、 活动目的:
书是人类的朋友,书是人类进步的阶梯!为了拓宽学生的知识面,通过开展“和书交朋友,遨游知识大海洋”系列读书活动,激发学生读书的兴趣,让每一个学生都想读书、爱读书、会读书,从小养成热爱书籍,博览群书的好习惯,并在读书实践活动中陶冶情操,获取真知,树立理想!
二、活动目标:
1、通过活动,建立起以学校班级、个人为主的班级图书角和个人小书库。
2、通过活动,在校园内形成热爱读书的良好风气。
3、通过活动,使学生养成博览群书的好习惯。
4、通过活动,促进学生知识更新、思维活跃、综合实践能力的提高。
三、活动实施的计划
1、 做好读书登记簿
(1) 每个学生结合实际,准备一本读书登记簿,具体格式可让学生根据自己喜好来设计、装饰,使其生动活泼、各具特色,其中要有读书的内容、容量、实现时间、好词佳句集锦、心得体会等栏目,高年级可适当作读书笔记。
(2) 每个班级结合学生的计划和班级实际情况,也制定出相应的班级读书目标和读书成长规划书,其中要有措施、有保障、有效果、有考评,简洁明了,易于操作。
(3)中队会组织一次“读书交流会”展示同学们的读书登记簿并做出相应评价。
2、 举办读书展览:
各班级定期举办“读书博览会”,以“名人名言”、格言、谚语、经典名句、“书海拾贝”、“我最喜欢的___”、“好书推荐”等形式,向同学们介绍看过的新书、好书、及书中的部分内容交流自己在读书活动中的心得体会,在班级中形成良好的读书氛围。
3、 出读书小报:
展开阅读全文