Hibernate4.docx

上传人:b****8 文档编号:10982596 上传时间:2023-02-24 格式:DOCX 页数:26 大小:240.49KB
下载 相关 举报
Hibernate4.docx_第1页
第1页 / 共26页
Hibernate4.docx_第2页
第2页 / 共26页
Hibernate4.docx_第3页
第3页 / 共26页
Hibernate4.docx_第4页
第4页 / 共26页
Hibernate4.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

Hibernate4.docx

《Hibernate4.docx》由会员分享,可在线阅读,更多相关《Hibernate4.docx(26页珍藏版)》请在冰豆网上搜索。

Hibernate4.docx

Hibernate4

Hibernate讲义(4)

--Struts2与Hibernate综合实例分析

实例名称:

用户信息资料管理

功能分析:

(1)添加用户信息

(2)显示用户信息

(3)修改用户信息

(4)删除用户信息

(5)查询用户信息

实施方法:

分布实施、逐步添加功能;

一、版本1:

userInfoManager0.1

功能:

添加用户信息

设计步骤:

1.设计客户信息表:

tb_userInfoMessage

CREATETABLE[dbo].[tb_userInfoMessage](

[id][int]IDENTITY(1,1)NOTNULL,

[realName][varchar](50)COLLATEChinese_PRC_CI_ASNULL,

[workNo][varchar](50)COLLATEChinese_PRC_CI_ASNOTNULL,

[departMentName][varchar](50)COLLATEChinese_PRC_CI_ASNULL,

[officePhone][varchar](50)COLLATEChinese_PRC_CI_ASNULL,

[mobile][varchar](50)COLLATEChinese_PRC_CI_ASNULL,

[homePhone][varchar](50)COLLATEChinese_PRC_CI_ASNULL,

[qq][varchar](50)COLLATEChinese_PRC_CI_ASNULL,

[email][varchar](50)COLLATEChinese_PRC_CI_ASNULL,

[address][varchar](50)COLLATEChinese_PRC_CI_ASNULL,

[bz][varchar](50)COLLATEChinese_PRC_CI_ASNULL

)ON[PRIMARY]

2.创建一个Web项目:

userInfoManager

3.添加Struts2特性:

添加struts2中必须的五个包;

修改web.xml配置

4.设计用户信息添加页面:

addUserInfo.jsp

<%@pagelanguage="java"pageEncoding="utf-8"%>

<%@taglibprefix="s"uri="/struts-tags"%>

DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">

添加客户信息

添加客户信息

formaction="userInfoManager!

addUserInfo.action">

textfieldname="userInfo.realName"label="真实姓名"/>

textfieldname="userInfo.workNo"label="工号"/>

textfieldname="userInfo.departMentName"label="部门名称"/>

textfieldname="userInfo.officePhone"label="办公室电话"/>

textfieldname="userInfo.mobile"label="手机"/>

textfieldname="userInfo.homePhone"label="家庭电话"/>

textfieldname="userInfo.qq"label="QQ"/>

textfieldname="userInfo.email"label="邮箱"/>

textfieldname="userInfo.qq"label="家庭地址"/>

textfieldname="userInfo.qq"label="备注"/>

submitvalue="提交"/>

form>

5.创建包

6.添加Hibernate特性

7.Hibernate反向工程

UserInfo.hbm.xml

xmlversion="1.0"encoding="utf-8"?

>

DOCTYPEhibernate-mappingPUBLIC"-//Hibernate/HibernateMappingDTD3.0//EN"

"

8.创建用户信息管理DAO接口:

userInfoDAO.java

/**

*创建用户信息管理接口

*/

packagecom.my.dao;

importcom.my.bean.UserInfo;

publicinterfaceUserInfoDAO{

//查询用户信息是否存在

publicbooleanisExistUserInfo(UserInfouserInfo);

//保存用户信息

publicvoidaddUserInfo(UserInfouserInfo);

}

9.创建用户管理接口实现类:

UserInfoDAOImpl.java

packagecom.my.dao.impl;

importjava.util.List;

importorg.hibernate.Query;

importorg.hibernate.Session;

importorg.hibernate.Transaction;

importcom.my.bean.UserInfo;

importcom.my.dao.UserInfoDAO;

publicclassUserInfoDAOImplimplementsUserInfoDAO{

//保存用户信息

publicvoidaddUserInfo(UserInfouserInfo){

Sessionsession=HibernateSessionFactory.getSession();

Transactiontx=session.beginTransaction();

session.save(userInfo);

mit();

session.close();

}

//查询用户信息是否存在

publicbooleanisExistUserInfo(UserInfouserInfo){

Sessionsession=HibernateSessionFactory.getSession();

Stringhql="fromUserInfoasuwhereu.realName=?

";

Queryquery=session.createQuery(hql);

query.setParameter(0,userInfo.getRealName());

Listlist=query.list();

if(list!

=null&&list.size()>0){

returntrue;

}else{

returnfalse;

}

}

}

10.控制类设计:

UserInfoControl.java

packagecom.my.control;

importcom.my.bean.UserInfo;

importcom.my.dao.UserInfoDAO;

importcom.my.dao.impl.UserInfoDAOImpl;

importcom.opensymphony.xwork2.Action;

importcom.opensymphony.xwork2.ActionSupport;

