`

完整版spring hibernate整合采用annotation

 
阅读更多
转自:http://www.diybl.com/course/3_program/java/javajs/20100719/462761.html

Keyword.java

001 //*******************************************************************//
002 //
003 //** 创建人:   何岳军
004 //
005 //** 描  述:   message表(留言表)实体bean
006 //
007 //** 版  本:  湖南农业大学关工委网站2010版
008 //
009 //*******************************************************************//
010 package cn.hauggw.beans;
011
012 import java.util.*;
013
014 import javax.persistence.Column;
015 import javax.persistence.Entity;
016 import javax.persistence.GeneratedValue;
017 import javax.persistence.Id;
018 import javax.persistence.Table;
019
020 import org.hibernate.annotations.GenericGenerator;
021 @Entity
022 @Table(name="tb_keyword")
023 public class Keyword {
024
025     private long id;                // 自动编号
026     private int uid;            // 用户id
027     private String keyword;     // 关键字
028     private int property;       // 属性 0 1
029     private Date adddate;       //日期
030     
031     @Id
032     @GeneratedValue(generator = "paymentableGenerator")   
033     @GenericGenerator(name = "paymentableGenerator", strategy = "identity")
034     public long getId() {
035         return id;
036     }
037     public void setId(long id) {
038         this.id = id;
039     }
040     @Column(name="uid")
041     public int getUid() {
042         return uid;
043     }
044     public void setUid(int uid) {
045         this.uid = uid;
046     }
047     @Column(name="keyword")
048     public String getKeyword() {
049         return keyword;
050     }
051     public void setKeyword(String keyword) {
052         this.keyword = keyword;
053     }
054     @Column(name="property")
055     public int getProperty() {
056         return property;
057     }
058     public void setProperty(int property) {
059         this.property = property;
060     }
061     @Column(name="adddate")
062     public Date getAdddate() {
063         return adddate;
064     }
065     public void setAdddate(Date adddate) {
066         this.adddate = adddate;
067     }
068
069     
070 }
071
072
073
074
075
076 DAO.java (接口类)
077
078 //*******************************************************************//
079 //
080 //** 创建人:   何岳军
081 //
082 //** 描  述:   DAO接口
083 //
084 //** 版  本:  湖南农业大学关工委网站2010版
085 //
086 //*******************************************************************//
087 package cn.hauggw.service;
088
089 public interface DAO {
090
091     /**
092      * 获取记录总数
093      * @param entityClass 实体类
094      * @return
095      */
096     public <T> long getCount(Class<T> entityClass);
097     
098     /**
099      * 清除一级缓存的数据
100      */
101     public void clear();
102     
103     /**
104      * 保存实体
105      * @param entity 实体id
106      */
107     public void save(Object entity);
108     
109     /**
110      * 更新实体
111      * @param entity 实体id
112      */
113     public void update(Object entity);
114     
115     /**
116      * 删除实体
117      * @param entityClass 实体类
118      * @param entityid 实体id
119      */
120     public <T> void delete(Class<T> entityClass, Object entityid);
121     
122     /**
123      * 删除实体
124      * @param entityClass 实体类
125      * @param entityids 实体id数组
126      */
127     public <T> void delete(Class<T> entityClass, Object[] entityids);
128     
129     /**
130      * 获取实体
131      * @param <T>
132      * @param entityClass 实体类
133      * @param entityId 实体id
134      * @return
135      */
136     public <T> T find(Class<T> entityClass, Object entityId);
137
138 }
139
140
141
142
143
144 DAOService.java
145
146
147
148 //*******************************************************************//
149 //
150 //** 创建人:   何岳军
151 //
152 //** 描  述:   DAO实现
153 //
154 //** 版  本:  湖南农业大学关工委网站2010版
155 //
156 //*******************************************************************//
157 package cn.hauggw.service.impl;
158
159 import java.io.Serializable;
160
161 import javax.annotation.Resource;
162
163 import org.hibernate.SessionFactory;
164 import org.springframework.transaction.annotation.Propagation;
165 import org.springframework.transaction.annotation.Transactional;
166 import cn.hauggw.service.DAO;;
167
168 @Transactional
169 public class DAOService implements DAO {
170     @Resource private SessionFactory sessionFactory;
171     public void clear() {
172         sessionFactory.getCurrentSession().clear();
173     }
174
175     public <T> void delete(Class<T> entityClass, Object entityid) {
176         delete(entityClass,new Object[]{entityid});
177     }
178
179     public <T> void delete(Class<T> entityClass, Object[] entityids) {
180         for(Object id : entityids){
181             sessionFactory.getCurrentSession().delete(sessionFactory.getCurrentSession().load(entityClass, (Serializable) id));
182         }
183     }
184     @SuppressWarnings("unchecked")
185     @Transactional(readOnly=true,propagation=Propagation.NOT_SUPPORTED)
186     public <T> T find(Class<T> entityClass, Object entityId) {
187         return (T) sessionFactory.getCurrentSession().get(entityClass, (Serializable) entityId);
188     }
189
190     @Transactional(readOnly=true,propagation=Propagation.NOT_SUPPORTED)
191     public <T> long getCount(Class<T> entityClass) {
192         return 0;
193     }
194
195     public void save(Object entity) {
196         sessionFactory.getCurrentSession().persist(entity);
197     }
198
199     public void update(Object entity) {
200         sessionFactory.getCurrentSession().merge(entity);
201     }
202
203 }





bean.xml



01 <?xml version="1.0" encoding="UTF-8"?>
02 <beans xmlns="http://www.springframework.org/schema/beans"
03        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
04        xmlns:context="http://www.springframework.org/schema/context"
05        xmlns:aop="http://www.springframework.org/schema/aop"
06        xmlns:tx="http://www.springframework.org/schema/tx"
07        xsi:schemaLocation="http://www.springframework.org/schema/beans
08            http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
09            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
10            http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
11            http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
12            
13      <context:annotation-config/>
14     <!--  <context:component-scan base-package="cn" /> -->
15      <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
16         <property name="driverClassName" value="com.microsoft.jdbc.sqlserver.SQLServerDriver"/>
17         <property name="url" value="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=ggwnet"/>
18         <property name="username" value="sa"/>
19         <property name="password" value="hyj_lk"/>
20         
21       </bean>
22       
23     <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
24          <property name="dataSource" ref="dataSource"/>
25         <property name="annotatedClasses">
26                <list>
27             <!-- <value>classpath:/cn/hauggw/beans</value> -->
28             <value>cn.hauggw.beans.Message</value>
29             <value>cn.hauggw.beans.Keyword</value>
30                </list>
31         </property>
32          <property name="hibernateProperties">
33             <value>
34                 hibernate.dialect=org.hibernate.dialect.SQLServerDialect
35                 hibernate.show_sql=true
36                 hibernate.format_sql=true
37             </value>
38          </property>
39     </bean>
40     <!-- 事务管理器 -->
41     <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
42         <property name="sessionFactory" ref="sessionFactory"/>
43     </bean>
44     <tx:annotation-driven transaction-manager="txManager"/>
45     
46     <bean id="daoService" class="cn.hauggw.service.impl.DAOService" />
47     <bean id="keywordService" class="cn.hauggw.service.impl.KeywordServiceBean" />
48         
49 </beans>
分享到:
评论

相关推荐

    struts2+hibernate+annotation+spring整合的jar包

    Struts2、Hibernate和Spring是Java开发中三大主流框架,它们的整合应用通常被称为SSH(Struts2-Spring-Hibernate)集成。这个压缩包包含了这三个框架的特定版本:Struts2.18、Hibernate3.3.2和Spring2.5.6,以及可能...

    struts2.1.8 + spring2.5.6 + hibernate3.3.2整合

    ### Struts2.1.8 + Spring2.5.6 + Hibernate3.3.2整合实践 #### 一、概述 在Java Web开发领域,Struts2、Spring以及Hibernate是三个非常重要的开源框架,它们各自在不同的方面发挥着重要作用:Struts2用于构建MVC...

    struts+hibernate+spring

    【Struts+Hibernate+Spring】整合是企业级Java应用中常见的技术栈,它结合了Struts的MVC架构、Hibernate的持久层管理和Spring的依赖注入及事务管理。下面将详细解释这一整合的关键知识点。 首先,集成环境配置是...

    Struts2.1、Spring3.0、Hibernate3.3框架整合详细图解

    SSH框架整合是Java开发中常见的技术栈,包括Struts2.1、Spring3.0和Hibernate3.3这三个组件。它们分别负责表现层、业务层和数据持久化层的功能,协同工作以构建一个完整的MVC(模型-视图-控制器)架构的应用程序。 ...

    Spring3.0+Struts2.1+ Hibernate3.5融合步骤

    Struts2 提供了一个灵活且强大的架构来构建 Web 应用程序,能够很好地与 Spring 和 Hibernate 集成,形成一套完整的解决方案。 #### Hibernate 框架概述 Hibernate 是一个开放源代码的对象关系映射(ORM)工具,...

    基于Struts2.18+Spring2.5+Hibernater3.3+Annotation注解开发的电子商务网站demo

    这个“基于Struts2.18+Spring2.5+Hibernate3.3+Annotation注解开发的电子商务网站demo”是一个很好的学习资源,可以帮助开发者加深对这些框架的理解并熟悉实际应用。 1. **Struts2.18**:Struts2是MVC(模型-视图-...

    spring整合jdbc hbm struts 的各种配置

    综上所述,Spring 整合 JDBC、Hibernate 和 Struts 实现了一个完整的后端开发框架,提供了强大的数据访问、对象关系映射以及用户交互功能。通过合理的配置和组件间协同,可以构建出高效、可维护的企业级 Web 应用。

    中文分词检索IKAnalyzer3.2.3Stable+hibernate-search3.4.0.Final

    - **Session Factory配置**:`&lt;bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"&gt;`定义了Spring管理的Hibernate Session Factory。 - **Hibernate ...

    Struts2 Spring2.5 Hiberante3.3.2 +ExtJS(Struts2-json)做的CRUD

    在这个DEMO中,Spring2.5.6采用了Annotation注解的方式,使得代码更加简洁,无需XML配置文件,只需在类或方法上添加注解,就可以声明bean和其依赖。Spring还提供了事务管理、AOP(面向切面编程)等功能,增强了应用...

    Spring.3.x企业应用开发实战(完整版).part2

    Spring3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。  Spring3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架...

    Spring3.x企业应用开发实战(完整版) part1

    Spring3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。  Spring3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架...

    springMVC3.2+Hibernate4的基本配置

    综上所述,这个"springMVC3.2+Hibernate4的基本配置"项目包含了一个完整的Web应用开发环境,包括SpringMVC的请求处理、Hibernate的数据持久化、C3P0连接池管理、事务控制、缓存优化以及自定义拦截器。这个配置模板...

    hibernate_validator_reference_5.1.3.pdf

    使用Hibernate Validator时,通常会将它整合在Spring框架中,利用Spring强大的依赖注入和声明式事务管理等功能,来实现更为复杂的业务逻辑和数据校验需求。 此外,Hibernate Validator允许开发者自定义错误信息插值...

    Springboot+jpa+mysql在maven下整合

    这个工程代码包含了一个完整的Spring Boot整合JPA和MySQL的例子,可以直接导入IDEA运行,方便开发者快速上手。通过阅读源码和注释,可以深入了解每个部分的作用,从而更好地理解和运用这些技术。

    spring 3.0 jar包

    2. **注解驱动开发 (Annotation-based Development)**:Spring 3.0引入了大量的注解,如`@Component`、`@Service`、`@Repository`和`@Controller`,用于简化配置,使代码更加简洁。此外,`@Autowired`和`@Qualifier`...

    学习SSH2的相关资料

    通过这些文件,开发者可以学习到如何将SSH2框架整合到实际项目中,包括如何配置Struts2的Action和Interceptor,Spring的DI和AOP应用,以及Hibernate的实体映射和查询操作。同时,实践案例和参考手册将有助于加深理解...

    java_spring_day05.pdf

    - 在Spring 5的新工程中,我们将采用注解的方式来完成SSH的整合,这需要对原有工程进行一定的改造。 2. **开启组件扫描:** - 使用`@ComponentScan`注解来开启Spring的组件扫描功能,确保所有的Bean能够被Spring...

    woekspace_myeclipse.rar

    9. **SpringDemo**: 这可能是一个完整的Spring项目实例,包含了上述所有概念的实际应用,供学习者参考和实践。 通过解压并研究这些文件,开发者能够全面了解和掌握Spring框架的各种特性和使用场景,同时也能加深对...

Global site tag (gtag.js) - Google Analytics