学习Struts+spring+hibernate的笔记(2)
2009-04-02 23:01
489 查看
3.做DAO代码,
Java代码
package infoweb.dao;
import java.util.List;
import java.util.Iterator;
import infoweb.pojo.Board;
import net.sf.hibernate.HibernateException;
import net.sf.hibernate.Query;
import net.sf.hibernate.Session;
import org.springframework.orm.hibernate.HibernateCallback;
import org.springframework.orm.hibernate.support.HibernateDaoSupport;
/**
* <p>Title: 版块分类DAOImpl</p>
* <p>Description: 用树型结构实现</p>
* <p>Copyright: Copyright (c); 2004</p>
* <p>Company: </p>
* @author 段洪杰
* @version 1.0
*/
public class BoardTreeDAOImpl extends HibernateDaoSupport implements
IBoardTreeDAO {
/**
* 构造函数
*/
public BoardTreeDAOImpl(); {
super();;
}
/**
* 通过ID取得版块
* @param id String
* @return Board
*/
public Board getBoardById(String id); {
Board board = (Board); getHibernateTemplate();.load(Board.class, id);;
return board;
}
/**
* 取根叶
* @return Iterator
*/
public Iterator getRoots(); throws HibernateException {
String queryString =
"select board from Board as board where board.parentId='root' order by board.id desc";
List roots = getHibernateTemplate();.find(queryString);;
return roots.iterator();;
}
/**
* 存根叶
* @param board Board
*/
public void setRoot(Board board); {
board.setParentId("root");;
getHibernateTemplate();.save(board);;
}
/**
* 取子叶
* @param parentid String
* @return List
*/
public Iterator getChildren(String parentid); {
/*
String queryString =
"select board as Board where board.parent_id='parentid' order by board.id desc";
List children = getHibernateTemplate();.find(queryString);;
return children;
*/
Board parent = (Board); getHibernateTemplate();.load(Board.class, parentid);;
return parent.getChildren();.iterator();;
}
/**
* 取子叶数
* @param parentid String
* @return int
*/
public int getChildrenCount(String parentid); {
/*
String queryString =
"select count(*); Board where board.parent_id='parentid' order by board.id desc";
List children = getHibernateTemplate();.find(queryString);;
int count = ((Integer); children.iterator();.next(););.intValue();;
return count;
*/
Board parent = (Board); getHibernateTemplate();.load(Board.class, parentid);;
int count = parent.getChildren();.size();;
return count;
}
/**
* 存子叶
* @param parentLeaf Leaf
*/
public void setChild(Board board, String parentid); {
board.setParentId(parentid);;
getHibernateTemplate();.save(board);;
}
/**
*
* 删除该叶和它的子叶
* @param board Board
*/
public void deleteBranch(Board board); {
getHibernateTemplate();.delete(board);;
}
/**
* 根据子叶得到父叶
* @param child Board
* @return Board
*/
public Board getParentByChild(Board child); {
String parentId = child.getParentId();;
Board parent = (Board); getHibernateTemplate();.load(Board.class, parentId);;
return parent;
}
/**
* 通过子ID得到父叶
* @param id String
* @return Board
*/
public Board getParentByChildId(String id); {
Board child = (Board); getHibernateTemplate();.load(Board.class, id);;
Board parent = (Board); getHibernateTemplate();.load(Board.class,child.getParentId(););;
return parent;
}
}
4.做service层代码
Java代码
package infoweb.service;
import java.util.List;
import java.util.Iterator;
import infoweb.dao.BoardTreeDAOImpl;
import infoweb.dao.IBoardTreeDAO;
import infoweb.pojo.Board;
import infoweb.exception.BoardException;
import net.sf.hibernate.HibernateException;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c); 2004</p>
* <p>Company: </p>
* @author 段洪杰
* @version 1.0
*/
public class BoardServiceSpringImpl implements IBoardService {
private IBoardTreeDAO boardTreeDAO;
public BoardServiceSpringImpl(); {
super();;
}
/**
* 取所有roots版块
* @return Iterator
*/
public Iterator getRoots(); throws BoardException {
Iterator roots = null;
try {
roots = boardTreeDAO.getRoots();;
} catch (Exception ex); {
throw new BoardException("取ROOT版块时出错! " + ex.toString(););;
}
return roots;
}
/**
* 增加Root新版块
* @param board Board
*/
public void setRoot(Board board); throws BoardException {
try {
boardTreeDAO.setRoot(board);;
} catch (Exception ex); {
throw new BoardException("增加ROOT版块时出错! " + ex.toString(););;
}
}
/**
* 删除版块 (包含下级版块);
* @param board Board
*/
public void removeBoard(Board board); throws BoardException {
try {
boardTreeDAO.deleteBranch(board);;
} catch (Exception ex); {
throw new BoardException("删除版块时出错! " + ex.toString(););;
}
}
/**
*
* @return IBoardTreeDAO
*/
public IBoardTreeDAO getBoardTreeDAO(); {
return boardTreeDAO;
}
/**
*
* @param boardTreeDAO IBoardTreeDAO
*/
public void setBoardTreeDAO(IBoardTreeDAO boardTreeDAO); {
this.boardTreeDAO = boardTreeDAO;
}
}
5.做ACTION的父类
Java代码
package infoweb.web;
import javax.servlet.ServletContext;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionServlet;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
import infoweb.service.IBoardService;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c); 2004</p>
* <p>Company: </p>
* @author 段洪杰
* @version 1.0
*/
public class BaseAction extends Action {
private IBoardService boardService;
public void setServlet(ActionServlet actionServlet); {
super.setServlet(actionServlet);;
ServletContext servletContext = actionServlet.getServletContext();;
WebApplicationContext wac =
WebApplicationContextUtils.getRequiredWebApplicationContext(
servletContext);;
this.boardService = (IBoardService); wac.getBean("boardService");;
}
protected IBoardService getBoardService(); {
return boardService;
}
}
6.做action类
Java代码
package infoweb.web;
import infoweb.pojo.Board;
import org.apache.commons.beanutils.PropertyUtils;
import org.apache.struts.action.*;
import org.apache.log4j.Logger;
import javax.servlet.http.*;
import java.util.Iterator;
import java.util.Date;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c); 2004</p>
* <p>Company: </p>
* @author 段洪杰
* @version 1.0
*/
public class SetBoardAction extends BaseAction {
private static Logger log = Logger.getLogger(SetBoardAction.class);;
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm,
HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse); throws
Exception {
// SessionBean sessionBean = (SessionBean); httpServletRequest.getSession();.getAttribute("sessionBean");;
BoardForm boardForm = (BoardForm); actionForm;
//String backURL = httpServletRequest.getHeader("Referer");;
/*
if (sessionBean==null||!sessionBean.getIsLogon();); {
httpServletRequest.setAttribute("message", "系统超时,或者没有登录 .返回重新登录!");;
httpServletRequest.setAttribute("locationFile",
"location='index.jsp';");;
return actionMapping.findForward("message");;
}
*/
Board board = new Board();;
boardForm.setCreateDate(new Date(););;
PropertyUtils.copyProperties(board, boardForm);;
getBoardService();.setRoot(board);;
httpServletRequest.setAttribute("message", "版块信息录入完成!");;
httpServletRequest.setAttribute("locationFile",
"<A HREF=\"javascript:history.back();\">返回</A>");;
return (actionMapping.findForward("success"););;
}
}
Java代码
package infoweb.dao;
import java.util.List;
import java.util.Iterator;
import infoweb.pojo.Board;
import net.sf.hibernate.HibernateException;
import net.sf.hibernate.Query;
import net.sf.hibernate.Session;
import org.springframework.orm.hibernate.HibernateCallback;
import org.springframework.orm.hibernate.support.HibernateDaoSupport;
/**
* <p>Title: 版块分类DAOImpl</p>
* <p>Description: 用树型结构实现</p>
* <p>Copyright: Copyright (c); 2004</p>
* <p>Company: </p>
* @author 段洪杰
* @version 1.0
*/
public class BoardTreeDAOImpl extends HibernateDaoSupport implements
IBoardTreeDAO {
/**
* 构造函数
*/
public BoardTreeDAOImpl(); {
super();;
}
/**
* 通过ID取得版块
* @param id String
* @return Board
*/
public Board getBoardById(String id); {
Board board = (Board); getHibernateTemplate();.load(Board.class, id);;
return board;
}
/**
* 取根叶
* @return Iterator
*/
public Iterator getRoots(); throws HibernateException {
String queryString =
"select board from Board as board where board.parentId='root' order by board.id desc";
List roots = getHibernateTemplate();.find(queryString);;
return roots.iterator();;
}
/**
* 存根叶
* @param board Board
*/
public void setRoot(Board board); {
board.setParentId("root");;
getHibernateTemplate();.save(board);;
}
/**
* 取子叶
* @param parentid String
* @return List
*/
public Iterator getChildren(String parentid); {
/*
String queryString =
"select board as Board where board.parent_id='parentid' order by board.id desc";
List children = getHibernateTemplate();.find(queryString);;
return children;
*/
Board parent = (Board); getHibernateTemplate();.load(Board.class, parentid);;
return parent.getChildren();.iterator();;
}
/**
* 取子叶数
* @param parentid String
* @return int
*/
public int getChildrenCount(String parentid); {
/*
String queryString =
"select count(*); Board where board.parent_id='parentid' order by board.id desc";
List children = getHibernateTemplate();.find(queryString);;
int count = ((Integer); children.iterator();.next(););.intValue();;
return count;
*/
Board parent = (Board); getHibernateTemplate();.load(Board.class, parentid);;
int count = parent.getChildren();.size();;
return count;
}
/**
* 存子叶
* @param parentLeaf Leaf
*/
public void setChild(Board board, String parentid); {
board.setParentId(parentid);;
getHibernateTemplate();.save(board);;
}
/**
*
* 删除该叶和它的子叶
* @param board Board
*/
public void deleteBranch(Board board); {
getHibernateTemplate();.delete(board);;
}
/**
* 根据子叶得到父叶
* @param child Board
* @return Board
*/
public Board getParentByChild(Board child); {
String parentId = child.getParentId();;
Board parent = (Board); getHibernateTemplate();.load(Board.class, parentId);;
return parent;
}
/**
* 通过子ID得到父叶
* @param id String
* @return Board
*/
public Board getParentByChildId(String id); {
Board child = (Board); getHibernateTemplate();.load(Board.class, id);;
Board parent = (Board); getHibernateTemplate();.load(Board.class,child.getParentId(););;
return parent;
}
}
package infoweb.dao; import java.util.List; import java.util.Iterator; import infoweb.pojo.Board; import net.sf.hibernate.HibernateException; import net.sf.hibernate.Query; import net.sf.hibernate.Session; import org.springframework.orm.hibernate.HibernateCallback; import org.springframework.orm.hibernate.support.HibernateDaoSupport; /** * <p>Title: 版块分类DAOImpl</p> * <p>Description: 用树型结构实现</p> * <p>Copyright: Copyright (c); 2004</p> * <p>Company: </p> * @author 段洪杰 * @version 1.0 */ public class BoardTreeDAOImpl extends HibernateDaoSupport implements IBoardTreeDAO { /** * 构造函数 */ public BoardTreeDAOImpl(); { super();; } /** * 通过ID取得版块 * @param id String * @return Board */ public Board getBoardById(String id); { Board board = (Board); getHibernateTemplate();.load(Board.class, id);; return board; } /** * 取根叶 * @return Iterator */ public Iterator getRoots(); throws HibernateException { String queryString = "select board from Board as board where board.parentId='root' order by board.id desc"; List roots = getHibernateTemplate();.find(queryString);; return roots.iterator();; } /** * 存根叶 * @param board Board */ public void setRoot(Board board); { board.setParentId("root");; getHibernateTemplate();.save(board);; } /** * 取子叶 * @param parentid String * @return List */ public Iterator getChildren(String parentid); { /* String queryString = "select board as Board where board.parent_id='parentid' order by board.id desc"; List children = getHibernateTemplate();.find(queryString);; return children; */ Board parent = (Board); getHibernateTemplate();.load(Board.class, parentid);; return parent.getChildren();.iterator();; } /** * 取子叶数 * @param parentid String * @return int */ public int getChildrenCount(String parentid); { /* String queryString = "select count(*); Board where board.parent_id='parentid' order by board.id desc"; List children = getHibernateTemplate();.find(queryString);; int count = ((Integer); children.iterator();.next(););.intValue();; return count; */ Board parent = (Board); getHibernateTemplate();.load(Board.class, parentid);; int count = parent.getChildren();.size();; return count; } /** * 存子叶 * @param parentLeaf Leaf */ public void setChild(Board board, String parentid); { board.setParentId(parentid);; getHibernateTemplate();.save(board);; } /** * * 删除该叶和它的子叶 * @param board Board */ public void deleteBranch(Board board); { getHibernateTemplate();.delete(board);; } /** * 根据子叶得到父叶 * @param child Board * @return Board */ public Board getParentByChild(Board child); { String parentId = child.getParentId();; Board parent = (Board); getHibernateTemplate();.load(Board.class, parentId);; return parent; } /** * 通过子ID得到父叶 * @param id String * @return Board */ public Board getParentByChildId(String id); { Board child = (Board); getHibernateTemplate();.load(Board.class, id);; Board parent = (Board); getHibernateTemplate();.load(Board.class,child.getParentId(););; return parent; } }
4.做service层代码
Java代码
package infoweb.service;
import java.util.List;
import java.util.Iterator;
import infoweb.dao.BoardTreeDAOImpl;
import infoweb.dao.IBoardTreeDAO;
import infoweb.pojo.Board;
import infoweb.exception.BoardException;
import net.sf.hibernate.HibernateException;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c); 2004</p>
* <p>Company: </p>
* @author 段洪杰
* @version 1.0
*/
public class BoardServiceSpringImpl implements IBoardService {
private IBoardTreeDAO boardTreeDAO;
public BoardServiceSpringImpl(); {
super();;
}
/**
* 取所有roots版块
* @return Iterator
*/
public Iterator getRoots(); throws BoardException {
Iterator roots = null;
try {
roots = boardTreeDAO.getRoots();;
} catch (Exception ex); {
throw new BoardException("取ROOT版块时出错! " + ex.toString(););;
}
return roots;
}
/**
* 增加Root新版块
* @param board Board
*/
public void setRoot(Board board); throws BoardException {
try {
boardTreeDAO.setRoot(board);;
} catch (Exception ex); {
throw new BoardException("增加ROOT版块时出错! " + ex.toString(););;
}
}
/**
* 删除版块 (包含下级版块);
* @param board Board
*/
public void removeBoard(Board board); throws BoardException {
try {
boardTreeDAO.deleteBranch(board);;
} catch (Exception ex); {
throw new BoardException("删除版块时出错! " + ex.toString(););;
}
}
/**
*
* @return IBoardTreeDAO
*/
public IBoardTreeDAO getBoardTreeDAO(); {
return boardTreeDAO;
}
/**
*
* @param boardTreeDAO IBoardTreeDAO
*/
public void setBoardTreeDAO(IBoardTreeDAO boardTreeDAO); {
this.boardTreeDAO = boardTreeDAO;
}
}
package infoweb.service; import java.util.List; import java.util.Iterator; import infoweb.dao.BoardTreeDAOImpl; import infoweb.dao.IBoardTreeDAO; import infoweb.pojo.Board; import infoweb.exception.BoardException; import net.sf.hibernate.HibernateException; /** * <p>Title: </p> * <p>Description: </p> * <p>Copyright: Copyright (c); 2004</p> * <p>Company: </p> * @author 段洪杰 * @version 1.0 */ public class BoardServiceSpringImpl implements IBoardService { private IBoardTreeDAO boardTreeDAO; public BoardServiceSpringImpl(); { super();; } /** * 取所有roots版块 * @return Iterator */ public Iterator getRoots(); throws BoardException { Iterator roots = null; try { roots = boardTreeDAO.getRoots();; } catch (Exception ex); { throw new BoardException("取ROOT版块时出错! " + ex.toString(););; } return roots; } /** * 增加Root新版块 * @param board Board */ public void setRoot(Board board); throws BoardException { try { boardTreeDAO.setRoot(board);; } catch (Exception ex); { throw new BoardException("增加ROOT版块时出错! " + ex.toString(););; } } /** * 删除版块 (包含下级版块); * @param board Board */ public void removeBoard(Board board); throws BoardException { try { boardTreeDAO.deleteBranch(board);; } catch (Exception ex); { throw new BoardException("删除版块时出错! " + ex.toString(););; } } /** * * @return IBoardTreeDAO */ public IBoardTreeDAO getBoardTreeDAO(); { return boardTreeDAO; } /** * * @param boardTreeDAO IBoardTreeDAO */ public void setBoardTreeDAO(IBoardTreeDAO boardTreeDAO); { this.boardTreeDAO = boardTreeDAO; } }
5.做ACTION的父类
Java代码
package infoweb.web;
import javax.servlet.ServletContext;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionServlet;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
import infoweb.service.IBoardService;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c); 2004</p>
* <p>Company: </p>
* @author 段洪杰
* @version 1.0
*/
public class BaseAction extends Action {
private IBoardService boardService;
public void setServlet(ActionServlet actionServlet); {
super.setServlet(actionServlet);;
ServletContext servletContext = actionServlet.getServletContext();;
WebApplicationContext wac =
WebApplicationContextUtils.getRequiredWebApplicationContext(
servletContext);;
this.boardService = (IBoardService); wac.getBean("boardService");;
}
protected IBoardService getBoardService(); {
return boardService;
}
}
package infoweb.web; import javax.servlet.ServletContext; import org.apache.struts.action.Action; import org.apache.struts.action.ActionServlet; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.support.WebApplicationContextUtils; import infoweb.service.IBoardService; /** * <p>Title: </p> * <p>Description: </p> * <p>Copyright: Copyright (c); 2004</p> * <p>Company: </p> * @author 段洪杰 * @version 1.0 */ public class BaseAction extends Action { private IBoardService boardService; public void setServlet(ActionServlet actionServlet); { super.setServlet(actionServlet);; ServletContext servletContext = actionServlet.getServletContext();; WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext( servletContext);; this.boardService = (IBoardService); wac.getBean("boardService");; } protected IBoardService getBoardService(); { return boardService; } }
6.做action类
Java代码
package infoweb.web;
import infoweb.pojo.Board;
import org.apache.commons.beanutils.PropertyUtils;
import org.apache.struts.action.*;
import org.apache.log4j.Logger;
import javax.servlet.http.*;
import java.util.Iterator;
import java.util.Date;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c); 2004</p>
* <p>Company: </p>
* @author 段洪杰
* @version 1.0
*/
public class SetBoardAction extends BaseAction {
private static Logger log = Logger.getLogger(SetBoardAction.class);;
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm,
HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse); throws
Exception {
// SessionBean sessionBean = (SessionBean); httpServletRequest.getSession();.getAttribute("sessionBean");;
BoardForm boardForm = (BoardForm); actionForm;
//String backURL = httpServletRequest.getHeader("Referer");;
/*
if (sessionBean==null||!sessionBean.getIsLogon();); {
httpServletRequest.setAttribute("message", "系统超时,或者没有登录 .返回重新登录!");;
httpServletRequest.setAttribute("locationFile",
"location='index.jsp';");;
return actionMapping.findForward("message");;
}
*/
Board board = new Board();;
boardForm.setCreateDate(new Date(););;
PropertyUtils.copyProperties(board, boardForm);;
getBoardService();.setRoot(board);;
httpServletRequest.setAttribute("message", "版块信息录入完成!");;
httpServletRequest.setAttribute("locationFile",
"<A HREF=\"javascript:history.back();\">返回</A>");;
return (actionMapping.findForward("success"););;
}
}
相关文章推荐
- 学习Struts+spring+hibernate的笔记(1)
- SSH学习笔记之关于struts-spring-hibernate整合配置问
- SSH(Spring+Struts+Hibernate)学习笔记(三)Struts 2 Hello World
- SSH(Spring+Struts+Hibernate)学习笔记(二)Struts概览与MVC简述
- 学习Struts+spring+Hibernate的笔记.
- spring+struts2+hibernate的学习笔记
- SSH(Spring+Struts+Hibernate)学习笔记(一)概览
- 学习Struts+spring+hibernate的笔记
- MyEclipse — Maven+Spring+Struts+Hibernate 整合 [学习笔记-5]
- spring+Struts+hibernate学习
- 终于完成了Struts+spring+hibernate框架的学习
- OA学习笔记-005-Spring2.5与struts2.1整合
- Struts+Spring+Hibernate 整合笔记
- Struts 2 + Spring 2.0 + Hibernate 3.0整合笔记
- Java新手如何学习Spring、Struts、Hibernate三大框架?
- Hibernate+Struts整合学习,后期再继续学习spring