publicclassUserInfoControlextendsActionSupport{

privateUserInfouserInfo;

privateintid;

privateUserInfoDAOuserInfoDAO;

publicUserInfogetUserInfo(){

returnuserInfo;

}

publicvoidsetUserInfo(UserInfouserInfo){

this.userInfo=userInfo;

}

publicStringaddUserInfo(){

Stringresult="";

userInfoDAO=newUserInfoDAOImpl();

booleanisExist=userInfoDAO.isExistUserInfo(userInfo);

if(isExist){//已经存在

result="input";

this.addFieldError("realName","该用户已经存在啦");

}else{//不存在

userInfoDAO.addUserInfo(userInfo);

result="success";

}

returnresult;

}

publicStringexecute()throwsException{

//TODOAuto-generatedmethodstub

returnnull;

}

publicintgetId(){

returnid;

}

publicvoidsetId(intid){

this.id=id;

}

}

11.设计添加成功页面:

addSuccess.jsp

<%@pagelanguage="java"pageEncoding="utf-8"%>

添加客户信息成功啦

12.配置struts.xml并测试结果

二、版本2:

userInfoManager0.2

功能:

显示客户信息

设计步骤:

1.在用户信息接口中添加方法:

//获取所有用户信息

publicListgetAllUserInfo();

2.在用户接口实现类中增加方法:

//获取所有用户信息

publicListgetAllUserInfo(){

Listlist=null;

Sessionsession=HibernateSessionFactory.getSession();

Stringhql="fromUserInfo";

Queryquery=session.createQuery(hql);

list=query.list();

returnlist;

}

3.在控制类中增加显示方法:

//显示所有用户信息

publicStringlistAllUserInfo(){

userInfoDAO=newUserInfoDAOImpl();

ListuserList=userInfoDAO.getAllUserInfo();

ActionContextctx=ActionContext.getContext();

Mapsession=ctx.getSession();

session.put("userList",userList);

return"showAllUserInfo";

}

4.创建显示用户信息页面:

showAllUserInfo.jsp

<%@pagelanguage="java"pageEncoding="utf-8"%>

<%@taglibprefix="s"uri="/struts-tags"%>

DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">

显示用户信息

用户信息显示

序号

用户名

工号

部门名称

部门电话

手机

iteratorvalue="#session.userList"status="user">

propertyvalue="#user.getIndex()+1"/>

propertyvalue="realName"/>

propertyvalue="workNo"/>

propertyvalue="departMentName"/>

propertyvalue="officePhone"/>

propertyvalue="mobile"/>

iterator>

5.配置struts.xml

/addSuccess.jsp

/showAllUserInfo.jsp

/addUserInfo.jsp

运行结果如下图所示:

三、版本3:

userInfoManager0.3

功能:

删除用户信息

设计步骤:

1.在用户信息接口中增加删除方法:

(UserInfoDAO.java)

//根据id获取用户信息

publicUserInfogetUserInfoById(intid);

//删除用户信息

publicvoiddeleteUserInfo(UserInfouserInfo);

2.在用户信息接口实现类中增加:

(UserInfoDAOImpl.java)

//删除用户信息

publicvoiddeleteUserInfo(UserInfouserInfo){

Sessionsession=HibernateSessionFactory.getSession();

Transactiontx=session.beginTransaction();

session.delete(userInfo);

mit();

session.close();

}

//根据id获取用户信息

publicUserInfogetUserInfoById(intid){

Sessionsession=HibernateSessionFactory.getSession();

UserInfouserInfo=(UserInfo)session.load(UserInfo.class,newInteger(id));

returnuserInfo;

}

4.在用户信息控制端增加删除方法:

//删除用户信息

publicStringdeleteUserInfo(){

Stringresult="";

userInfoDAO=newUserInfoDAOImpl();

UserInfouserInfo=userInfoDAO.getUserInfoById(id);

if(userInfo==null){//该用户不存在

result="error";

}else{//存在该用户

userInfoDAO.deleteUserInfo(userInfo);

result=this.listAllUserInfo();

}

returnresult;

}

四、版本4:

userInfoManager0.4

功能:

修改用户信息

设计步骤:

1.在用户控制类中增加一个预处理修改方法:

//修改用户信息

publicvoidupdateUserInfo(UserInfouserInfo);

2.在接口实现类中增加实现方法:

//修改用户信息

publicvoidupdateUserInfo(UserInfouserInfo){

Sessionsession=HibernateSessionFactory.getSession();

session.clear();

Transactiontx=session.beginTransaction();

session.update(userInfo);

mit();

session.close();

}

3.在用户信息控制类中增加预处理修改和修改方法:

//预处理修改用户信息

publicStringpreUpdateUserInfo(){

Stringresult="";

//根据id获取userInfo对象

userInfoDAO=newUserInfoDAOImpl();

UserInfouserInfo=userInfoDAO.getUserInfoById(id);

if(userInfo==null){//该用户不存在

result="error";

}else{//存在该用户信息

ActionContextctx=ActionContext.getContext();

Mapsession=ctx.getSession();

session.put("userInfo",userInfo);

result="update";

}

returnresult;

}

//修改用户信息

publicStringupdateUserInfo(){

Stringresult="";

System.out.println("id="+id);

userInfo.setId(newInteger(id));

userInfoDAO=newUserInfoDAOImpl();

if(userInfo==null){//用户信息不存在

result="error";

}else{//用户信息存在

userInfoDAO.updateUserInfo(userInfo);

result=this.listAllU

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1