1.先把userid传给修改的页面

2.跳转到修改的页面

3.用request接收传入输入需改信息的页面

传到action

Action,  通过request获取id

service层

DAO层

<%@page import="com.hanqi.entity.User"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>查询所有</title>
</head>
<body>
<%
List<User> lu = (List<User>)request.getAttribute("userlist");for(User u : lu)
{out.print(u+"【<a href='updateUser?userid="+u.getUserId()+"'>修改</a>】"+"【<a href='deleteUser?userid="+u.getUserId()+"'>删除</a>】 <br>");
}%>
</body>
</html>

  

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd"><struts><!-- 覆盖默认的过滤的扩展名 --><constant name="struts.action.extension" value="do,action,,"></constant><!-- 定义包 --><package name="text" extends="struts-default" ><action name="addUser"><result>/WEB-INF/pages/addUser.jsp</result></action><!--保存user  --><action name="saveUser" class="com.hanqi.action.UserAction" method="saveUser"><result name="fail">/WEB-INF/pages/fail.jsp</result><result name="success">/WEB-INF/pages/success.jsp</result></action><!-- 查询用户 --><action name="selectUser" class="com.hanqi.action.UserAction" method="selectUser"><result name="fail">/WEB-INF/pages/fail.jsp</result><result name="success">/WEB-INF/pages/selectUser.jsp</result></action><!-- 删除 --><action name="deleteUser" class="com.hanqi.action.UserAction" method="deleteUser"><result name="fail">/WEB-INF/pages/fail.jsp</result><result name="success" type="redirectAction">selectUser</result></action><!-- 修改 ,跳转到修改页面--><action name="updateUser" ><result>/WEB-INF/pages/updateUser.jsp</result><result name="fail">/WEB-INF/pages/fail.jsp</result></action><!-- 修改输入 --><action name="updateUser2"  class="com.hanqi.action.UserAction" method="updateUser"><result name="fail">/WEB-INF/pages/fail.jsp</result><result name="success" type="redirectAction">selectUser</result></action></package></struts>

  

<%@page import="com.hanqi.dao.UserDAO"%>
<%@page import="com.hanqi.service.UserService"%>
<%@page import="com.hanqi.entity.User"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>请输入修改内容</title>
</head>
<body>
<%
//得到selectUser传过来的userid,用request接收再向下传
int userID = Integer.parseInt(request.getParameter("userid"));
out.print(userID);
UserDAO ud =new UserDAO();
User u=ud.getUser(userID);//利用获取到的userid得到user对象,便于在文本框里显示
%>
<form action="updateUser2" method="post">
用户id:<input type="text" name="user.userID"value="<%=u.getUserId() %>" readonly><br>
用户姓名:<input type="text" name="user.userName"value="<%=u.getUserName() %>"><br>
用户生日:<input type="text" name="user.birthday"value="<%=u.getUserName() %>"><br>
用户薪酬:<input type="text" name="user.money"value="<%=u.getMoney() %>"><br>
<br><br>
<input type="submit" value="提交修改"></form></body>
</html>

  

