版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 数据库课程设计设计报告起止日期: 2015 年 10月 26日 至 2015 年 11月 5 日专业计算机信息管理准考证号0545152250341学生姓名吴恒知目 录一、背景1二、系统分析11. 需求分析12开发及运行环境1三、数据库设计11功能模块设计(增加三行说明,效果如图1所示)12数据库设计23主要模块功能实现33.1 数据库连接33.2 登陆功能43.3 首页显示73.4发帖功能11四、课程设计中遇到的问题、解决方法、收获和总结13校园网一、背景在信息化时代,通过网络信息交流沟通非常快捷;同时,网站作为网络资源的重要形式是备受学生欢迎的获取信息的渠道。因此可以通过建立大学生活网,
2、来解决困扰大学生的问题。通过本网站,学生可以转让闲置物品或作为微商在网站上创业;可以获取学校周边的旅游景点、美食小吃的信息以及同学的评论;可以发表在学习上遇到的问题寻求解决办法或是分享自己的学习经验。二、系统分析1. 需求分析网络交流成为当下交际的重要方式;用户可以在网站发布学习、生活的状态与同学进行交流。在校学生离校时有很多闲置物品,扔了可惜;本网站提供了二手转卖功能模块,为转让闲置物品提供方便。同时也为在校创业的微商们提供方便的校内销售、推广平台。2开发及运行环境本系统采用sqlsever+javaweb联合编程,具体开发环境如下数据库环境:sql2012javaweb开发环境:my ec
3、lipse10web应用服务器:tomcat 6.0运行环境如下:jdk版本7.0以上、tomcat6.0以上三、数据库设计校园网用户管理员注册、登录发帖、回帖查找、删除删帖加精1功能模块设计本网站角色分为用户和管理员,用户有登录、注册、发帖、回帖等主要功能,还有查找和删除等辅助功能。而管理员有权利删除不符合规定的帖子、回帖,也可以对比较好的帖子进行加精处理。图1功能模块设计2数据库设计根据需求分析,设计user_info、topic_info、relation_info、followup_info表表1 user_info字段名称数据类型长度约束含义idint32主键idnamenchar(
4、10)10姓名passwordnchar(10)10密码portraitvarchar(50)50头像registtimetime(7)7时间statusint32状态mottonvarchar(max)max座右铭表2 topic_info字段名称数据类型长度约束含义topicidint32主键帖子idauthoridint32外键idtitlevarchar(50)10标题contentnvarchar(max)10内容publishtimedate50发表时间themenchar(10)7主题statusint32状态表3 relation_info字段名称数据类型长度约束含义relat
5、ionidint32主键关系iduseridint32外键主用户ouseridint32外键次用户relationtypeint 32关系类别creattimetime(7)7时间表4 followup_info字段名称数据类型长度约束含义 followidint32主键回帖idtopicidint32外键帖子idfollowcontentnvarchar(max)max回帖内容followtimetime(7)7时间statusint32状态3主要模块功能实现3.1 数据库连接本网站采用sqlsever数据库,数据库连接核心代码如下package com.collegelife.connec
6、tion;import java.sql.*;public class connectionmanager private static final string driver=com.microsoft.sqlserver.jdbc.sqlserverdriver; private static final string url=jdbc:sqlserver:/localhost:1433;databasename=collegelife_db;private static final string username = sa;private static final string pwd
7、= 123;private static connection con;/public connectionmanager() try class.forname(driver); catch (classnotfoundexception e) e.printstacktrace();public static connection getconnection()try con = drivermanager.getconnection(url,username,pwd); catch (sqlexception e) e.printstacktrace();return con;publi
8、c void close()try con.close(); catch (sqlexception e) e.printstacktrace();public static void main(string args) connectionmanager cm = new connectionmanager();system.out.println(cm.getconnection()+数据库连接正常!);3.2 登陆功能用户将登录请求发给服务器,loginservlet接收请求后,现使用setcharacterencoding()方法将页面发送过来的参数改成utf-8编码格式,然后使用ge
9、tparameter()方法获取页面传过来的用户名和密码,然后创建useropr的对象uo,然后调用useropr里的verify(string id,string pwd)方法,最后进入数据库查询用户名若不存在则返回flag=1,用户界面显示不存在该用户;若存在该用户,则比对密码是否正确,若不正确则返回flag=2,用户界面显示密码错误;若密码正确则成功登录,并跳转到主页上。登陆界面如图所示: 关键代码如下:servlet:package com.collegelife.servlet;import java.io.ioexception;import javax.servlet.servl
10、etexception;import javax.servlet.http.httpservlet;import javax.servlet.http.httpservletrequest;import javax.servlet.http.httpservletresponse;import javax.servlet.http.httpsession;import com.collegelife.opr.useropr;public class loginservlet extends httpservlet public void doget(httpservletrequest req
11、uest, httpservletresponse response)throws servletexception, ioexception dopost( request, response);public void dopost(httpservletrequest request, httpservletresponse response)throws servletexception, ioexception /1.接收表单参数 2.登录验证 3.保存结果(session) 4.返回页面httpsession session=request.getsession(); /创建sess
12、ionrequest.setcharacterencoding(utf-8);string userid=request.getparameter(userid); string pwd= request.getparameter(password); string result=; /创建useropr的对象 useropr uo=new useropr(); int flag=uo.verify(userid, pwd); if( flag=1)result=用户名不存在;session.setattribute(resultinfo,result );/将数据保存到sessionresp
13、onse.sendredirect(myjsp.jsp);/页面重定向else if(flag=2)result=密码错误;session.setattribute(resultinfo,result );/将数据保存到sessionresponse.sendredirect(myjsp.jsp);/页面重定向else if(flag=3)session.setattribute(resultinfo,result );/将数据保存到sessionresponse.sendredirect(index.jsp);/页面重定向 useropr * 用户名不存在:flag=1; * 密码错误: f
14、lag=2; * 验证通过: flag=3.public int verify(string id,string pwd)int flag=-1;sql = select * from user_info where id=? ; try psmt = con.preparestatement(sql);psmt.setstring(1,id);/执行sqlresultset rs= psmt.executequery();/查询/判断if(rs.next()if(rs.getstring(password).trim().equals(pwd) flag=3;elseflag=2;else
15、flag=1; catch (sqlexception e) e.printstacktrace(); return flag;3.3 首页显示用户成功跳转到主界面后,将用户id保存到session,然后到数据库中查找该id的好友,sql语句如下:select * from dbo.user_info ,(select ouserid from dbo.user_info join dbo.relation_info on dbo.user_info.id=dbo.relation_info.userid where id=?)as a where dbo.user_info.id = a.o
16、userid在页面里新建useropr对象uo,调用useropr里的list()方法,新建arraylist来承载从数据库中查询到的用户列表,通过循环将每一用户数据转储到arraylist中,在页面里先判断list是否为空,若为空则不进入下一步的循环,若list不为空,则进入循环,通过for循环遍历整个好友列表,为每个好友分配一个div同时设置id,针对不同位置的div添加不同的样式,然后获取好友的头像作为div的背景图片,获取座右铭的值并赋给div的title。当用户数遍滑过该div时,触发jquery hover事件,在该div旁边生成另一个div,同时获取title值,并入显示在div
17、中。关键代码如下:useropr:public arraylist list() /获取所有的好友sql = select * from dbo.user_info ,;sql+= (select ouserid from dbo.user_info join dbo.relation_info on dbo.user_info.id=dbo.relation_info.userid where name=iven);sql+= as a where dbo.user_info.id = a.ouserid;arraylist list = new arraylist();try psmt =
18、 con.preparestatement(sql);resultset rs = psmt.executequery();while(rs.next()user u = new user();u.setname(rs.getstring(name);u.setportrait(rs.getstring(portrait);string m;if(rs.getstring(motto)=null) m=这个人很懒什么都没写;elsem=rs.getstring(motto);u.setmotto(m);/u.setmotto(rs.getstring(motto);list.add(u); c
19、atch (sqlexception e) / todo auto-generated catch blocke.printstacktrace();return list;index.jsp %/调用useopr方法list(),获取数据表数据useropr uo=new useropr();arraylist list=uo.list();/通过循环显示好友if(list!=null)int i=1;for(user u:list) % div id=facewall a href=# title= img src=images/ 在页面里新建topicopr对象to,调用topicopr
20、里的list()方法,新建arraylist来承载从数据库中查询到的帖子列表,通过循环将每一帖子数据转储到arraylist中,然后释放resultset对象rs,在页面里先判断list是否为空,若为空则不进入下一步的循环,若list不为空,则进入循环,通过for循环遍历整个帖子列表,再在页面里通过循环显示, 关键代码如下:topicopr:public class topicopr public arraylist list()connection con=null;preparedstatement stmt=null;resultset rs =null;arraylist list =
21、 new arraylist();trycon=connectionmanager.getconnection();string sql = select top 8 title,name,portrait,content,publishtime,theme from topic_info,user_info ;sql+=where topic_info.authorid=user_info.id order by topic_info.publishtime desc;stmt =con.preparestatement(sql);rs=stmt.executequery();while(r
22、s.next()topic t = new topic();t.settitle(rs.getstring(title);t.setusername(rs.getstring(name);t.setportrait(rs.getstring(portrait);t.setcontent(rs.getstring(content);t.setpublishtime(rs.getstring(publishtime);t.settheme(rs.getstring(theme);list.add(t);catch(exception ex)ex.printstacktrace();return n
23、ull;finallyif (rs!=null)tryrs.close();rs=null;catch (exception ex) ex.printstacktrace();return list; index.jsp %/调用topicopr方法list(),获取数据表数据topicopr to=new topicopr();arraylist list2=to.list();/通过循环显示帖子if(list2!=null)for(topic t:list2) % img src=images/ 3.4发帖功能用户进入发帖界面后页面显示一个表单,由用户填写标题和内容,用户点击发表后,页面将
24、表单内容以post的方式发送给服务器,topicservlrt继承httpservlet类,重写dopost()方法,通过setcontenttype()和request.setcharacterencoding();将表单里的参数规范为utf-8编码格式,新建data对象data和simpledateformat对象sdf,最后获取系统时间并用对象sdf里的format()的方法将其规范为yyyy-mm-dd格式。接收表单参数txt和tit,将接收到的表单参数和获取到的并规范过的系统时间封装为一个topic对象,调用topicopr里的publish(topic topic)方法,将topi
25、c对象里的数据写入sql语句,再在数据库里执行,将数据插入。若插入成功则方法返回true,若插入异常,则返回falsetopicservlet:package com.collegelife.servlet;import java.io.ioexception;import java.io.printwriter;import java.text.simpledateformat;import java.util.date;import javax.servlet.servletexception;import javax.servlet.http.httpservlet;import jav
26、ax.servlet.http.httpservletrequest;import javax.servlet.http.httpservletresponse;import com.collegelife.model.topic;import com.collegelife.opr.topicopr;public class topicservlet extends httpservlet public void doget(httpservletrequest request, httpservletresponse response)throws servletexception, io
27、exception dopost(request, response);public void dopost(httpservletrequest request, httpservletresponse response)throws servletexception, ioexception response.setcontenttype(text/html;charset=utf-8);request.setcharacterencoding(utf-8);date date = new date();simpledateformat sdf = new simpledateformat
28、(yyyy-mm-dd);string strcurrenttime=sdf.format(date);/接收表单参数printwriter out = response.getwriter();string txt=request.getparameter(txt);string tit=request.getparameter(tit);/3.将接收到的表单参数封装为一个topic对象topic topic=new topic();topic.setcontent(txt);topic.settitle(tit);topic.setpublishtime(strcurrenttime);t
29、opicopr to=new topicopr();if(to.publish(topic)out.print(alert(发表成功!);elseout.print(alert(发表失败!);response.setheader(refresh, 2;url=index.jsp);/延迟两秒跳转topicoprpublic boolean publish(topic topic)connection con=null;preparedstatement stmt=null; int row = 0; try con=connectionmanager.getconnection();strin
30、g sql = insert into topic_info(authorid,title,content,publishtime,theme,status) values(11,?,?,?,我在校园,1); stmt = con.preparestatement(sql); stmt.setstring(1, topic.gettitle(); stmt.setstring(2, topic.getcontent(); stmt.setstring(3, topic.getpublishtime();/执行sqlrow = stmt.executeupdate(); catch (sqlexception e) e.printstacktrace(); return row0?true:false;四、课程设计中遇到的问题、解决方法、收获和总结通过这一阶段的数据库课程设计锻炼,我遇到的问题与排、查解决过程如下:用户登录时浏览器报500错误,同时my eclipse 的console界面显示sql用户”sa”登录失败。经检查,sqlsever数据库正常,将useropr里的sql语句复制到sqlsever查询分析器里,运行正常。数据库驱动c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/STRSA 001-2023空间科学数据安全存储规范
- T/SCSF 0028-2025水产养殖调水用品 标签
- T/CTS 29-2025城市道路交通组织方案评价技术导则
- T/CI 1071-2025血管内皮生长因子(VEGF)测定试剂盒(磁微粒化学发光法)
- DB31/T 1648-2025元器件抗辐射性能评估指南
- T/CNFIA 230-2025菌菇酱油
- 2025~2026学年河北邢台市威某校冀教版四年级下册数册末测试【附答案】
- 2025-2026学年宁夏回族自治区中卫市初中生物七年级期末下册通关高频考点卷(附答案)
- PHP技术总监面试题及详细答案(实战落地版)
- Photoshop CS6网页制作期末考试题(含详细参考答案)
- 2026年自动控制原理期末考试题及答案
- 教师积极心理暗示 持续滋养职业状态课件
- 塔吊安拆工程监理实施细则
- 2026年银行客户经理等级考试必考题库及答案
- 2026道德与法治八年级上册教学课件:6.2《学会依法办事》
- T-CSAA 41-2025 燃气涡轮发动机涡轮转子叶片综合冷效模化方法
- 新教科版科学四年级上册3-1《声音是怎样产生的》课件
- 2027届高三化学一轮复习备考策略讲座
- 消防控制室值班记录表
- 铁路接触网安装施工手册
- 烟草制品购销员(三级)职业技能鉴定理论知识试卷试题及答案
评论
0/150
提交评论