JAVA涂鸦
关于JAVA的点点滴滴
posts - 50,  comments - 689,  trackbacks - 0
hibernate3.2有个新功能叫做annotation,这个功能在ejb3.0就出现了。而且spring2.x版本也有这个功能,这个功能到底有什么作用,我们还是看看解释是什么:
在已经发布的JDK1.5(tiger)中增加新的特色叫 Annotation。Annotation提供一种机制,将程序的元素如:类,方法,属性,参数,本地变量,包和元数据联系起来。这样编译器可以将元数据存储在Class文件中。这样虚拟机和其它对象可以根据这些元数据来决定如何使用这些程序元素或改变它们的行为。
spring的配置文件比较复杂,所以这次先使用hibernate的annotation功能。

项目所需包:



先去掉我先前项目中的hibernate3.1,添加hibernate3.2,然后再下载hibernate-annotation,往lib文件夹中添加hibernate-annotations-3.3.0.jar,hibernate-commons-annotations.jar和ejb3-persistence.jar 。这样就可以使用hibernate的annotation了。

去掉products.hbm.xml文件,因为不需要了,我们现在只需要在products这个类中定义就可以了。代码如下:
package com.game.products.model;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

import org.hibernate.annotations.GenericGenerator;


@Entity
@Table(name
="products")
public class Products {
    
//    Fields 
    @Id
    @GeneratedValue(generator 
= "c-assigned")
    @GenericGenerator(name 
= "c-assigned", strategy = "assigned")
    @Column(name
="game_id")
    
private String gameId;//编号
    @Column(name="game_name_cn")
    
private String gameNameCn;//中文名称
    @Column(name="game_name_en")
    
private String gameNameEn;//英文名称
    @Column(name="game_capacity")
    
private String gameCapacity;//碟数
    @Column(name="game_version")
    
private String gameVersion;//版本
    @Column(name="game_media")
    
private String gameMedia;//介质
    @Column(name="game_copyright")
    
private String gameCopyright;//版权
    @Column(name="game_price")
    
private String gamePrice;//价格
    @Column(name="game_content")
    
private String gameContent;//攻略
    
    
//    Constructors
    public Products(){}
    
    
//    Property accessors
    
    
public String getGameCapacity() {
        
return gameCapacity;
    }

    
public void setGameCapacity(String gameCapacity) {
        
this.gameCapacity = gameCapacity;
    }

    
    
public String getGameId() {
        
return gameId;
    }

    
public void setGameId(String gameId) {
        
this.gameId = gameId;
    }
    
    
    
public String getGameNameCn() {
        
return gameNameCn;
    }

    
public void setGameNameCn(String gameNameCn) {
        
this.gameNameCn = gameNameCn;
    }

    
    
public String getGameNameEn() {
        
return gameNameEn;
    }

    
public void setGameNameEn(String gameNameEn) {
        
this.gameNameEn = gameNameEn;
    }

    
    
public String getGameVersion() {
        
return gameVersion;
    }

    
public void setGameVersion(String gameVersion) {
        
this.gameVersion = gameVersion;
    }

    
    
public String getGameMedia() {
        
return gameMedia;
    }

    
public void setGameMedia(String gameMedia) {
        
this.gameMedia = gameMedia;
    }

    
    
public String getGameCopyright() {
        
return gameCopyright;
    }

    
public void setGameCopyright(String gameCopyright) {
        
this.gameCopyright = gameCopyright;
    }

    
    
public String getGameContent() {
        
return gameContent;
    }

    
public void setGameContent(String gameContent) {
        
this.gameContent = gameContent;
    }

    
    
public String getGamePrice() {
        
return gamePrice;
    }

    
public void setGamePrice(String gamePrice) {
        
this.gamePrice = gamePrice;
    }

}
 
注意类中的@符号没有,这就是annotation发挥作用的地方了,是不是很方便呢。

现在可以将com.game.bean.hibernate整个文件夹都去掉了,因为我们在spring的applicationContext中进行定义了。
修改applicationContext中的SessionFactory ,示例如下:
<!-- SessionFactory -->
    
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
        
