注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

北漂的小羊

Java编程,开发者,程序员,软件开发,编程,代码。新浪微博号:IT国子监

 
 
 

日志

 
 
关于我

在这里是面向程序员的高品质IT技术学习社区,是程序员学习成长的地方。让我们更好地用技术改变世界。请关注新浪微博号: IT国子监(http://weibo.com/itguozijian)

网易考拉推荐

使用myeclipse开发工具集成整合struts、spring、hibernate框架实例  

2012-12-03 17:56:26|  分类: eclipse |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

整合SSH思路:

        1. 确定顺序:spring->structs->hibernate,或者structs->spring->hibernate,原因我认为,spring的出现影响到hibernate生成的文件,比如sessionFactory,所以一般,包括网上其他很多的教程,都是采用把hibernate放在spring后面。

        2. 版本:structs 2.1+spring 3.0 + hibernate 3.3 

具体步骤:

        1. 创建一个web project:SSH

        2. 添加structs


使用myeclipse开发工具集成整合struts、spring、hibernate框架实例 - 天涯草 - 天涯草
 
 

       选择structs的jar包


使用myeclipse开发工具集成整合struts、spring、hibernate框架实例 - 天涯草 - 天涯草
 
 

2. 添加spring


使用myeclipse开发工具集成整合struts、spring、hibernate框架实例 - 天涯草 - 天涯草
 
 
 选择版本和要添加的jar包


使用myeclipse开发工具集成整合struts、spring、hibernate框架实例 - 天涯草 - 天涯草
 
 
 
 生成applicationContext.xml文件


使用myeclipse开发工具集成整合struts、spring、hibernate框架实例 - 天涯草 - 天涯草
 
 3.添加hibernate

   

使用myeclipse开发工具集成整合struts、spring、hibernate框架实例 - 天涯草 - 天涯草
 
 
 选择版本,并且添加相关jar包


使用myeclipse开发工具集成整合struts、spring、hibernate框架实例 - 天涯草 - 天涯草
 

 

使用前面的spring文件

使用myeclipse开发工具集成整合struts、spring、hibernate框架实例 - 天涯草 - 天涯草
 

使用之前配好的数据源

使用myeclipse开发工具集成整合struts、spring、hibernate框架实例 - 天涯草 - 天涯草
 

  注意:不生成SessionFactory文件 

使用myeclipse开发工具集成整合struts、spring、hibernate框架实例 - 天涯草 - 天涯草
 


hibernate反向工程生成DAO和DTO


使用myeclipse开发工具集成整合struts、spring、hibernate框架实例 - 天涯草 - 天涯草
 


使用myeclipse开发工具集成整合struts、spring、hibernate框架实例 - 天涯草 - 天涯草
 



4.配置web.xml

添加spring监听器,添加以下代码

Xml代码 
  1. <!--spring配置 start  -->  
  2.     <listener>  
  3.         <listener-class>  
  4.             org.springframework.web.context.ContextLoaderListener  
  5.         </listener-class>  
  6.     </listener>  
  7.     <!--     
  8.         指定spring的配置文件路径方式有2种  
  9.         一种配置到classpath路径,把applicationContext.xml放在src中,classpath:applicationContext.xml  
  10.         一种配置到web-info路径,把applicationContext.xml放在WEB-INF中,/WEB-INF/applicationContext.xml  
  11.     -->  
  12.     <context-param>  
  13.         <param-name>contextConfigLocation</param-name>  
  14.         <param-value>classpath:applicationContext.xml</param-value>  
  15.         <!-- <param-value>/WEB-INF/applicationContext-*.xml,classpath*:applicationContext-*.xml</param-value> -->  
  16.     </context-param>  
  17.     <!--spring配置 end-->  
 

 

5. 测试,CRUD简单操作


    配置struct.xml,设置action,添加以下代码:

Xml代码 
  1. <package name="SSH" extends="struts-default">  
  2.         <action name="List" class="List" method="list">  
  3.             <result>List.jsp</result>  
  4.         </action>  
  5.         <action name="Edit" class="List" method="load">  
  6.             <result>Edit.jsp</result>  
  7.         </action>  
  8.         <action name="Store" class="List" method="store">  
  9.             <result type="redirect">List.action</result>  
  10.         </action>  
  11.         <action name="Remove" class="List" method="remove">  
  12.             <result type="redirect">List.action</result>  
  13.         </action>  
  14.     </package>  
 

 配置applicationContext.xml

Xml代码 
  1.  <!-- action的处理类 -->  
  2. <bean id="List" class="action.BookAction"  scope="prototype">  
  3. <property name="dao" ref="BookDAO"></property>  
  4. </bean>   
 

List. jsp页面

Html代码 
  1. <s:form action="Remove" theme="simple">  
  2.         <table cellspacing="0">  
  3.             <thead>  
  4.                 <tr>  
  5.                     <th>Select</th>  
  6.                     <th>ISBN</th>  
  7.                     <th>Title</th>  
  8.                     <th>Price</th>  
  9.                     <th>Operation</th>  
  10.                 </tr>  
  11.             </thead>  
  12.             <tbody>  
  13.                 <s:iterator value="books">  
  14.                     <tr>  
  15.                         <td><input type="checkbox" name="isbns" value='<s:property value="isbn" />' /></td>  
  16.                         <td><s:property value="isbn" /></td>  
  17.                         <td><s:property value="title" /></td>  
  18.                         <td>$<s:property value="price" /></td>  
  19.                         <td>  
  20.                             <a href='<s:url action="Edit"><s:param name="isbn" value="isbn" /></s:url>'>  
  21.                                 Edit  
  22.                             </a>  
  23.                             &nbsp;  
  24.                             <a href='<s:url action="Remove"><s:param name="isbn" value="isbn" /></s:url>'>  
  25.                                 Delete  
  26.                             </a>  
  27.                         </td>  
  28.                     </tr>  
  29.                 </s:iterator>  
  30.             </tbody>  
  31.         </table>  
  32.         <s:submit value="Remove" /><a href="Edit.jsp">Add Book</a>  
  33.     </s:form>   


DAO:
Java代码 
  1. public class TestDAO extends HibernateDaoSupport  {  
  2.          private static final Logger log = LoggerFactory.getLogger(TestDAO.class);  
  3.         //property constants  
  4.     public static final String TITLE = "title";  
  5.     public static final String PRICE = "price";  
  6.   
  7.   
  8.   
  9.     protected void initDao() {  
  10.         //do nothing  
  11.     }  
  12.       
  13.     public void save(Book transientInstance) {  
  14.         log.debug("saving Book instance");  
  15.         try {  
  16.             getHibernateTemplate().saveOrUpdate(transientInstance);  
  17.             log.debug("save successful");  
  18.         } catch (RuntimeException re) {  
  19.             log.error("save failed", re);  
  20.             throw re;  
  21.         }  
  22.     }  
  23.       
  24.     public void delete(Book persistentInstance) {  
  25.         log.debug("deleting Book instance");  
  26.         try {  
  27.             getHibernateTemplate().delete(persistentInstance);  
  28.             log.debug("delete successful");  
  29.         } catch (RuntimeException re) {  
  30.             log.error("delete failed", re);  
  31.             throw re;  
  32.         }  
  33.     }  
  34.       
  35.     public Book findById( java.lang.String id) {  
  36.         log.debug("getting Book instance with id: " + id);  
  37.         try {  
  38.             Book instance = (Book) getHibernateTemplate()  
  39.                     .get("com.book.dao.Book", id);  
  40.             return instance;  
  41.         } catch (RuntimeException re) {  
  42.             log.error("get failed", re);  
  43.             throw re;  
  44.         }  
  45.     }  
  46.       
  47.       
  48.     public List findByExample(Book instance) {  
  49.         log.debug("finding Book instance by example");  
  50.         try {  
  51.             List results = getHibernateTemplate().findByExample(instance);  
  52.             log.debug("find by example successful, result size: " + results.size());  
  53.             return results;  
  54.         } catch (RuntimeException re) {  
  55.             log.error("find by example failed", re);  
  56.             throw re;  
  57.         }  
  58.     }      
  59.       
  60.     public List findByProperty(String propertyName, Object value) {  
  61.       log.debug("finding Book instance with property: " + propertyName  
  62.             + ", value: " + value);  
  63.       try {  
  64.          String queryString = "from Book as model where model."   
  65.                                 + propertyName + "= ?";  
  66.          return getHibernateTemplate().find(queryString, value);  
  67.       } catch (RuntimeException re) {  
  68.          log.error("find by property name failed", re);  
  69.          throw re;  
  70.       }  
  71.     }  
  72.   
  73.     public List findByTitle(Object title  
  74.     ) {  
  75.         return findByProperty(TITLE, title  
  76.         );  
  77.     }  
  78.       
  79.     public List findByPrice(Object price  
  80.     ) {  
  81.         return findByProperty(PRICE, price  
  82.         );  
  83.     }  
  84.       
  85.   
  86.     public List findAll() {  
  87.         log.debug("finding all Book instances");  
  88.         try {  
  89.             String queryString = "from Book";  
  90.             return getHibernateTemplate().find(queryString);  
  91.         } catch (RuntimeException re) {  
  92.             log.error("find all failed", re);  
  93.             throw re;  
  94.         }  
  95.     }  
  96.       
  97.     public Book merge(Book detachedInstance) {  
  98.         log.debug("merging Book instance");  
  99.         try {  
  100.             Book result = (Book) getHibernateTemplate()  
  101.                     .merge(detachedInstance);  
  102.             log.debug("merge successful");  
  103.             return result;  
  104.         } catch (RuntimeException re) {  
  105.             log.error("merge failed", re);  
  106.             throw re;  
  107.         }  
  108.     }  
  109.   
  110.     public void attachDirty(Book instance) {  
  111.         log.debug("attaching dirty Book instance");  
  112.         try {  
  113.             getHibernateTemplate().saveOrUpdate(instance);  
  114.             log.debug("attach successful");  
  115.         } catch (RuntimeException re) {  
  116.             log.error("attach failed", re);  
  117.             throw re;  
  118.         }  
  119.     }  
  120.       
  121.     public void attachClean(Book instance) {  
  122.         log.debug("attaching clean Book instance");  
  123.         try {  
  124.             getHibernateTemplate().lock(instance, LockMode.NONE);  
  125.             log.debug("attach successful");  
  126.         } catch (RuntimeException re) {  
  127.             log.error("attach failed", re);  
  128.             throw re;  
  129.         }  
  130.     }  
  131.   
  132.     public static TestDAO getFromApplicationContext(ApplicationContext ctx) {  
  133.         return (TestDAO) ctx.getBean("TestDAO");  
  134.     }  
  135. }  
  评论这张
 
阅读(773)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016