ssh2基于注解整合.docx
《ssh2基于注解整合.docx》由会员分享,可在线阅读,更多相关《ssh2基于注解整合.docx(60页珍藏版)》请在冰豆网上搜索。
ssh2基于注解整合
Hiberbnate+spring+Struts2框架整合
基于注解
商品管理小项目包含图片上传、淘宝分页效果
帮助文档(详细步骤)作者:
陈晓聪
1、建立数据库
1.1建立hhscong数据库
1.2建立spTypespInfo表
1.3代码如下:
createdatabasehhscong
go
usehhscong
go
createtablespType
(
typeIdintprimarykeyidentity(1,1),
typeNamevarchar(20)
)
go
insertintospTypevalues('单肩包');
insertintospTypevalues('双肩包');
insertintospTypevalues('男包');
createtablespInfo
(
spIdvarchar(32)primarykey,
spNamevarchar(32),
sppricefloat,
typeIdintforeignkeyreferencesspType(typeId),
spPhotovarchar(50),
)
go
insertintospInfovalues('297ef8b233af2f590133af2f5aae0001','巴宝莉公文包',60,1,'ad001.jpg');
insertintospInfovalues('297ef8b233af2f590133af2f5aae0002','巴宝莉公文包',60,1,'ad001.jpg');
insertintospInfovalues('297ef8b233af2f590133af2f5aae0003','巴宝莉公文包',60,1,'ad001.jpg');
insertintospInfovalues('297ef8b233af2f590133af2f5aae0004','巴宝莉公文包',60,1,'ad001.jpg');
insertintospInfovalues('297ef8b233af2f590133af2f5aae0005','巴宝莉公文包',60,1,'ad001.jpg');
insertintospInfovalues('297ef8b233af2f590133af2f5aae0006','巴宝莉公文包',60,1,'ad001.jpg');
insertintospInfovalues('297ef8b233af2f590133af2f5aae0007','巴宝莉公文包',60,3,'ad001.jpg');
insertintospInfovalues('297ef8b233af2f590133af2f5aae0008','巴宝莉公文包',60,3,'ad001.jpg');
insertintospInfovalues('297ef8b233af2f590133af2f5aae0009','巴宝莉公文包',60,3,'ad001.jpg');
insertintospInfovalues('297ef8b233af2f590133af2f5aae0010','巴宝莉公文包',60,3,'ad001.jpg');
insertintospInfovalues('297ef8b233af2f590133af2f5aae0011','巴宝莉公文包',60,3,'ad001.jpg');
insertintospInfovalues('297ef8b233af2f590133af2f5aae0012','巴宝莉公文包',60,3,'ad001.jpg');
insertintospInfovalues('297ef8b233af2f590133af2f5aae0013','巴宝莉公文包',60,2,'ad001.jpg');
insertintospInfovalues('297ef8b233af2f590133af2f5aae0014','巴宝莉公文包',60,2,'ad001.jpg');
insertintospInfovalues('297ef8b233af2f590133af2f5aae0015','巴宝莉公文包',60,2,'ad001.jpg');
insertintospInfovalues('297ef8b233af2f590133af2f5aae0016','巴宝莉公文包',60,2,'ad001.jpg');
insertintospInfovalues('297ef8b233af2f590133af2f5aae0017','巴宝莉公文包',60,2,'ad001.jpg');
insertintospInfovalues('297ef8b233af2f590133af2f5aae0018','巴宝莉公文包',60,2,'ad001.jpg');
insertintospInfovalues('297ef8b233af2f590133af2f5aae0019','巴宝莉公文包',60,1,'ad001.jpg');
insertintospInfovalues('297ef8b233af2f590133af2f5aae0020','巴宝莉公文包',60,1,'ad001.jpg');
insertintospInfovalues('297ef8b233af2f590133af2f5aae0021','巴宝莉公文包',60,1,'ad001.jpg');
insertintospInfovalues('297ef8b233af2f590133af2f5aae0022','巴宝莉公文包',60,1,'ad001.jpg');
insertintospInfovalues('297ef8b233af2f590133af2f5aae0023','巴宝莉公文包',60,1,'ad001.jpg');
insertintospInfovalues('297ef8b233af2f590133af2f5aae0024','巴宝莉公文包',60,1,'ad001.jpg');
2、建立WEB工程
2.1建立hhsItem
2.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.serviceImf
7、com.hhs.hbm
2.3.1在com.hhs.entyti包建立实体
1、建立SpInfo类
packagecom.hhs.entity;
importjava.util.Date;
publicclassSpInfo{
privateStringspId;
privateStringspName;
privatefloatspprice;
privateSpTypespType;
privateStringspPhoto;
privateDatetimes;
publicSpInfo(StringspId,StringspName,floatspprice,SpTypespType,
StringspPhoto,Datetimes){
this.spId=spId;
this.spName=spName;
this.spprice=spprice;
this.spType=spType;
this.spPhoto=spPhoto;
this.times=times;
}
publicDategetTimes(){
returntimes;
}
publicvoidsetTimes(Datetimes){
this.times=times;
}
publicStringgetSpId(){
returnspId;
}
publicvoidsetSpId(StringspId){
this.spId=spId;
}
publicStringgetSpName(){
returnspName;
}
publicvoidsetSpName(StringspName){
this.spName=spName;
}
publicfloatgetSpprice(){
returnspprice;
}
publicvoidsetSpprice(floatspprice){
this.spprice=spprice;
}
publicSpTypegetSpType(){
returnspType;
}
publicvoidsetSpType(SpTypespType){
this.spType=spType;
}
publicStringgetSpPhoto(){
returnspPhoto;
}
publicvoidsetSpPhoto(StringspPhoto){
this.spPhoto=spPhoto;
}
publicSpInfo(){
}
}
2、建立SpType类
packagecom.hhs.entity;
importjava.util.HashSet;
importjava.util.Set;
publicclassSpType{
privateIntegertypeId;
privateStringtypeName;
/**
*创建存放SpInfo的集合noe-to-many
*/
privateSetspInfos=newHashSet(0);
publicIntegergetTypeId(){
returntypeId;
}
publicvoidsetTypeId(IntegertypeId){
this.typeId=typeId;
}
publicStringgetTypeName(){
returntypeName;
}
publicvoidsetTypeName(StringtypeName){
this.typeName=typeName;
}
publicSetgetSpInfos(){
returnspInfos;
}
publicvoidsetSpInfos(SetspInfos){
this.spInfos=spInfos;
}
publicSpType(IntegertypeId,StringtypeName,SetspInfos){
this.typeId=typeId;
this.typeName=typeName;
this.spInfos=spInfos;
}
publicSpType(){
}
}
2.3.2在com.hhs.hbm实现实体反转
1、建立SpType.hbm.xml
xmlversion="1.0"encoding="UTF-8"?
>
DOCTYPEhibernate-mappingPUBLIC
"-//Hibernate/HibernateMappingDTD3.0//EN"
"
--一个集合setinverse就是代表着我么之间的管理是由谁管理false(不管理)true(管理)-->
--cascade"not各干各的""all有关联的"-->
--一对多的关系-->
2、建立SpInfo.hbm.xml
xmlversion="1.0"encoding="UTF-8"?
>
DOCTYPEhibernate-mappingPUBLIC
"-//Hibernate/HibernateMappingDTD3.0//EN"
"
--多对一的关系-->
2.3.4在com.hhs.InfDao包建立方法接口类
1、建立SpTypeDaoInf接口类
packagecom.hhs.InfDao;
importjava.util.List;
importcom.hhs.entity.SpType;
publicinterfaceSpTypeDaoInf{
/**
*增加类型
*@return
*/
publicvoidsaveType(SpTypespType);
/**
*查看所有类型
*@return
*/
publicListfindAllSpType();
}
2、建立SpInfoDaoInf接口类
packagecom.hhs.InfDao;
importjava.util.List;
importcom.hhs.entity.SpInfo;
publicinterfaceSpInfoDaoInf{
/**
*增加一件商品
*@paramspInfo
*/
publicvoidsaveSpInfo(SpInfospInfo);
/**
*删除一件商品
*@paramspInfo
*/
publicvoiddeleteSpInfo(SpInfospInfo);
/**
*根据Id查找一件商品
*@paramspId
*@return
*/
publicSpInfofindSpInfo(StringspId);
/**
*修改一件商品
*@paramspInfo
*/
publicvoidupdateSpInfo(SpInfospInfo);
/**
*无条件的查询总条数
*/
publicintgetCount();
/**
*接收所要的页数从1开始
*@parampageNo
*@return
*/
publicListgetPage(intpageNum,intpageSize);
}
2.3.5在com.hhs.ImfDao包建立方法接口实现类
1、建立SpTypeDaoImf方法类
packagecom.hhs.ImfDao;
importjava.util.List;
importjavax.annotation.Resource;
importorg.hibernate.SessionFactory;
importorg.springframework.orm.hibernate3.support.HibernateDaoSupport;
importorg.springframework.stereotype.Repository;
importcom.hhs.InfDao.SpTypeDaoInf;
importcom.hhs.entity.SpType;
@Repository("spTypeDao")
publicclassSpTypeDaoImfextendsHibernateDaoSupportimplementsSpTypeDaoInf{
@Resource(name="sessionFactory")
publicvoidsetSupperSessionFactory(SessionFactorysessionFactory){
super.setSessionFactory(sessionFactory);
}
@Override
publicvoidsaveType(SpTypespType){
this.getHibernateTemplate().save(spType);
}
@Override
publicListfindAllSpType(){
Stringhql="fromSpType";
//执行了未检查的转换时的警告
@SuppressWarnings("unchecked")
Listlist=(List)this.getHibernateTemplate().find(hql);
returnlist;
}
}
2、建立SpInfoDaoImf方法实现类
packagecom.hhs.ImfDao;
importjava.util.List;
importjavax.annotation.Resource;
importorg.hibernate.Criteria;
importorg.hibernate.Query;
importorg.hibernate.SessionFactory;
importorg.hibernate.criterion.Order;
importorg.springframework.orm.hibernate3.support.HibernateDaoSupport;
importorg.springframework.stereotype.Repository;
importcom.hhs.InfDao.SpInfoDaoInf;
importcom.hhs.entity.SpInfo;
@Repository("spInfoDao")
publicclassSpInfoDaoImfextendsHibernateDaoSupportimplementsSpInfoDaoInf{
@Resource(name="sessionFactory")
publicvoidsetSupperSessionFactory(SessionFactorysessionFactory){
super.setSessionFactory(sessionFactory);
}
publicvoidsaveSpInfo(SpInfospInfo){
this.getHibernateTemplate().save(spInfo);
}
publicvoiddeleteSpInfo(SpInfospInfo){
this.getHibernateTemplate().delete(spInfo);
}
publicSpInfofindSpInfo(StringspId){
SpInfospInfo=this.getHibernateTemplate().get(SpInfo.class,spId);
returnspInfo;
}
publicvoidupdateSpInfo(SpInfospInfo){
this.getHibernateTemplate().update(spInfo);
}
public