




已阅读5页,还剩34页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Hiberbnate+spring+Struts2 框架整合基于注解商品管理小项目 包含图片上传、淘宝分页效果 帮助文档(详细步骤) 作者:陈晓聪1、 建立数据库1.1建立hhscong数据库1.2建立 spType spInfo 表1.3代码如下:create database hhsconggouse hhsconggocreate table spType(typeId int primary key identity(1,1),typeName varchar(20)goinsert into spType values(单肩包);insert into spType values(双肩包);insert into spType values(男包);create table spInfo(spId varchar(32) primary key,spName varchar(32),spprice float,typeId int foreign key references spType (typeId),spPhoto varchar(50),)goinsert into spInfo values(297ef8b233af2f590133af2f5aae0001,巴宝莉公文包,60,1,ad001.jpg);insert into spInfo values(297ef8b233af2f590133af2f5aae0002,巴宝莉公文包,60,1,ad001.jpg);insert into spInfo values(297ef8b233af2f590133af2f5aae0003,巴宝莉公文包,60,1,ad001.jpg);insert into spInfo values(297ef8b233af2f590133af2f5aae0004,巴宝莉公文包,60,1,ad001.jpg);insert into spInfo values(297ef8b233af2f590133af2f5aae0005,巴宝莉公文包,60,1,ad001.jpg);insert into spInfo values(297ef8b233af2f590133af2f5aae0006,巴宝莉公文包,60,1,ad001.jpg);insert into spInfo values(297ef8b233af2f590133af2f5aae0007,巴宝莉公文包,60,3,ad001.jpg);insert into spInfo values(297ef8b233af2f590133af2f5aae0008,巴宝莉公文包,60,3,ad001.jpg);insert into spInfo values(297ef8b233af2f590133af2f5aae0009,巴宝莉公文包,60,3,ad001.jpg);insert into spInfo values(297ef8b233af2f590133af2f5aae0010,巴宝莉公文包,60,3,ad001.jpg);insert into spInfo values(297ef8b233af2f590133af2f5aae0011,巴宝莉公文包,60,3,ad001.jpg);insert into spInfo values(297ef8b233af2f590133af2f5aae0012,巴宝莉公文包,60,3,ad001.jpg);insert into spInfo values(297ef8b233af2f590133af2f5aae0013,巴宝莉公文包,60,2,ad001.jpg);insert into spInfo values(297ef8b233af2f590133af2f5aae0014,巴宝莉公文包,60,2,ad001.jpg);insert into spInfo values(297ef8b233af2f590133af2f5aae0015,巴宝莉公文包,60,2,ad001.jpg);insert into spInfo values(297ef8b233af2f590133af2f5aae0016,巴宝莉公文包,60,2,ad001.jpg);insert into spInfo values(297ef8b233af2f590133af2f5aae0017,巴宝莉公文包,60,2,ad001.jpg);insert into spInfo values(297ef8b233af2f590133af2f5aae0018,巴宝莉公文包,60,2,ad001.jpg);insert into spInfo values(297ef8b233af2f590133af2f5aae0019,巴宝莉公文包,60,1,ad001.jpg);insert into spInfo values(297ef8b233af2f590133af2f5aae0020,巴宝莉公文包,60,1,ad001.jpg);insert into spInfo values(297ef8b233af2f590133af2f5aae0021,巴宝莉公文包,60,1,ad001.jpg);insert into spInfo values(297ef8b233af2f590133af2f5aae0022,巴宝莉公文包,60,1,ad001.jpg);insert into spInfo values(297ef8b233af2f590133af2f5aae0023,巴宝莉公文包,60,1,ad001.jpg);insert into spInfo values(297ef8b233af2f590133af2f5aae0024,巴宝莉公文包,60,1,ad001.jpg);2、 建立WEB工程2.1建立hhsItem2.2导入三个框架所需要的jar包2.3在src根目录下建立包1、com.hhs.action 2、com.hhs.entity 3、com.hhs.InfDao 4、com.hhs.ImfDao 5、com.hhs.serviceInf 6、com.hhs.serviceImf7、com.hhs.hbm2.3.1 在com.hhs.entyti 包建立实体1、建立SpInfo 类package com.hhs.entity;import java.util.Date;public class SpInfo private String spId;private String spName;private float spprice;private SpType spType;private String spPhoto;private Date times;public SpInfo(String spId, String spName, float spprice, SpType spType,String spPhoto, Date times) this.spId = spId;this.spName = spName;this.spprice = spprice;this.spType = spType;this.spPhoto = spPhoto;this.times = times;public Date getTimes() return times;public void setTimes(Date times) this.times = times;public String getSpId() return spId;public void setSpId(String spId) this.spId = spId;public String getSpName() return spName;public void setSpName(String spName) this.spName = spName;public float getSpprice() return spprice;public void setSpprice(float spprice) this.spprice = spprice;public SpType getSpType() return spType;public void setSpType(SpType spType) this.spType = spType;public String getSpPhoto() return spPhoto;public void setSpPhoto(String spPhoto) this.spPhoto = spPhoto;public SpInfo() 2、建立SpType 类package com.hhs.entity;import java.util.HashSet;import java.util.Set;public class SpType private Integer typeId;private String typeName;/* * 创建存放SpInfo的集合 noe-to-many */private Set spInfos = new HashSet(0);public Integer getTypeId() return typeId;public void setTypeId(Integer typeId) this.typeId = typeId;public String getTypeName() return typeName;public void setTypeName(String typeName) this.typeName = typeName;public Set getSpInfos() return spInfos;public void setSpInfos(Set spInfos) this.spInfos = spInfos;public SpType(Integer typeId, String typeName, Set spInfos) this.typeId = typeId;this.typeName = typeName;this.spInfos = spInfos;public SpType() 2.3.2 在com.hhs.hbm实现实体反转1、建立SpType.hbm.xml 2、建立 SpInfo.hbm.xml 2.3.4在com.hhs.InfDao 包建立方法接口类1、建立SpTypeDaoInf 接口类package com.hhs.InfDao;import java.util.List;import com.hhs.entity.SpType;public interface SpTypeDaoInf /* * 增加类型 * return */public void saveType(SpType spType);/* * 查看所有类型 * return */public List findAllSpType();2、建立SpInfoDaoInf 接口类package com.hhs.InfDao;import java.util.List;import com.hhs.entity.SpInfo;public interface SpInfoDaoInf /* * 增加一件商品 * param spInfo */public void saveSpInfo(SpInfo spInfo);/* * 删除一件商品 * param spInfo */public void deleteSpInfo(SpInfo spInfo);/* * 根据Id查找一件商品 * param spId * return */public SpInfo findSpInfo(String spId);/* * 修改一件商品 * param spInfo */public void updateSpInfo(SpInfo spInfo);/* * 无条件的查询总条数 */public int getCount();/* * 接收所要的页数从1开始 * param pageNo * return */public List getPage(int pageNum, int pageSize);2.3.5在com.hhs.ImfDao 包建立方法接口实现类1、建立SpTypeDaoImf 方法类package com.hhs.ImfDao;import java.util.List;import javax.annotation.Resource;import org.hibernate.SessionFactory;import org.springframework.orm.hibernate3.support.HibernateDaoSupport;import org.springframework.stereotype.Repository;import com.hhs.InfDao.SpTypeDaoInf;import com.hhs.entity.SpType;Repository(spTypeDao)public class SpTypeDaoImf extends HibernateDaoSupport implements SpTypeDaoInfResource(name=sessionFactory)public void setSupperSessionFactory(SessionFactory sessionFactory)super.setSessionFactory(sessionFactory);Overridepublic void saveType(SpType spType)this.getHibernateTemplate().save(spType);Overridepublic List findAllSpType()String hql=from SpType;/执行了未检查的转换时的警告SuppressWarnings(unchecked)List list = (List)this.getHibernateTemplate().find(hql);return list;2、建立SpInfoDaoImf方法实现类package com.hhs.ImfDao;import java.util.List;import javax.annotation.Resource;import org.hibernate.Criteria;import org.hibernate.Query;import org.hibernate.SessionFactory;import org.hibernate.criterion.Order;import org.springframework.orm.hibernate3.support.HibernateDaoSupport;import org.springframework.stereotype.Repository;import com.hhs.InfDao.SpInfoDaoInf;import com.hhs.entity.SpInfo;Repository(spInfoDao)public class SpInfoDaoImf extends HibernateDaoSupport implements SpInfoDaoInfResource(name=sessionFactory)public void setSupperSessionFactory(SessionFactory sessionFactory)super.setSessionFactory(sessionFactory);public void saveSpInfo(SpInfo spInfo)this.getHibernateTemplate().save(spInfo);public void deleteSpInfo(SpInfo spInfo)this.getHibernateTemplate().delete(spInfo);public SpInfo findSpInfo(String spId)SpInfo spInfo = this.getHibernateTemplate().get(SpInfo.class, spId);return spInfo;public void updateSpInfo(SpInfo spInfo)this.getHibernateTemplate().update(spInfo);public int getCount()int pageCount=0;String hql=select count(*) from SpInfo;/生成query接口对象Query q=this.getSession().createQuery(hql);pageCount = Integer.parseInt( q.uniqueResult().toString();return pageCount;SuppressWarnings(unchecked)public List getPage(int pageNum,int pageSize)/pageNum 页数 pageSize每页显示的条数List list = null;Criteria q= this.getSession().createCriteria(SpInfo.class).addOrder(Order.desc(times);q.setFirstResult(pageSize*(pageNum-1);q.setMaxResults(pageSize);list = q.list();return list;2.3.6 在com.hhs.serviceInf包建立控制接口1、建立SpTypeServiceInf接口package com.hhs.serviceInf;import java.util.List;import com.hhs.entity.SpType;public interface SpTypeServiceInf /* * 增加类型 * return */public void saveType(SpType spType);/* * 查看所有类型 * return */public List findAllSpType();2、建立SpInfoServiceInf接口package com.hhs.serviceInf;import java.util.List;import com.hhs.entity.SpInfo;public interface SpInfoServiceInf /* * 增加一件商品 * param spInfo */public void saveSpInfo(SpInfo spInfo);/* * 删除一件商品 * param spInfo */public void deleteSpInfo(SpInfo spInfo);/* * 根据Id查找一件商品 * param spId * return */public SpInfo findSpInfo(String spId);/* * 修改一件商品 * param spInfo */public void updateSpInfo(SpInfo spInfo);/* * 无条件的查询总条数 */public int getCount();/* * 接收所要的页数从1开始 * param pageNo * return */public List getPage(int pageNum, int pageSize);2.3.7在在com.hhs.serviceImf包建立控制接口实现类1、建立SpTypeServiceImf实现类package com.hhs.serviceImf;import java.util.List;import javax.annotation.Resource;import org.springframework.stereotype.Service;import com.hhs.InfDao.SpTypeDaoInf;import com.hhs.entity.SpType;import com.hhs.serviceInf.SpTypeServiceInf;Service(spTypeService)public class SpTypeServiceImf implements SpTypeServiceInf Resource(name=spTypeDao)private SpTypeDaoInf spTypeDao;public SpTypeDaoInf getSpTypeDao() return spTypeDao;public void setSpTypeDao(SpTypeDaoInf spTypeDao) this.spTypeDao = spTypeDao;/* * 增加类型 * return */public void saveType(SpType spType)spTypeDao.saveType(spType);public List findAllSpType()return spTypeDao.findAllSpType();2、建立SpInfoServiceImf实现类package com.hhs.serviceImf;import java.util.List;import javax.annotation.Resource;import org.springframework.stereotype.Service;import com.hhs.InfDao.SpInfoDaoInf;import com.hhs.entity.SpInfo;import com.hhs.serviceInf.SpInfoServiceInf;Service(spInfoService)public class SpInfoServiceImf implements SpInfoServiceInf Resource(name=spInfoDao)private SpInfoDaoInf spInfoDao;public SpInfoDaoInf getSpInfoDao() return spInfoDao;public void setSpInfoDao(SpInfoDaoInf spInfoDao) this.spInfoDao = spInfoDao;public void saveSpInfo(SpInfo spInfo)this.spInfoDao.saveSpInfo(spInfo);public void deleteSpInfo(SpInfo spInfo)this.spInfoDao.deleteSpInfo(spInfo);public SpInfo findSpInfo(String spId)return this.spInfoDao.findSpInfo(spId);public void updateSpInfo(SpInfo spInfo)this.spInfoDao.updateSpInfo(spInfo);public int getCount()return this.spInfoDao.getCount();public List getPage(int pageNum, int pageSize)return this.spInfoDao.getPage(pageNum, pageSize);2.3.8 在com.hhs.action建立Action1、建立SpInfoAction Actionpackage com.hhs.action;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;import java.util.Date;import java.util.List;import javax.annotation.Resource;import org.apache.struts2.ServletActionContext;import org.springframework.context.annotation.Scope;import org.springframework.stereotype.Controller;import com.hhs.entity.SpInfo;import com.hhs.serviceInf.SpInfoServiceInf;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;Controller(spInfoAction)Scope(prototype)public class SpInfoAction extends ActionSupport private static final long serialVersionUID = 1L;Resource(name=spInfoService)private SpInfoServiceInf spInfoService;private SpInfo spInfo;public SpInfo getSpInfo() return spInfo;public void setSpInfo(SpInfo spInfo) this.spInfo = spInfo;/页数private int pageNum=1;/总页数private int pageCount=0;public int getPageNum() return pageNum;public void setPageNum(int pageNum) this.pageNum = pageNum;public int getPageCount() return pageCount;public void setPageCount(int pageCount) this.pageCount = pageCount;public SpInfoServiceInf getSpInfoService() return spInfoService;public void setSpInfoService(SpInfoServiceInf spInfoService) this.spInfoService = spInfoService;/* * 分页查看所有的商品 * return */public String findAll() throws Exception/总页数int Count = spInfoService.getCount();pageCount = Count/6;if(Count%6!=0)pageCount = pageCount+1;if(pageNum=pageCount)pageNum=pageCount;List list = spInfoService.getPage(pageNum, 6);ActionContext.getContext().put(list,list);ActionContext.getContext().getSession().put(pageNum,pageNum);ActionContext.getContext().getSession().put(pageCount,pageCount);return index; /* * 查看单个商品 * return * throws Exception */public String find() throws ExceptionspInfo = spInfoService.findSpInfo(spInfo.getSpId();ActionContext.getContext().put(spInfo,spInfo);return update;/* * 删除商品 * return * throws Exception */public String delete() throws ExceptionspInfoService.deleteSpInfo(spInfo);return findAll();/前台的文件名 private String documentFileFileName;public String getDocumentFileFileName() return documentFileFileName;public void setDocumentFileFileName(String documentFileFileName) this.documentFileFileName = documentFileFileName;/声明一个文件对象 用于接收图片流 private File documentFile;public File getDocumentFile() return documentFile;public void setDocumentFile(File documentFile) this.documentFile = documentFile; /为文件重命名 private String fileRealName;public String getFileRealName() return fileRealName;public void setFileRealName(String fileRealName) this.fileRealName = fileRealName;/获得文件的最终路径 private String fileName; public String getFileName() return fileName;public void setFileName(String fileName) this.fileName = fileName;/* * 增加商品 * return * throws Exception */public String add() throws Exceptionpoto(); spInfo.setSpPhoto(fileRealName); Long longs = System.currentTimeMillis() + 5*3600+8*60*60*1000; Date date = new Date(longs); spInfo.setTimes(date); spInfoService.saveSpInfo(spInfo); return findAll();/* * 修改商品 * return * th
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年县片区加油站财务管理专题知识竞赛试题集及答案解析
- 安徽省长丰县高中数学 第三章 导数及其应用 3.1 变化率与导数 3.1.2 导数的概念说课稿 新人教A版选修1-1
- 第13课 赞美让我心飞扬教学设计-2025-2026学年小学心理健康四年级下册教科版
- 2024秋五年级英语上册 Module 6 Unit 1 You can play football well说课稿7 外研版(三起)
- 第2节 变压器 教学设计-2025-2026学年高中物理人教版选修2-1-人教版2004
- 2.2做出做出判断的分支 教学设计 2023-2024学年教科版(2019)高中信息技术必修1
- 高级养老护理育婴师考试题库及答案解析
- 幼儿安全答题题库大班及答案解析
- 14 土壤中的小动物教学设计-2025-2026学年小学科学一年级下册青岛版(六三制2024)
- 钒铁熔化还原工岗位操作技能考核试卷及答案
- 2025-2030中医药大健康产业链整合与投资机会分析报告
- 2025年第九届“学宪法、讲宪法”知识竞赛题库及答案(中小学组)
- 2025年大型上市公司合同管理与合规制度
- 送瘟神教学课件
- 2025四川省公安厅招聘辅警(448人)笔试备考题库及答案解析
- 部编人教版小学语文六年级上册【课内外阅读理解专项训练(完整)】含答案
- 2025年内容分发网络(CDN)行业当前市场规模及未来五到十年发展趋势报告
- 故宫博物馆院课件
- 豌豆栽培种植技术
- 3.1生活在新型民主国家 教案 -2025-2026学年统编版道德与法治九年级上册
- 内镜中心课件
评论
0/150
提交评论