zoukankan      html  css  js  c++  java
  • 用Hibernate和Struts2+jsp实现分页查询、修改删除

    1.首先用get的方法传递一个页数过去

    2.通过Struts2跳转到Action

    3.通过request接受主页面index传过的页数,此时页数是1,

    然后调用service层的方法获取DAO层分页查询的方法

    service

    DAO

    然后在放回到action层,重新把页数以及list集合里的user对象内容用request写进去,传的下个页面

    Struts

     接受user对象便利显示在页面

     接收页数,并用get方法重写页数进行传递,形成方法链

     

    注意:修改和删除,在重定向action的时候也把页数传递过去

    具体代码:

    <%@ 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>Insert title here</title>
    </head>
    <body>
    <a href="addUser">添加用户</a>
    
    
    <br><br>
    <a href="selectUser?yeshu=1">用户列表</a>
    </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?yeshu=1</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?yeshu=1</result>
    		</action>
    		
    		
    	</package>
    
    </struts>
    

      

    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
    		{
    			//调用查询的方法
    			
    			
    			//得到原生 的request
    			HttpServletRequest hsr = ServletActionContext.getRequest();
    			int yeshu = Integer.parseInt(hsr.getParameter("yeshu"));//接收index传过来的yeshu
    			
    			
    			List<User>  lu = new UserService().getAll( yeshu);
    			
    			hsr.setAttribute("yeshu", yeshu);//重新添加request传过的页数,改变页码(页码链)
    			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");
    			int userID = Integer.parseInt(userid);
    			//将从用户列表页面获取的id 放入request,目的:为了在修改页面获取当前行的用户id
    
    			hsr.setAttribute("userid", userID);
    			new UserService().getOntUser(userID);
    			rtn="success";
    		}
    		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(int yeshu)
    	{
    		//return new UserDAO().getAll(yeshu);
    		return new UserDAO().getFen(yeshu);//分页查询
    	}
    	
    	
    	//删除
    	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(int yeshu)
    	{
    		List<User> rtn = new ArrayList<>();
    		init();
    		//rtn = se.createQuery("from User").list();  //类名
    		//设置开始行号;页码=2
    				//(页码-1)*每页行数
    				rtn=se.createQuery("from User order by userID").setMaxResults(3)
    						.setFirstResult((yeshu-1)*2).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;
    		
    	}
    	
    	//分页查询
    	public List<User>  getFen(int yeshu)
    	{
    		init();
    		List<User>  lu = new ArrayList<>();
    		//设置开始行号;页码=2
    		//(页码-1)*每页行数
    		lu=se.createQuery("from User order by userID").setMaxResults(3)
    				.setFirstResult((yeshu-1)*3).list();
    		destory();
    		return lu;
    	}
    	
    }
    

      

    <%@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>
    <%
    //接收action请求的查询方法传过的集合
    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>");
    }
    
    %>
    <br>
    <%
    int yeshu = Integer.parseInt(request.getAttribute("yeshu").toString());
    if(lu.size()==0)
    {
    	out.print("页码超出范围");
    	response.setHeader("refresh", "3;url=selectUser?yeshu=1");
    }
    else
    {
    %>
    
    	<a href="selectUser?yeshu=<%=yeshu-1 %> ">上一页</a>
    	<a href="selectUser?yeshu=<%=yeshu+1 %> ">下一页</a>
    <% 
    }
    %>
    </body>
    </html>
    

    1修改

     

    删除

     

  • 相关阅读:
    文档浏览类的网站该如何设计?
    如何将动态生成Word文件
    Word 2007 文档结构图混乱
    Spring 配置 Spring JPA 发生错误的解决方法
    今天开始着手原来Office系统的重构
    Jetty入门
    推荐一个C语言学习教程
    博客园的第一天
    我与solr(一)--solr的配置与安装
    XML解析工具类
  • 原文地址:https://www.cnblogs.com/liuyanzeng/p/6074956.html
Copyright © 2011-2022 走看看