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

本文介绍了一个简单的分页服务实现,包括Pager类与PagerService类的定义及使用方法。此外,还提供了Spring配置示例和数据库连接配置。
  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包。
基于数据驱动的 Koopman 算子的递归神经网络模型线性化,用于纳米定位系统的预测控制研究(Matlab代码实现)内容概要:本文围绕“基于数据驱动的Koopman算子的递归神经网络模型线性化”展开,旨在研究纳米定位系统的预测控制问题,并提供完整的Matlab代码实现。文章结合数据驱动方法与Koopman算子理论,利用递归神经网络(RNN)对非线性系统进行建模与线性化处理,从而提升纳米级定位系统的精度与动态响应性能。该方法通过提取系统隐含动态特征,构建近似线性模型,便于后续模型预测控制(MPC)的设计与优化,适用于高精度自动化控制场景。文中还展示了相关实验验证与仿真结果,证明了该方法的有效性和先进性。; 适合人群:具备一定控制理论基础和Matlab编程能力,从事精密控制、智能制造、自动化或相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于纳米级精密定位系统(如原子力显微镜、半导体制造设备)中的高性能控制设计;②为非线性系统建模与线性化提供一种结合深度学习与现代控制理论的新思路;③帮助读者掌握Koopman算子、RNN建模与模型预测控制的综合应用。; 阅读建议:建议读者结合提供的Matlab代码逐段理解算法实现流程,重点关注数据预处理、RNN结构设计、Koopman观测矩阵构建及MPC控制器集成等关键环节,并可通过更换实际系统数据进行迁移验证,深化对方法泛化能力的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值