<property name="dataSource" ref="dataSource"/>
        
<property name="hibernateProperties">
            
<props>
                 
<prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
                 
<prop key="hibernate.hbm2ddl.auto">none</prop>
            
</props>
        
</property>
        
<property name="annotatedClasses">
            
<list>
                
<value>com.game.products.model.Products</value>
            
</list>
        
</property>
            
    
</bean>

至此,我们就可以使用hibernate的annotation了,是不是很简单呢。

示例代码

效果:


相关信息:
Struts2.0+spring2.0+hibernate3.1 ACEGI应用示例

struts2.0+spring2.0+hibernate3.1 web应用 示例代码下载

项目架构以及数据库信息
struts+spring+hibernate的web应用<一> 架构搭建

更多信息



posted on 2007-05-04 09:19 千山鸟飞绝 阅读(10419) 评论(13)  编辑  收藏 所属分类: Web开发

FeedBack:
# re: Struts2.0+spring2.0+hibernate3.2 Annotation应用示例
2007-05-23 18:47 | 小a
兄弟把 lib放上啊
  回复  更多评论
  
# re: Struts2.0+spring2.0+hibernate3.2 Annotation应用示例[未登录]
2007-08-04 11:48 | DuDu
能否发给我lib中的包(lfqrl@163.com),或者发个链接下载也行啊,急需中......
先谢了!  回复  更多评论
  
# re: Struts2.0+spring2.0+hibernate3.2 Annotation应用示例
2007-08-21 19:12 | winie
能不能给份文档``````````  回复  更多评论
  
# re: Struts2.0+spring2.0+hibernate3.2 Annotation应用示例[未登录]
2007-09-26 11:13 | 冰点
Struts2和Spring2没有用Annotation么?  回复  更多评论
  
# re: Struts2.0+spring2.0+hibernate3.2 Annotation应用示例
2007-10-01 17:42 | dfsdf
垃圾  回复  更多评论
  
# re: Struts2.0+spring2.0+hibernate3.2 Annotation应用示例
2007-10-25 08:49 | wt
兄弟能不能给传个完整的程序啊.
wanliyun1110@163.com  回复  更多评论
  
# re: Struts2.0+spring2.0+hibernate3.2 Annotation应用示例
2007-10-26 10:18 | 千山鸟飞绝
@wt
代码是完整的,只是lib包太大了,blogjava没有给那么大的空间。
  回复  更多评论
  
# re: Struts2.0+spring2.0+hibernate3.2 Annotation应用示例
2008-04-14 13:09 | zan
哥们把LIB给下吧 ,发到cheerzan@yahoo.com.cn。谢谢  回复  更多评论
  
# re: Struts2.0+spring2.0+hibernate3.2 Annotation应用示例
2008-06-30 17:25 | cbywxy
有没有源码啊。共享一下  回复  更多评论
  
# re: Struts2.0+spring2.0+hibernate3.2 Annotation应用示例
2008-08-25 16:01 | buaa207
哥们,项目所需包,我这边也看不到链接,有lib包,能发一个?我的邮箱是:liqiangq@126.com  回复  更多评论
  
# re: Struts2.0+spring2.0+hibernate3.2 Annotation应用示例
2008-08-27 11:46 | avanry
给我也发一个吧,多谢。avanry@126.com  回复  更多评论
  
# re: Struts2.0+spring2.0+hibernate3.2 Annotation应用示例
2008-09-11 23:20 | tt
哥们,项目所需包,我这边也看不到链接,有lib包,能发一个?我的邮箱是:tgm923@163.com   回复  更多评论
  
# re: Struts2.0+spring2.0+hibernate3.2 Annotation应用示例[未登录]
2012-04-27 15:36 | 飞飞
181290200 Struts2.0+spring2.0+hibernate3.2 交流群  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航:
 
正在阅读:



<2019年10月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

常用链接

留言簿(35)

随笔档案

文章分类

文章档案

好友的blog

我的其他blog

老婆的Blog

搜索

  •  

积分与排名

  • 积分 - 750553
  • 排名 - 50

最新评论

阅读排行榜

评论排行榜