整合 JSF+Spring+Hibernate的小例子

本文介绍了一个基于Hibernate实现的用户信息管理系统,包括实体类定义、DAO层接口及其实现、业务逻辑层实现等。该系统使用UUID作为用户ID,并通过JSF进行前端展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(1)UserInfo.java

packagecom.zhaoqingjie.service.hibernate;

importjava.io.Serializable;
importorg.apache.commons.lang.builder.ToStringBuilder;

publicclassUserInfoimplementsSerializable...{

privateStringid;

privateStringusername;

privateStringemail;

publicUserInfo(Stringid,Stringusername,Stringemail)...{

this.id=id;
this.username=username;
this.email=email;

}


publicUserInfo()...{

}


publicUserInfo(Stringid)...{
this.id=id;
}


publicStringgetId()...{
returnid;
}


publicvoidsetId(Stringid)...{
this.id=id;
}


publicStringgetEmail()...{
returnemail;
}


publicvoidsetEmail(Stringemail)...{
this.email=emial;
}


publicStringgetUsername()...{
returnusername;
}


publicvoidsetUsername(Stringusername)...{
this.username=username;
}


publicStringtoString()...{
returnnewToStringBuilder(this).append("id",getId()).toString();
}


}

(2)UserInfo.hbm.xml

<?xmlversion="1.0"?>
<!DOCTYPEhibernate-mappingPUBLIC
"-//Hibernate/HibernateMappingDTD2.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd"
>

<hibernate-mapping>
<classname="com.zhaoqingjie.spring.service.hibernate.UserInfo"table="userinfo">
<metaattribute="class-description"inherit="false">
@hibernate.class
table="userinfo"
</meta>

<idname="id"type="java.lang.String"column="id">
<metaattribute="field-description">
@hibernate.id
generator-class="assigned"
type="java.lang.String"
column="id"
</meta>
<generatorclass="assigned"/>
</id>

<propertyname="username"type="java.lang.String"column="username"length="36">
<metaattribute="field-description">
@hibernate.property
column="username"
length="36"
</meta>
</property>

<propertyname="email"type="java.lang.String"column="email"length="60">
<metaattribute="field-description">
@hibernate.property
column="email"
length="60"
</meta>
</property>

</class>
</hibernate-mapping>

(3)IUserInfoDAO.java

packagecom.zhaoqingjie.spring.service.dao;

importcom.openv.spring.domainmodel.UserInfoVO;
importorg.springframework.dao.DataAccessException;
importjava.io.Serializable;

publicinterfaceIUserInfoDAOextendsSerializable...{
publicbooleansetUserInfo(UserInfoVOuserinfoVO)throwsDataAccessException;

}

(4)UserInfoDAO.java

packagecom.zhaoqingjie.spring.service.dao.impl;

importorg.apache.commons.logging.Log;
importorg.apache.commons.logging.LogFactory;
importorg.doomdark.uuid.UUIDGenerator;
importorg.springframework.dao.DataAccessException;
importorg.springframework.orm.hibernate.support.HibernateDaoSupport;
importcom.zhaoqingjie.spring.domainmodel.UserInfoVO;
importcom.zhaoqingjie.spring.service.dao.IUserInfoDAO;
importcom.zhaoqingjie.spring.service.hibernate.UserInfo;

publicclassUserInfoDAOextendsHibernateDaoSupportimplementsIUserInfoDAO...{
privatestaticfinalLoglog=LogFactory.getLog(UserInfoDAO.class);

publicbooleansetUserInfo(UserInfoVOuserinfoVO)throwsDataAccessException...{
if(userinfoVO==null)...{
returnfalse;
}


UserInfoui
=newUserInfo();
ui.setId(getID());
ui.setUsername(userinfoVO.getUsername().trim());
ui.setEmail(userinfoVO.getEmail().trim());
this.getHibernateTemplate().save(ui);
returntrue;

}


privateStringgetID()...{
returnUUIDGenerator.getInatance().generateTimeBaseUUID().toString();
}

}

(5)IExampleManager.java

packagecom.zhaoqingjie.spring.service;
importcom.openv.spring.domainmodel.UserInfoVO;
importorg.springframework.dao.DataAccessException;
importjava.io.Serializable;


publicinterfaceIExampleManagerextendsSerializable...{
publicbooleansetUserInfo(UserInfoVOuserinfoVO)
throwsDataAccessException;
}

(6)ExampleManagerImpl.java
packagecom.zhaoqingjie.spring.service.impl;

importcom.openv.spring.domainmodel.UserInfoVO;
importcom.openv.spring.service.IExample29Manager;
importcom.openv.spring.service.dao.IUserInfoDAO;

importorg.apache.commons.logging.Log;
importorg.apache.commons.logging.LogFactory;

importorg.springframework.dao.DataAccessException;

publicclassExampleManagerImplimplementsIExampleManager...{
privatestaticfinalLoglog=LogFactory
.getLog(ExampleManagerImpl.
class);

privateIUserInfoDAOuserinfo;

publicExampleManagerImpl()...{
log.info(
"ExampleManagerImpl()...................");
}


publicvoidsetUserinfo(IUserInfoDAOuserinfoDAO)
throwsDataAccessException...{
this.userinfo=userinfoDAO;
}


publicbooleansetUserInfo(UserInfoVOuserinfoVO)
throwsDataAccessException...{
returnuserinfo.setUserInfo(userinfoVO);
}

}

(7)UserInfoVO.java

packagecom.zhaoqingjie.spring.domainmodel;

importjava.io.Serializable;

publicclassUserInfoVOimplementsSerializable...{

privateStringusername;
privateStringemail;

publicStringgetEmail()...{
returnemail;
}


publicvoidsetEmail(Stringemail)...{
this.email=email;
}


publicStringgetUsername()...{
returnusername;
}


publicvoidsetUsername(Stringusername)...{
this.username=username;
}

}

JSF表示层
(8)InfoBean.java

packagecom.zhaoqingjie.spring.jsf;

importjavax.faces.context.FacesContext;

importorg.apache.commons.logging.Log;
importorg.apache.commons.logging.LogFactory;
importorg.springframework.context.ApplicationContext;
importorg.springframework.web.jsf.FacesContextUtils;

importcom.openv.spring.domainmodel.UserInfoVO;
importcom.openv.spring.service.IExampleManager;

publicclassInfoBean...{
privatestaticfinalLoglog=LogFactory.getLog(InfoBean.class);

privateStringusername=null;

privateStringemail=null;

privateStringresponse=null;

privatelongmaximum=0;

privatebooleanmaximumSet=false;

privatelongminimum=0;

privatebooleanminimumSet=false;


publicInfoBean()...{
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值