Hibernate+Struts2进行数据的修改

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();
//得到原生 的request
HttpServletRequest hsr = ServletActionContext.getRequest();
hsr.setAttribute("userlist", lu); rtn="success";
}
catch(Exception e)
{
e.printStackTrace();
}
return rtn; } //删除用户
public String deleteUser()
{
String rtn ="fail";
try
{
//获取userid
//得到原生 的request
HttpServletRequest 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
//得到原生 的request
HttpServletRequest 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
//得到原生 的request
HttpServletRequest 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 { //添加User
public 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()
{
//初始化Hibernate
cfg= 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();
} //保存user
public 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; } }

Hibernate+Struts2进行数据的修改的更多相关文章
- 使用Struts2实现数据校验
使用Struts2实现数据校验 为什么需要数据校验呢?答案很简单,假如当你登录想要京东,这时就需要数据校验了如果不输入用户名的话,那么就不会登陆成功,并且会提示出"请输入用户名"的 ...
- struts2:数据校验,通过Action中的validate()方法实现校验,图解
根据输入校验的处理场所的不同,可以将输入校验分为客户端校验和服务器端校验两种.服务器端验证目前有两种方式: 第一种 Struts2中提供了一个com.opensymphony.xwork2.Valid ...
- struts2:数据校验,通过Action中的validate()方法实现校验(续:多业务方法时的不同验证处理)
前文:struts2:数据校验,通过Action中的validate()方法实现校验,图解 如果定义的Action中存在多个逻辑处理方法,且不同的处理逻辑可能需要不同的校验规则,在这种情况下,就需要通 ...
- Hibernate3回顾-5-简单介绍Hibernate session对数据的增删改查
5. Hibernate对数据的增删改查 5.1Hibernate加载数据 两种:get().load() 一. Session.get(Class arg0, Serializable arg1)方 ...
- Struts2(三)——数据在框架中的数据流转问题
一款软件,无在乎对数据的处理.而B/S软件,一般都是用户通过浏览器客户端输入数据,传递到服务器,服务器进行相关处理,然后返回到指定的页面,进行相关显示,完成相关功能.这篇博客重点简述一下Struts2 ...
- (转)struts2:数据校验,通过XWork校验框架实现(validation.xml)
转载自:http://www.cnblogs.com/nayitian/p/3475661.html struts2:数据校验,通过XWork校验框架实现(validation.xml) 根据输入 ...
- MySQL数据库5 - 插入数据,修改数据,删除数据
一.插入数据 1. 所有列都插入值 INSERT [INTO] TABLE_NAME VALUES(V1,V2....Vn); 特点:列值同数,列值同序 eg: insert into users v ...
- struts2 校验数据的有效性 2种方式
Struts2的数据校验: 数据的校验分为客户端校验和服务器端两种: 客户端校验:JS完成的校验.(为了提升用户体验.减少用户的输入错误) 服务器端校验:在后台的校验.(必须的.) 手动编码进行校验: ...
- struts2:数据校验,通过XWork校验框架实现(validation.xml)
根据输入校验的处理场所的不同,可以将输入校验分为客户端校验和服务器端校验两种.服务器端验证目前有两种方式: 第一种: 参考:struts2:数据校验,通过Action中的validate()方法实现校 ...
随机推荐
- 如何控制Java中的线程,总结了3种方法...
问题:利用Java多线程,轮流打印数字,也就是怎么控制线程.... 1:通过synchronized的关键字,对类的static final 成员进行Lock,锁住对象,来实现同步. private ...
- 4.0 和4.5 app 和generic,xaml的问题
4.0里面不支持Generic.xaml里面 <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source=& ...
- hdu 4770(枚举 + dfs爆搜)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4770 思路:由于最多只有15个".",可以直接枚举放置的位置,然后判断是否能够全部 ...
- Android Studio 插件整理
1.GsonFormat 快速将json字符串转换成一个Java Bean,免去我们根据json字符串手写对应Java Bean的过程. 使用方法:快捷键Alt+S也可以使用Alt+Insert选择G ...
- 【MyEcplise SVN】myEcplise上安装SVN的多种方式
第一种:SVN的在线安装 1.打开MyEclipse,找到顶部菜单栏 Help(帮助)-Install from Site-(从网站安装),如下图 2. 然后: 点击Install from Site ...
- Loadrunner的自定义监控器
Loadrunner的自定义监控器 可以使用lr_user_data_point()来实现自定义监控,下面是一个小例子: double showsomething(); Action(){ doubl ...
- 深入理解KMP算法
前言:本人最近在看<大话数据结构>字符串模式匹配算法的内容,但是看得很迷糊,这本书中这块的内容感觉基本是严蔚敏<数据结构>的一个翻版,此书中给出的代码实现确实非常精炼,但是个人 ...
- 创建一个Portlet工程
使用Liferay的SDK创建一个简单的Portlet,此Portlet不包括业务逻辑.不包括数据库,只有简单的页面展现,用以说明Portlet的开发过程. 一.创建Portlet工程 1.打开Lif ...
- [自动运维]ant脚本打包,上传文件到指定服务器,并部署
1.根节点使用,表示根目录为当前目录,默认启动的target为build,项目名称为othersysm, <project basedir="." default=" ...
- 编写css相关注意事项以及小技巧
一.小技巧 1.对于开始写网站css之前一般都要对css进行重置(养成写注释的习惯): ;;} body{font-size:16px;} img{border:none;} li{list-styl ...