struts+spring+hibernate的web应用(3.2)

  1.     public   int  getTotalRows()   {   
  2.          return  totalRows;   
  3.     }    
  4.       public   void  first()   {   
  5.         currentPage  =   1 ;   
  6.         startRow  =   0 ;   
  7.     }    
  8.       public   void  previous()   {   
  9.          if  (currentPage  ==   1 )   {   
  10.              return ;   
  11.         }    
  12.         currentPage -- ;   
  13.         startRow  =  (currentPage  -   1 )  *  pageSize;   
  14.     }    
  15.       public   void  next()   {   
  16.          if  (currentPage  <  totalPages)   {   
  17.             currentPage ++ ;   
  18.         }    
  19.         startRow  =  (currentPage  -   1 )  *  pageSize;   
  20.     }    
  21.       public   void  last()   {   
  22.         currentPage  =  totalPages;   
  23.         startRow  =  (currentPage  -   1 )  *  pageSize;   
  24.     }    
  25.       public   void  refresh( int  _currentPage)   {   
  26.         currentPage  =  _currentPage;   
  27.          if  (currentPage  >  totalPages)   {   
  28.             last();   
  29.         }    
  30.     }    
  31. }   

 
PagerService 类,主要有个 getPager 方法返回 Pager 类。代码如下:
 
  1.  package  com.game.commons;   
  2.   
  3.  public   class  PagerService   {   
  4.      public  Pager getPager(String currentPage,String pagerMethod, int  totalRows)   {   
  5.          //     定义pager对象,用于传到页面    
  6.          Pager pager  =   new  Pager(totalRows);   
  7.          //     如果当前页号为空,表示为首次查询该页   
  8.          //     如果不为空,则刷新pager对象,输入当前页号等信息    
  9.            if  (currentPage  !=   null )   {   
  10.             pager.refresh(Integer.parseInt(currentPage));   
  11.         }    
  12.          //     获取当前执行的方法,首页,前一页,后一页,尾页。    
  13.            if  (pagerMethod  !=   null )   {   
  14.              if  (pagerMethod.equals( " first " ))   {   
  15.                 pager.first();   
  16.             }   else   if  (pagerMethod.equals( " previous " ))   {   
  17.                 pager.previous();   
  18.             }   else   if  (pagerMethod.equals( " next " ))   {   
  19.                 pager.next();   
  20.             }   else   if  (pagerMethod.equals( " last " ))   {   
  21.                 pager.last();   
  22.             }    
  23.         }    
  24.          return  pager;   
  25.     }    
  26. }    
 
这个分页方法比较简单,而且功能也齐全,许多页面级的开源 table 中分页很多也是基于这个原理,所以理解了这个分页,对其他各种分页技术的理解也就迎刃而解了。
服务层的代码就这些了,接下来就可以写 spring 的配置文件来用 spring 管理这些 Dao 和 Service 了。
在 spring-context 包中新建 applicationContext.xml 。配置的写法如下:
  1. <? xml version="1.0" encoding="ISO-8859-1" ?>    
  2.  <! DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd" >    
  3.     
  4.  < beans >    
  5.   
  6.      <!--  dataSource config  -->    
  7.      < bean  id ="dataSource"  class ="org.springframework.jndi.JndiObjectFactoryBean" >    
  8.          < property  name ="jndiName" >    
  9.              < value > java:comp/env/jdbc/game </ value >    
  10.          </ property >    
  11.      </ bean >    
  12.   
  13.      <!--  SessionFactory  -->    
  14.      < bean  id ="sessionFactory"    class ="org.springframework.orm.hibernate3.LocalSessionFactoryBean" >     
  15.          < property  name ="dataSource" >    
  16.              < ref  bean ="dataSource" />    
  17.          </ property >    
  18.          < property  name ="configLocation" >    
  19.              < value > classpath:com\game\bean\hibernate\hibernate.cfg.xml </ value >    
  20.          </ property >            
  21.      </ bean >    
  22.        
  23.      <!--  TransactionManager   -->    
  24.      < bean  id ="transactionManager"    
  25.         class ="org.springframework.orm.hibernate3.HibernateTransactionManager" >    
  26.          < property  name ="sessionFactory" >    
  27.              < ref  local ="sessionFactory" />    
  28.          </ property >    
  29.      </ bean >    
  30.   
  31.      <!--  DAO  -->    
  32.      < bean  id ="productsDao"  class ="com.game.products.dao.hibernate.ProductsMapDao" >    
  33.          < property  name ="sessionFactory" >    
  34.              < ref  bean ="sessionFactory" />    
  35.          </ property >    
  36.      </ bean >    
  37.        
  38.      <!--  Services  -->    
  39.      < bean  id ="productsService"  class ="com.game.products.services.ProductsServiceImp" >    
  40.          < property  name ="productsDao" >    
  41.              < ref  bean ="productsDao" />    
  42.          </ property >    
  43.      </ bean >     
  44.   
  45.      < bean  id ="pagerService"  class ="com.game.commons.PagerService" >    
  46.      </ bean >  
  47.   
  48. </beans>    

 
配置文件不难,主要是些 IOC 控制。数据库链接我采用的是数据源方式,需要在 tomcat 的conf文件夹下的 server.xml 中添加数据源,添加的数据如下:
  1. < Context  path ="/game"  docBase ="D:\tomcat-5.5.20\webapps\game"  debug ="0"   reloadable ="true" >    
  2.          < Resource  
  3.               name ="jdbc/game"    
  4.               type ="javax.sql.DataSource"    
  5.               password =""    
  6.               driverClassName ="net.sourceforge.jtds.jdbc.Driver"    
  7.               maxIdle ="2"    
  8.               maxWait ="5000"    
  9.               username ="sa"    
  10.               url ="jdbc:jtds:sqlserver://127.0.0.1:16899/game"    
  11.               maxActive ="4"   />    
  12.     
  13.   </ Context >    

 
这个数据源是针对 tomcat 5.5 以上版本的,以下版本的写法有所不同,不同之处可以用 google 搜索得知。这个数据源很简单,并没有过多的配置来优化系统,只是为了让项目更容易让人理解。需要注意都是,我的数据链接的JDBC包是jtds包,而不是普通的那个三个jar包。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值