附件二
烟台工程职业技术学院
系专业级
课程设计(论文)
题目: 会议管理设计
姓名学号
指导教师(签名)
二○一一年七月一十五日
会议管理设计
【摘要】无论任何组织,为了实现本单位的工作目的,经常组织相关人员一起讨论、商议,形成了许多文字资料,由于资料的杂乱和繁多不便于管理,所以该会议管理系统是实现记录会议的基本信息,开完会后记录会议的讨论结果,进行备案,供以后查询使用。给组织的管理带来极大方便,且不易出错,可长期储存,查询也方便。
前言
本系统是在Windows XP下,以SQL Server 2000为数据库开发平台,Tomcat5网络信息服务作为应用服务器,采用JSP(Java Server Pages)技术开发的。主要采用jsp+struts+jdbc的开发模式,利用struts的框架结构和
odbc:jdbc桥连的方法实现会议信息的增加、删除和修改,struts是一种基于sun公司的j2ee技术的一种框架,其主要技术还是通过servlet和jsp技术来实现的。它为web应用开发提供了成熟的开发框架,是许多java程序员开发经验的总结,特别适用于大型javaweb系统的开发,掌握struts后可以大大提高开发效率。
一、程序功能模块设计
图1-1 程序功能模块图
(一)添加信息:主要实现有新会议需要记录时,向数据库中进行插入。
(二)修改信息:主要实现对已有会议的查询、更新、删除。
(三)管理员注册:由于不同部门的会议互不相同,所以允许多个管理员,实现管理员的注册。
(四)管理员登录:进入本系统必须有合法的帐号,才能进入。
二、核心模块程序流程图
本系统的核心模块主要是修改已有会议的内容,首先通过查询关键字,和查询类型对已有会议进行搜索,查询类型分为会议主题、会
议类型、会议状态三种,查询得到会议的基本信息,如果想对会议内
容进行修改或删除操作则点击“更新”,链接到详细信息的界面,显
示会议的全部内容,并可以进行相应操作。
本系统的主要功能模块还包括添加会议信息,只要输入想要添加的内容就可以输入了,成功会显示提示信息。
三、核心模块程序源码
(一)添加会议
该功能的实现过程是从insert.jsp页面中向InsertForm.java中传
入输入的数据,并在InsertAction里实现数据插入。InsertAction
中的代码如下:
InsertForm insertForm = (InsertForm) form;
meeting me=new meeting();
value(form);
String str="insert into base values('"+title+"','"+type+"','"+state+"')";
int i=me.executeUpdate(str);
String str1="insert into taile
values('"+time+"','"+local+"','"+people+"', '"+neinong+"','"+result+"','"+leader+"')";
int j=me.executeUpdate(str1);
if(j!=o)return mapping.findForward("success");
else return null;
注释:value(form);方法是实现从InsertForm.java中获取值。
主要界面如下图1-2所示:
图1-2 添加会议界面
(二)修改已有会议内容
1.查询会议信息
在search.jsp页面中以post的方式将查询关键字和查询类型传送到search_base.jsp页面中,通过对查询类型的判断来决定不
同的查询语句,调用com.meet.bean.meeting中的executeFind()
方法进行查询,显示结果集。主要代码如下所示:
String key=request.getParameter("key"); /获取查询关键字
String type=request.getParameter("type");/获取查询类型
String str=null;
ResultSet rs=null;
int i=0;
if("1".equalsIgnoreCase(type)) //判断查询类型
str="select * from base where meet_title like '%"+key+"%'";
else if("2".equals(type))
str="select * from base where meet_type like '%"+key+"%'";
else if("3".equalsIgnoreCase(type))
str="select * from base where meet_state like '%"+key+"%'";
else str="select * from taile where meet_ID=1001";
rs=meet.executeFind(str); //执行查询语句
i=rs.getRow();
while(rs!=null&&rs.next()) //输出查询结果
{ int id=rs.getInt("meet_ID");
out.println("
主要界面如下:
图1-3查询会议信息
图1-4显示基本信息
2.更新会议信息
当点击更新这个超链接时,向detaile.jsp页传送id,id的值为所选择会议的ID号,通过这个ID号对会议信息进行更新,和添加信息一样,更新的值通过detaileForm获得,detaileAction中实现更新操作,主要代码如下:
DetaileForm detaile = (DetaileForm) form;
HttpSession session=request.getSession(true);
meeting meet=new meeting();
//通过session变量获得ID号
String id=session.getValue("ID").toString();
int meet_ID=Integer.valueOf(id).intValue();
String str="update base set
meet_title='"+detaile.getTitle()+"',meet_type='"+detaile.get Type()+"',meet_state='"+detaile.getState()+"' where
meet_ID='"+meet_ID+"'";
int i=meet.executeUpdate(str);//执行更新
if(i==1)
return mapping.findForward("succ");
else return mapping.findForward("faile");
特别注意:将import javax.servlet.http.HttpSession;
import com.meet.bean.meeting;
import java.sql.*;
这三个包引入,
更新界面如下所示:
图1-4更新会议信息
3.删除会议
该删除操作只是通过一个超链接,调用deleteAction,并传送删除关键字,在deleteAction中获取关键字并执行删除操作,主要实现方法如下:
在页面中的代码:
href="<%=request.getContextPath()%>/delete.do?id=<%=mee t_id%>">删除
deleteAction中的代码:
meeting meet=new meeting();
String id=request.getParameter("id");
int meet_id=Integer.valueOf(id).intValue();
String str="delete from base where meet_ID="+meet_id+"";
String str1="delete from taile where
meet_ID="+meet_id+"";
int base=meet.executeUpdate(str);
int taile=meet.executeUpdate(str1);
if(base!=0&&taile!=0)
{
return mapping.findForward("success");
}
return mapping.findForward("false");
struts-config.xml中的代码:
type="com.meet.struts.action.DeleteAction" >
四、结论
通过一个月对J2EE的学习,对MyEclipse软件的各项基本功能能熟练掌握,主要了解了两种开发方法,一种是Servlet+JavaBean+Jsp
的方式,各一种是Struts+Jsp+Jdbc的方法,我的系统主要采用后一
种方式,所以对此方法有了更深的了解,我认为Struts主要采用中央
控制器的方式,无论是从哪得来的数据都通过struts-config.xml进
行分配,在Struts中主要包括Form和Action两个方面,Form主要
实现数据的获取和传输,同时可实现页面验证,而Action则主要实现
后台处理,采用Struts开发框架的最大好处是结构清晰,代码重用性
好,并且使页面简单,容易维护。在本次实验中我应用了Struts的部
分功能,但对Struts框架并没有一个全面的了解,Struts框架的好
处并没有充分的发挥,这应该算是比较失败的地方。
五、结束语
在这次课程设计中,遇到过很多的问题,有些甚至是没有学过的,但是经过询问老师,和同学一起讨论与网上搜索都成功解决了问题。
首先感谢陈娅冰老师的指导,也感谢帮助我的同学,感谢网上的提供相关知识的朋友,在你们的帮助下终于完成了课程设计,没有大家的帮助,完全靠自己的力量完成是很困难的。
六、参考文献
[1] 郑文君.Ebooks案例 Ebuy案例
[2] Decoder.JSP技术揭秘.清华大学出版社,2001.11.
附录:程序代码
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import https://www.doczj.com/doc/732243869.html,ng.*;;
public class meeting {
private String dbDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
private String url = "jdbc:odbc:meeting";
private String user = "sa";
private String password = "";
private Connection conn ;
private Statement st ;
private ResultSet rs ;
public meeting(){
try {
Class.forName(dbDriver);
conn = DriverManager.getConnection(url, user, password);
System.out.println("success");
}catch (ClassNotFoundException e) {
e.printStackTrace();
}catch (SQLException e) {
e.printStackTrace();
}
}
public ResultSet executeFind(String sql)
{
try {
st =
conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.C ONCUR_UPDATABLE);
rs = st.executeQuery(sql);
} catch (SQLException e) {
e.printStackTrace();
}
return rs;
}
/*
* **
* SQL更新方法,返回更新的记录数
* @param sql
* @return int
*/
public int executeUpdate(String sql) {
int i = 0;
try {
st =
conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.C ONCUR_UPDATABLE);
i = st.executeUpdate(sql);
} catch (SQLException e) {
e.printStackTrace();
}
return i;
}
public String codeToString (String str)
{
String s=str;
try
{ byte tb[]=s.getBytes("iso-8859-1");
s=new String (tb);
return s;
}
catch(Exception e)
{ e.printStackTrace();}
return s;
}
}
烟台工程职业技术学院
课程(设计)成绩评定评分表
90分(含90分)以上记为优秀,80分(含80分)以上为良好,70分(含70分)以上记为中等,60分(含60分)以上记为及格,60分以下记为不及格