AnnotationSessionFactoryBean和LocalSessionFactoryBean

这两种SessionFactoryBean是配置hibernate配置实体及字段与表的映射时的两种不同方法。他们的使用与否在applicationContext.xml中配置。

一、annotation是注释、注解 的意思,在hibernate配置实体及字段与表的映射时,annotationSessionFactoryBean提供一种注解的方式来映射,它可以依赖@注解通过实体类生成表(包括字段、主键···)。这种方法是spring2.5以后才有的。

Spring中annotationSessionFactoryBean的定义如下:

public class AnnotationSessionFactoryBean extends LocalSessionFactoryBean implements ResourceLoaderAware

利用注解的简单例子如下:


package com.pm.model;

import java.io.Serializable;

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

@Entity
@Table(name="tb_userlogin")
public class UserLogin implements Serializable{
	private int id;
	private String loginName;
	private String pwd;
	private String type;
	private String mail;
	
	@Id
	@GeneratedValue
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getLoginName() {
		return loginName;
	}
	public void setLoginName(String loginName) {
		this.loginName = loginName;
	}
	public String getPwd() {
		return pwd;
	}
	public void setPwd(String pwd) {
		this.pwd = pwd;
	}
	public String getType() {
		return type;
	}
	public void setType(String type) {
		this.type = type;
	}
	public String getMail() {
		return mail;
	}
	public void setMail(String mail) {
		this.mail = mail;
	}
	
}

对应的beans.xml中的配置:
<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
		<property name="dataSource" ref="dataSource" />
		
		<property name="annotatedClasses">
			<list>
				<value>com.pm.model.UserLogin</value>
				<!--多个时要在这里进行配置-->
			</list>
		</property>
		
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">
					org.hibernate.dialect.MySQLDialect
				</prop>
				<prop key="hibernate.show_sql">true</prop>
			</props>
		</property>
	</bean>


注:@Entity  、@Table(name=“····”)  这些以@开头的就是注解,他们需要引入相应的类、包,如import javax.persistence.Entity;

      @Column(name="***")的注解用在字段的get方法上。另外还有很多@注解,如@ManyToOne   @JoinColumn(name="****")等等。

二、LocalSessionFactoryBean

LocalSessionFactoryBean,在applicationContext.xml或beans.xml中配置之后,需要另外一个***.hbm.xml的配置文件对实体和表的具体映射进行配置。

 beans.xml中配置:

<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="dataSource" ref="dataSource" />
		
		<property name="mappingResources">
			<list>
				<value>com/pm/model/UserLogin.hbm.xml</value>
				<!--多个时在这里配置-->
			</list>
		</property>
		
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">
					org.hibernate.dialect.MySQLDialect
				</prop>
				<prop key="hibernate.show_sql">true</prop>
			</props>
		</property>
	</bean>


貌似Spring2.5后的class一般的都用AnnotationSessionFactoryBean。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值