短信息描述.doc_第1页
短信息描述.doc_第2页
短信息描述.doc_第3页
短信息描述.doc_第4页
短信息描述.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实现功能用户模块:1、简单注册2、登录 session.setAttribute(“suser”,user);3、修改密码4、退出、注销 session.remove(“suser”)短信息模块:1、发信息、回复信息2、查看一条信息,状态发生改变3、查看当前用户所接收的所有信息4、删除信息表结构tbl_message字段名类型长度备注midint短信息编号主键,自动增长titlevarchar100短信息标题contentvarchar500短信息内容sendUnamevarchar20发送者receiverUnamevarchar20接收者postTimedatetime发送时间readSignsmallint短信息是否阅读1-已读,0-未读备注:发送者与接收者应为已注册用户,即需在tbl_user表中出现tbl_user字段名类型长度备注其它uidint用户编号主键,自动增长usernamevarchar20用户姓名passwordvarchar20用户密码sexint性别 1-男 0-女birthdate出生日期regTimedatetime注册时间typevarchar20类型1- 管理员2- 一般用户telephonevarchar20手机或者固话emailvarchar30emaildescvarchar100描述descriptiontbl_suser字段名类型长度备注其它uidint用户编号主键,自动增长usernamevarchar20用户姓名passwordvarchar20用户密码regTimedatetime注册时间任务:目前:创建数据库project ,编码utf-8,创建tbl_message与tbl_suser两张表,并生成SQL脚本文件工程文件结构src包名内容命名原则ject.message根目录下放配置文件model 存放实体类及映射文件dao存放接口I模块名DAOdao.impl存放接口实现类模块名DAOImplservice存放业务接口I模块名Serviceservice.impl存放业务接口实现类模块名ServiceImplweb存放action及其他XxxActioncommon存放公共类Hibernate一、概念1、DAOdata access object数据访问对象2、ORMobject relation mapping对象关系映射3、持久化4、三种状态:瞬时态,持久态,托管态P294 图5、三层结构 表现层 struts 业务逻辑层 spring 数据库层 hibernate ,ibatis6、PO persistence object持久化对象 JO java object7、sql与hql 、条件查询Criteriasql :select * from tbl_suser where username=? And password =?Hql: from 对象名 from SUser where username=? And password =? from SUser where username=:uname and password=:pwd二、创建步骤三个准备,7个步骤模版类:HibernateUtilpublic void delete(int id) Transaction tx=null;try Session session = HibernateUtil.getSessionFactory().openSession();tx=session.beginTransaction();/先找到id的信息Object obj=session.get(Message.class, id);/ 在删除session.delete(obj);System.out.println(信息deleteByid user success );mit(); catch (Exception e) e.printStackTrace();if(tx!=null)tx.rollback(); finally HibernateUtil.getSessionFactory().close();Criteria c=session.createCriteria(Object.class); c.add(Restrictions.eq(username, username); c.add(Restrictions.eq(password, password);System.out.println(select success); List list=c.list(); if(list.size()0)return (SUser)list.get(0);用户模块:1、简单注册2、登录 public SUser checkUser(String username,String password); public boolean isLogon(String username,String password);3、修改密码完成IUserDAO接口其它方法短信息模块:1、按接收者显示短信息public List findByReceiverName(String name);/按接收者显示短信息 !- 重定向的Action名 重定向Action所在的名字空间 - listMsg /login.jsp /listMsg.jsp /login.jsp 页面显示登录用户所接收到的所有信息listMsg.jsp头部主体: 每一条:图片(已读read.jpg,未读unread.jpg) 发送者:标题内容显示:EL $sessionScope.username $readSign $sendUname:$title struts2标签 ognl:超链接 a href=”查看单条信息a href= :短信息模块:2、根据id显示信息 public Message findById(int id);public void update(Message message);Action: public String doShowMessage() throws ExceptionIMessageDAO mdao=new MessageDAOImpl2();if(ActionContext.getContext().getSession().get(username)!=null)System.out.println(id:+message.getId();/根据id获取单条信息Message msg=(Message)mdao.findById(message.getId();/修改读标记0-1msg.setReadSign(1);mdao.update(msg);System.out.println(msg.getId()+ +msg.getSendUname()+ +msg.getTitle()+ +msg.getReceiverUname()+ +msg.getContent();ServletActionContext.getRequest().setAttribute(amessage, msg);return SUCCESS;elsereturn INPUT;JSTLfn函数标签发送短信息页面补充 actionmessage.setReadSign(0);message.setPostTime(new Date().toLocaleString();删除短信息 根据ID删除成功应返回到查看所有短信息页面删除任务:实现简单用户注册 提高:验证用户名是否已经存在修改密码显示该用户的信息,其密码与表单元素oldpwd判断是否一致如果一致,修改新密码否则提示分页假分页、真分页原理假设总行数totalRows 13 12 15每页显示的行数pageSize 3页数?pageTotal 5 =13/3+1 4=12/3 5=15/3if(totalRows%pageSize=0) pageTotal =totalRows/pageSize;else pageTotal =totalRows/pageSize+1;三元: pageTotal = (totalRows%pageSize=0) ? totalRows/pageSize: totalRows/pageSize+1;第几页当前页 pageNow 范围 (pageNow-1)*pageSize+1-pageNow*pageSize测试totalRows=13 pageSize=3 第2页显示的记录从多少到多少 4-6第4页 10-12 3*3+1 4*3100 3 30 29*3+190如何求总行数?1 count(*)sql: select count(*) from tbl_messageList result=session.createSQLQuery(“select count(*) from tbl_message”).list();return (Long)result.get(0);2. List result=session.createQuery(“from Message”).list();return result.size();如何实现分页-使用HibernateP271 分页查询Query query=session.createQuery(“from Message ”)query.setFirstResult(pageNow-1)*pageSize);query.setMaxResults(pageSize);List result=query.list(); 添加2个方法:public List findAllByPage(int pageSize, int pageNow);public Long getRows();Actionprivate int pageNow=1;/默认从第一页开始显示private int pageSize=3;/设置每页显示5条记录private int totalRows=0;/总行数private int pageTotal=1;/总页数省略了setter,getterpublic String doPagelist() throws Exception IMessageDAO mdao=new MessageDAOImpl2();totalRows=mdao.getRows().intValue();/得到总行数 int 变long 大变小强制装换pageTotal=(totalRows%pageSize=0)? totalRows/pageSize:totalRows/pageSize+1;/三目运算 得到总页数System.out.println(pageTotal);/ 处理临界if(pageNow-1)*pageSize = totalRows)pageNow = pageNow - 1;if(pageNow = 0 )pageNow = 1;List results=(List)mdao.findAllByPage(pageSize, pageNow);ServletActionContext.getRequest().setAttribute(messageLists,results);retu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论