Hibernate4.docx
- 文档编号:10982596
- 上传时间:2023-02-24
- 格式:DOCX
- 页数:26
- 大小:240.49KB
Hibernate4.docx
《Hibernate4.docx》由会员分享,可在线阅读,更多相关《Hibernate4.docx(26页珍藏版)》请在冰豆网上搜索。
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 运行结果如下图所示: 三、版本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序号 用户名 工号 部门名称 部门电话 手机
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Hibernate4