package com.hanqi.action;import java.util.List;
import java.util.Map;import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;import org.apache.struts2.ServletActionContext;import com.hanqi.entity.User;
import com.hanqi.service.UserService;
import com.opensymphony.xwork2.ActionContext;public class UserAction {//域模型方式private User user;public User getUser() {return user;}public void setUser(User user) {this.user = user;}//处理保存user的方法public String saveUser(){String rtn="fail";System.out.println(user);try{//调用业务逻辑层Service(模型层)User u1 = new UserService().add(user);//使用request转发到下一个页面去ActionContext  ac = ActionContext.getContext();Map<String, Object> mo = (Map<String, Object>)ac.get("request");mo.put("user", u1);rtn="success";}catch(Exception e){e.printStackTrace();}return rtn;}//查询用户public String selectUser(){String rtn ="fail";try{//调用查询的方法List<User>  lu = new UserService().getAll();//得到原生 的requestHttpServletRequest hsr = ServletActionContext.getRequest();hsr.setAttribute("userlist", lu);rtn="success";}catch(Exception e){e.printStackTrace();}return rtn;}//删除用户public String deleteUser(){String rtn ="fail";try{//获取userid//得到原生 的requestHttpServletRequest hsr = ServletActionContext.getRequest();String  uid = hsr.getParameter("userid");//执行删除new UserService().delete(Integer.parseInt(uid));rtn="success";}catch(Exception e){e.printStackTrace();}return rtn;}//修改用户public String updateUser(){String rtn ="fail";try{//获取userid//得到原生 的requestHttpServletRequest hsr = ServletActionContext.getRequest();String userid = hsr.getParameter("user.userID");//通过request获取页面传过的id//调用业务逻辑层Service(模型层)int userID = Integer.parseInt(userid) ;//吧页面传过来的userid转换成DAO层的int型进行对应//System.out.println(userID);new UserService().update(userID, user);rtn="success";}catch(Exception e){e.printStackTrace();}return rtn;}//查询单个public String selectOneUser(){String rtn ="fail";try{//调用查询单个的方法//获取userid//得到原生 的requestHttpServletRequest hsr = ServletActionContext.getRequest();String userid = hsr.getParameter("user.userID");}catch(Exception e){e.printStackTrace();}return rtn;}}

  

package com.hanqi.service;import java.util.List;import com.hanqi.dao.UserDAO;
import com.hanqi.entity.User;public class UserService {//添加Userpublic User add(User user){return new UserDAO().insert(user);}//查询全表public List<User>  getAll(){return new UserDAO().getAll();}//删除public void delete(int userID){new UserDAO().delete(userID);}//修改public void update(int userID, User user){new UserDAO().updateUser(userID, user);}//查询单个public User getOntUser(int userID){return new UserDAO().getUser(userID);}
}

  

package com.hanqi.dao;import java.util.ArrayList;
import java.util.List;import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;import com.hanqi.entity.User;public class UserDAO {private Configuration cfg =null;private ServiceRegistry  sr =null;private SessionFactory  sf =null;private Session  se =null;private Transaction  tr =null;//构造方法public UserDAO(){//初始化Hibernatecfg= new Configuration().configure();//获取配置文件sr= new StandardServiceRegistryBuilder()//注册.applySettings(cfg.getProperties()).build();}//private void init(){sf = cfg.buildSessionFactory(sr);se =sf.openSession();tr = se.beginTransaction();}private void destory(){tr.commit();se.close();sf.close();}//保存userpublic User insert(User user)//添加{init();se.save(user);destory();return user;}//查询列表public List<User> getAll(){List<User> rtn = new ArrayList<>();init();rtn = se.createQuery("from User").list();  //类名destory();return rtn;}//删除public void delete(int userID){init();//获取对象User u = (User)se.get(User.class, userID);se.delete(u);destory();}//修改public void updateUser(int userID, User user){init();//获取对象User u = (User)se.get(User.class, userID);//通过session获取userID的信息u.setUserId(userID);u.setUserName(user.getUserName());u.setMoney(user.getMoney());u.setBirthday(user.getBirthday());destory();}//查询单条记录public User getUser (int userID){User rtn = new User();init();rtn = (User)se.get(User.class, userID);destory();return rtn;}}

  

转载于:https://www.cnblogs.com/liuyanzeng/p/6073010.html

Hibernate+Struts2进行数据的修改相关推荐

  1. 跨库事务处理 spring+hibernate+struts2+jta

    跨库事务处理 spring+hibernate+struts2+jta 最近做东西,不想数据太集中,所以将数据分散到多个数据库中,但是往多个数据库中插入数据是在是很痛苦的一件事,因为涉及到事务的一致性 ...

  2. 在 SCA Module 中使用 Hibernate 框架实现数据持久层

    一.背景 SCA(Service Component Architecture)作为服务组件体系结构,将所有的集成构件都描述为具有定义明确的接口的服务组件.SCA 还引入了模块的概念,它将服务组件集中 ...

  3. SQL Server中数据的修改是如何落盘的?

    SQL Server 维护着一个叫做buffer cache的东西, 在buffer cache中SQL Server 读取必须被取回的data pages. 数据在修改时并不是直接写到磁盘上的, 而 ...

  4. VMware 虚拟化编程(10) — VMware 数据块修改跟踪技术 CBT

    目录 目录 前文列表 数据块修改跟踪技术 CBT 为虚拟机开启 CBT CBT 修改数据块偏移量获取函数 QueryChangedDiskAreas changeId 一个 QueryChangedD ...

  5. 【RecyclerView】 十二、RecyclerView 数据更新 ( 修改单条数据 | 批量修改数据 )

    文章目录 一.修改单条数据 二.批量修改数据 三.完整代码示例 四.RecyclerView 相关资料 一.修改单条数据 修改单条数据 : 调用 RecyclerView.Adapter 的 void ...

  6. 程序通过定义学生结构体变量,存储学生的学号、姓名和3门课的成绩。函数fun的功能是:对形参b所指结构体变量中的数据进行修改,并在主函数中输出修改后的数据。...

    程序通过定义学生结构体变量,存储学生的学号.姓名和3门课的成绩.函数fun的功能是:对形参b所指结构体变量中的数据进行修改,并在主函数中输出修改后的数据.例如,若b所指变量t中的学号.姓名和三门课的成 ...

  7. 【MySQL随手记】一个踩坑记录:在安全更新模式下进行数据的修改与删除

    目录 前言 1 MySQL练习的数据准备 2 Error Code:1175与安全更新模式 2.1 Error Code:1175 2.2 安全更新模式 3  安全更新模式下的update和delet ...

  8. Hibernate上传数据到数据库,从数据库读取数据到本地模板代码

    1.Hibernate上传数据到数据库: 1 //创建一个session对象 2 Session session1=HibernateTools.getSession(); 3 //Fenciresu ...

  9. hibernate+struts2整合jar包冲突

    前几天,在用Hibernate+Struts2做项目的时候遇到了一个很棘手的问题,jar包冲突!!!先亮一下错误: 之前还不知道这是个啥错误,经过上网查找之后才知道这是jar包冲突的问题!!由于项目都 ...

最新文章

  1. 计算机三级四级机考,2017年全国计算机等级考试四级上机编程试题一
  2. 在敏捷研发过程中,Scrum Master角色的哪些事
  3. Springboot 原理篇(一)
  4. Guava包学习---Maps
  5. php 二维数组中去重,PHP实现二维数组去重功能示例
  6. How does asp.net web api work?
  7. 华为服务器修改登录密码,服务器登录修改密码
  8. JSP九大内置对象以及作用
  9. Changer常用的软件
  10. allegro怎么导出PCB文件里封装
  11. 2022邮件群发软件哪个好,群发邮件软件推荐
  12. CSS超链接标记大全
  13. 在Ubuntu18.04上编译SWASH模型
  14. 平台消息推送是如何实现的
  15. python具体学什么-python主要用于什么开发
  16. 【Java】 Java 实现 2048 小游戏
  17. 图像分类,一文入魂(上)
  18. QAT量化感知训练(一)【详解】
  19. 山东财经大学新生赛暨天梯赛选拔赛 B 流浪地球(物理题 , 动量守恒定律)
  20. python平方数_【python】升序查找100内最大平方数的方法

热门文章

  1. uinput模拟触摸屏双指放大与缩小
  2. 《C#类设计手册》读书随笔
  3. mysql摧毁重建_mysql数据文件破坏后的修复方法
  4. php如何获取图片地址,js如何直接获取网页中图片地址
  5. 计算机应用技能大赛总结,计算机技能大赛总结-20210525074517.docx-原创力文档
  6. oaf java_OAF 多语言的实现
  7. Java代码银行转钱
  8. win10间歇性闪屏_win10电脑频繁闪屏刷新怎么解决
  9. Unity可编程渲染管线系列教程(1):自定义渲染管线
  10. button默认属性值、cookie、sessionStorage、localStorage(后台管理系统遇到的问题)