您的位置:首页 > 编程语言 > Java开发

学习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;

}

}
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"););;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: