`

Struts+spring+hibernate学习笔记!

阅读更多


1.WEB.XML的配置:
首先在web.xml中加入:

Java代码 复制代码 收藏代码
  1. <servlet>   
  2.   <servlet-name>SpringContextServlet</servlet-name>   
  3.   <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>   
  4.   <load-on-startup>1</load-on-startup>   
  5. </servlet>  
  <servlet>
    <servlet-name>SpringContextServlet</servlet-name>
    <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>



我的整个web.xml象这样:

Java代码 复制代码 收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>   
  2. <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">   
  3. <web-app>   
  4.   <display-name>info_web</display-name>   
  5.   <context-param>   
  6.     <param-name>contextConfigLocation</param-name>   
  7.     <param-value>/WEB-INF/applicationContext-hibernate.xml</param-value>   
  8.   </context-param>   
  9.   <filter>   
  10.     <filter-name>SetCharacterEncoding</filter-name>   
  11.     <filter-class>iclass.util.SetEncodingFilter</filter-class>   
  12.     <init-param>   
  13.       <param-name>encoding</param-name>   
  14.       <param-value>GBK</param-value>   
  15.     </init-param>   
  16.   </filter>   
  17.   <filter>   
  18.     <filter-name>FilterRedirector</filter-name>   
  19.     <filter-class>org.apache.cactus.server.FilterTestRedirector</filter-class>   
  20.   </filter>   
  21.   <filter-mapping>   
  22.     <filter-name>SetCharacterEncoding</filter-name>   
  23.     <url-pattern>/*</url-pattern>   
  24.   </filter-mapping>   
  25.   <filter-mapping>   
  26.     <filter-name>FilterRedirector</filter-name>   
  27.     <url-pattern>/FilterRedirector</url-pattern>   
  28.   </filter-mapping>   
  29.   <servlet>   
  30.     <servlet-name>SpringContextServlet</servlet-name>   
  31.     <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>   
  32.     <load-on-startup>1</load-on-startup>   
  33.   </servlet>   
  34.   <servlet>   
  35.     <servlet-name>ServletRedirector</servlet-name>   
  36.     <servlet-class>org.apache.cactus.server.ServletTestRedirector</servlet-class>   
  37.   </servlet>   
  38.   <servlet>   
  39.     <servlet-name>JspRedirector</servlet-name>   
  40.     <jsp-file>/jspRedirector.jsp</jsp-file>   
  41.   </servlet>   
  42.   <servlet>   
  43.     <servlet-name>action</servlet-name>   
  44.     <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>   
  45.     <init-param>   
  46.       <param-name>config</param-name>   
  47.       <param-value>/WEB-INF/struts-config.xml</param-value>   
  48.     </init-param>   
  49.     <init-param>   
  50.       <param-name>debug</param-name>   
  51.       <param-value>2</param-value>   
  52.     </init-param>   
  53.     <init-param>   
  54.       <param-name>application</param-name>   
  55.       <param-value>ApplicationResources</param-value>   
  56.     </init-param>   
  57.     <load-on-startup>2</load-on-startup>   
  58.   </servlet>   
  59.   <servlet-mapping>   
  60.     <servlet-name>ServletRedirector</servlet-name>   
  61.     <url-pattern>/ServletRedirector</url-pattern>   
  62.   </servlet-mapping>   
  63.   <servlet-mapping>   
  64.     <servlet-name>JspRedirector</servlet-name>   
  65.     <url-pattern>/JspRedirector</url-pattern>   
  66.   </servlet-mapping>   
  67.   <servlet-mapping>   
  68.     <servlet-name>action</servlet-name>   
  69.     <url-pattern>*.do</url-pattern>   
  70.   </servlet-mapping>   
  71.   <welcome-file-list>   
  72.     <welcome-file>index.jsp</welcome-file>   
  73.   </welcome-file-list>   
  74.   <taglib>   
  75.     <taglib-uri>/tags/struts-nested</taglib-uri>   
  76.     <taglib-location>/WEB-INF/struts-nested.tld</taglib-location>   
  77.   </taglib>   
  78.   <taglib>   
  79.     <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>   
  80.     <taglib-location>/WEB-INF/struts-bean.tld</taglib-location>   
  81.   </taglib>   
  82.   <taglib>   
  83.     <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>   
  84.     <taglib-location>/WEB-INF/struts-html.tld</taglib-location>   
  85.   </taglib>   
  86.   <taglib>   
  87.     <taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>   
  88.     <taglib-location>/WEB-INF/struts-logic.tld</taglib-location>   
  89.   </taglib>   
  90.   <taglib>   
  91.     <taglib-uri>/WEB-INF/struts-tiles.tld</taglib-uri>   
  92.     <taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>   
  93.   </taglib>   
  94.   <taglib>   
  95.     <taglib-uri>/WEB-INF/struts-nested.tld</taglib-uri>   
  96.     <taglib-location>/WEB-INF/struts-nested.tld</taglib-location>   
  97.   </taglib>   
  98. </web-app>  
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
  <display-name>info_web</display-name>
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/applicationContext-hibernate.xml</param-value>
  </context-param>
  <filter>
    <filter-name>SetCharacterEncoding</filter-name>
    <filter-class>iclass.util.SetEncodingFilter</filter-class>
    <init-param>
      <param-name>encoding</param-name>
      <param-value>GBK</param-value>
    </init-param>
  </filter>
  <filter>
    <filter-name>FilterRedirector</filter-name>
    <filter-class>org.apache.cactus.server.FilterTestRedirector</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>SetCharacterEncoding</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  <filter-mapping>
    <filter-name>FilterRedirector</filter-name>
    <url-pattern>/FilterRedirector</url-pattern>
  </filter-mapping>
  <servlet>
    <servlet-name>SpringContextServlet</servlet-name>
    <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet>
    <servlet-name>ServletRedirector</servlet-name>
    <servlet-class>org.apache.cactus.server.ServletTestRedirector</servlet-class>
  </servlet>
  <servlet>
    <servlet-name>JspRedirector</servlet-name>
    <jsp-file>/jspRedirector.jsp</jsp-file>
  </servlet>
  <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <init-param>
      <param-name>debug</param-name>
      <param-value>2</param-value>
    </init-param>
    <init-param>
      <param-name>application</param-name>
      <param-value>ApplicationResources</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>ServletRedirector</servlet-name>
    <url-pattern>/ServletRedirector</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>JspRedirector</servlet-name>
    <url-pattern>/JspRedirector</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <taglib>
    <taglib-uri>/tags/struts-nested</taglib-uri>
    <taglib-location>/WEB-INF/struts-nested.tld</taglib-location>
  </taglib>
  <taglib>
    <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
    <taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
  </taglib>
  <taglib>
    <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
    <taglib-location>/WEB-INF/struts-html.tld</taglib-location>
  </taglib>
  <taglib>
    <taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
    <taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
  </taglib>
  <taglib>
    <taglib-uri>/WEB-INF/struts-tiles.tld</taglib-uri>
    <taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>
  </taglib>
  <taglib>
    <taglib-uri>/WEB-INF/struts-nested.tld</taglib-uri>
    <taglib-location>/WEB-INF/struts-nested.tld</taglib-location>
  </taglib>
</web-app>



2.spring配置
配置文件为applicationContext-hibernate.xml,在此配置文件中,配了POJO层,商业逻辑层,DAO层,和事务管理

Java代码 复制代码 收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>   
  2. <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">   
  3.   
  4. <beans>      
  5.     <!-- ========================= Start of PERSISTENCE DEFINITIONS ========================= -->     
  6.        
  7.     <!-- Choose the dialect that matches your "dataSource" definition -->   
  8.   
  9.     <bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">   
  10.         <property name="driverClassName">   
  11.             <value>org.gjt.mm.mysql.Driver</value>   
  12.         </property>   
  13.         <property name="url">   
  14.             <value>jdbc:mysql://localhost:3306/info_web?useUnicode=true&amp;characterEncoding=GBK</value>   
  15.         </property>   
  16.         <property name="username">   
  17.             <value>root</value>   
  18.         </property>   
  19.         <property name="password">   
  20.             <value>123456</value>   
  21.         </property>   
  22.     </bean>   
  23.        
  24.     <bean id="mySessionFactory" class="org.springframework.orm.hibernate.LocalSessionFactoryBean">   
  25.         <property name="mappingResources">   
  26.             <list>   
  27.                 <value>infoweb/pojo/Answer.hbm.xml</value>   
  28.                 <value>infoweb/pojo/Board.hbm.xml</value>   
  29.                 <value>infoweb/pojo/Image.hbm.xml</value>   
  30.                 <value>infoweb/pojo/Info.hbm.xml</value>   
  31.             </list>   
  32.         </property>          
  33.            
  34.         <property name="hibernateProperties">   
  35.             <props>   
  36.                 <prop key="hibernate.dialect">net.sf.hibernate.dialect.MySQLDialect</prop>   
  37.                 <prop key="hibernate.show_sql">true</prop>   
  38.                 <prop key="hibernate.cglib.use_reflection_optimizer">true</prop>   
  39.             </props>   
  40.         </property>      
  41.   
  42.         <property name="dataSource"><ref bean="myDataSource"/></property>   
  43.     </bean>   
  44.   
  45.   
  46.   
  47.     <!-- Transaction manager for a single Hibernate SessionFactory (alternative to JTA); -->   
  48.     <bean id="myTransactionManager" class="org.springframework.orm.hibernate.HibernateTransactionManager">   
  49.         <property name="sessionFactory"><ref local="mySessionFactory"/></property>   
  50.     </bean>   
  51.        
  52.   
  53.     <!-- ***** Board  SERVICE ***** -->   
  54.     <bean id="boardService" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">     
  55.         <property name="transactionManager"><ref local="myTransactionManager"/></property>   
  56.         <property name="target"><ref local="boardServiceSpring"/></property>   
  57.         <property name="transactionAttributes">   
  58.             <props>   
  59.                 <prop key="get*">PROPAGATION_REQUIRED,readOnly,-BoardException</prop>   
  60.                 <prop key="set*">PROPAGATION_REQUIRED,-BoardException</prop>   
  61.                 <prop key="modify*">PROPAGATION_REQUIRED,-BoardException</prop>   
  62.                 <prop key="remove*">PROPAGATION_REQUIRED,-BoardException</prop>   
  63.             </props>   
  64.         </property>   
  65.     </bean>   
  66.   
  67.     <!-- board primary business object implementation -->   
  68.     <bean id="boardServiceSpring" class="infoweb.service.BoardServiceSpringImpl">   
  69.         <property name="boardTreeDAO"><ref local="boardTreeDAO"/></property>   
  70.     </bean>   
  71.        
  72.   
  73.     <!-- DAO board: Hibernate implementation -->   
  74.     <bean id="boardTreeDAO" class="infoweb.dao.BoardTreeDAOImpl">   
  75.         <property name="sessionFactory"><ref local="mySessionFactory"/></property>   
  76.     </bean>   
  77.   
  78.     <!-- DAO info: Hibernate implementation -->   
  79.     <bean id="infoDAO" class="infoweb.dao.InfoDAOImpl">   
  80.         <property name="sessionFactory"><ref local="mySessionFactory"/></property>   
  81.     </bean>   
  82. </beans>  
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>	
	<!-- ========================= Start of PERSISTENCE DEFINITIONS ========================= -->  
	
	<!-- Choose the dialect that matches your "dataSource" definition -->

	<bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
		<property name="driverClassName">
			<value>org.gjt.mm.mysql.Driver</value>
		</property>
		<property name="url">
			<value>jdbc:mysql://localhost:3306/info_web?useUnicode=true&amp;characterEncoding=GBK</value>
		</property>
		<property name="username">
			<value>root</value>
		</property>
		<property name="password">
			<value>123456</value>
		</property>
	</bean>
	
	<bean id="mySessionFactory" class="org.springframework.orm.hibernate.LocalSessionFactoryBean">
		<property name="mappingResources">
			<list>
				<value>infoweb/pojo/Answer.hbm.xml</value>
				<value>infoweb/pojo/Board.hbm.xml</value>
				<value>infoweb/pojo/Image.hbm.xml</value>
				<value>infoweb/pojo/Info.hbm.xml</value>
			</list>
		</property>		
		
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">net.sf.hibernate.dialect.MySQLDialect</prop>
				<prop key="hibernate.show_sql">true</prop>
				<prop key="hibernate.cglib.use_reflection_optimizer">true</prop>
			</props>
		</property>	

		<property name="dataSource"><ref bean="myDataSource"/></property>
	</bean>



	<!-- Transaction manager for a single Hibernate SessionFactory (alternative to JTA); -->
	<bean id="myTransactionManager" class="org.springframework.orm.hibernate.HibernateTransactionManager">
		<property name="sessionFactory"><ref local="mySessionFactory"/></property>
	</bean>
	

	<!-- ***** Board  SERVICE ***** -->
	<bean id="boardService" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">	
		<property name="transactionManager"><ref local="myTransactionManager"/></property>
		<property name="target"><ref local="boardServiceSpring"/></property>
		<property name="transactionAttributes">
			<props>
				<prop key="get*">PROPAGATION_REQUIRED,readOnly,-BoardException</prop>
				<prop key="set*">PROPAGATION_REQUIRED,-BoardException</prop>
				<prop key="modify*">PROPAGATION_REQUIRED,-BoardException</prop>
				<prop key="remove*">PROPAGATION_REQUIRED,-BoardException</prop>
			</props>
		</property>
	</bean>

	<!-- board primary business object implementation -->
	<bean id="boardServiceSpring" class="infoweb.service.BoardServiceSpringImpl">
		<property name="boardTreeDAO"><ref local="boardTreeDAO"/></property>
	</bean>
	

	<!-- DAO board: Hibernate implementation -->
	<bean id="boardTreeDAO" class="infoweb.dao.BoardTreeDAOImpl">
		<property name="sessionFactory"><ref local="mySessionFactory"/></property>
	</bean>

	<!-- DAO info: Hibernate implementation -->
	<bean id="infoDAO" class="infoweb.dao.InfoDAOImpl">
		<property name="sessionFactory"><ref local="mySessionFactory"/></property>
	</bean>
</beans>



3.做DAO代码,

Java代码 复制代码 收藏代码
  1. package infoweb.dao;   
  2.   
  3. import java.util.List;   
  4. import java.util.Iterator;   
  5.   
  6. import infoweb.pojo.Board;   
  7.   
  8.   
  9. import net.sf.hibernate.HibernateException;   
  10. import net.sf.hibernate.Query;   
  11. import net.sf.hibernate.Session;   
  12.   
  13. import org.springframework.orm.hibernate.HibernateCallback;   
  14. import org.springframework.orm.hibernate.support.HibernateDaoSupport;   
  15.   
  16.   
  17. /**  
  18.  * <p>Title: 版块分类DAOImpl</p>  
  19.  * <p>Description: 用树型结构实现</p>  
  20.  * <p>Copyright: Copyright (c); 2004</p>  
  21.  * <p>Company: </p>  
  22.  * @author 段洪杰  
  23.  * @version 1.0  
  24.  */  
  25.   
  26.   
  27. public class BoardTreeDAOImpl extends HibernateDaoSupport implements  
  28.     IBoardTreeDAO {   
  29.   
  30.   
  31.   /**  
  32.    * 构造函数  
  33.    */  
  34.   public BoardTreeDAOImpl(); {   
  35.     super();;   
  36.   }   
  37.   
  38.   
  39.   /**  
  40.    * 通过ID取得版块  
  41.    * @param id String  
  42.    * @return Board  
  43.    */  
  44.   
  45.   public Board getBoardById(String id); {   
  46.     Board board = (Board); getHibernateTemplate();.load(Board.class, id);;   
  47.     return board;   
  48.   }   
  49.   
  50.   
  51.   /**  
  52.    * 取根叶  
  53.    * @return Iterator  
  54.    */  
  55.   public Iterator getRoots(); throws HibernateException {   
  56.     String queryString =   
  57.         "select board from Board as board where board.parentId='root' order by board.id desc";   
  58.     List roots = getHibernateTemplate();.find(queryString);;   
  59.     return roots.iterator();;   
  60.   }   
  61.   
  62.   
  63.   /**  
  64.    * 存根叶  
  65.    * @param board Board  
  66.    */  
  67.   public void setRoot(Board board); {   
  68.     board.setParentId("root");;   
  69.     getHibernateTemplate();.save(board);;   
  70.   }   
  71.   
  72.   
  73.   /**  
  74.    * 取子叶  
  75.    * @param  parentid String  
  76.    * @return List  
  77.    */  
  78.   public Iterator getChildren(String parentid); {   
  79.     /*  
  80.          String queryString =  
  81.      "select board as Board where board.parent_id='parentid' order by board.id desc";  
  82.          List children = getHibernateTemplate();.find(queryString);;  
  83.          return children;  
  84.      */  
  85.     Board parent = (Board); getHibernateTemplate();.load(Board.class, parentid);;   
  86.     return parent.getChildren();.iterator();;   
  87.   }   
  88.   
  89.   
  90.   /**  
  91.    * 取子叶数  
  92.    * @param parentid String  
  93.    * @return int  
  94.    */  
  95.   
  96.   public int getChildrenCount(String parentid); {   
  97.     /*  
  98.          String queryString =  
  99.      "select count(*); Board where board.parent_id='parentid' order by board.id desc";  
  100.          List children = getHibernateTemplate();.find(queryString);;  
  101.          int count = ((Integer); children.iterator();.next(););.intValue();;  
  102.          return count;  
  103.      */  
  104.     Board parent = (Board); getHibernateTemplate();.load(Board.class, parentid);;   
  105.     int count = parent.getChildren();.size();;   
  106.     return count;   
  107.   }   
  108.   
  109.   
  110.   /**  
  111.    * 存子叶  
  112.    * @param parentLeaf Leaf  
  113.    */  
  114.   public void setChild(Board board, String parentid); {   
  115.     board.setParentId(parentid);;   
  116.     getHibernateTemplate();.save(board);;   
  117.   }   
  118.   
  119.   
  120.   /**  
  121.    *  
  122.    * 删除该叶和它的子叶  
  123.    * @param board Board  
  124.    */  
  125.   public void deleteBranch(Board board); {   
  126.       getHibernateTemplate();.delete(board);;   
  127.   }   
  128.   
  129.   
  130.   /**  
  131.    * 根据子叶得到父叶  
  132.    * @param child Board  
  133.    * @return Board  
  134.    */  
  135.   public Board getParentByChild(Board child); {   
  136.     String parentId = child.getParentId();;   
  137.     Board parent = (Board); getHibernateTemplate();.load(Board.class, parentId);;   
  138.     return parent;   
  139.   }   
  140.   
  141.   
  142.   /**  
  143.    * 通过子ID得到父叶  
  144.    * @param id String  
  145.    * @return Board  
  146.    */  
  147.   public Board getParentByChildId(String id); {   
  148.     Board child = (Board); getHibernateTemplate();.load(Board.class, id);;   
  149.     Board parent = (Board); getHibernateTemplate();.load(Board.class,child.getParentId(););;   
  150.     return parent;   
  151.   }   
  152. }  
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代码 复制代码 收藏代码
  1. package infoweb.service;   
  2.   
  3. import java.util.List;   
  4. import java.util.Iterator;   
  5. import infoweb.dao.BoardTreeDAOImpl;   
  6. import infoweb.dao.IBoardTreeDAO;   
  7. import infoweb.pojo.Board;   
  8. import infoweb.exception.BoardException;   
  9. import net.sf.hibernate.HibernateException;   
  10.   
  11. /**  
  12.  * <p>Title: </p>  
  13.  * <p>Description: </p>  
  14.  * <p>Copyright: Copyright (c); 2004</p>  
  15.  * <p>Company: </p>  
  16.  * @author 段洪杰  
  17.  * @version 1.0  
  18.  */  
  19. public class BoardServiceSpringImpl implements IBoardService {   
  20.   
  21.     private IBoardTreeDAO boardTreeDAO;   
  22.   
  23.     public BoardServiceSpringImpl(); {   
  24.         super();;   
  25.     }   
  26.   
  27.     /**  
  28.      * 取所有roots版块  
  29.      * @return Iterator  
  30.      */  
  31.     public Iterator getRoots(); throws BoardException {   
  32.         Iterator roots = null;   
  33.         try {   
  34.             roots = boardTreeDAO.getRoots();;   
  35.         } catch (Exception ex); {   
  36.             throw new BoardException("取ROOT版块时出错! " + ex.toString(););;   
  37.         }   
  38.         return roots;   
  39.     }   
  40.   
  41.     /**  
  42.      * 增加Root新版块  
  43.      * @param board Board  
  44.      */  
  45.     public void setRoot(Board board); throws BoardException {   
  46.         try {   
  47.             boardTreeDAO.setRoot(board);;   
  48.         } catch (Exception ex); {   
  49.             throw new BoardException("增加ROOT版块时出错! " + ex.toString(););;   
  50.         }   
  51.     }   
  52.   
  53.     /**  
  54.      * 删除版块 (包含下级版块);  
  55.      * @param board Board  
  56.      */  
  57.     public void removeBoard(Board board); throws BoardException {   
  58.         try {   
  59.             boardTreeDAO.deleteBranch(board);;   
  60.         } catch (Exception ex); {   
  61.             throw new BoardException("删除版块时出错! " + ex.toString(););;   
  62.         }   
  63.     }   
  64.   
  65.     /**  
  66.      *  
  67.      * @return IBoardTreeDAO  
  68.      */  
  69.     public IBoardTreeDAO getBoardTreeDAO(); {   
  70.         return boardTreeDAO;   
  71.     }   
  72.   
  73.     /**  
  74.      *  
  75.      * @param boardTreeDAO IBoardTreeDAO  
  76.      */  
  77.     public void setBoardTreeDAO(IBoardTreeDAO boardTreeDAO); {   
  78.         this.boardTreeDAO = boardTreeDAO;   
  79.     }   
  80.   
  81. }  
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(); {
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics