`
hustlong
  • 浏览: 121251 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Hibernae+Spring+Annotation 的一个Demo

阅读更多
1,今天在用Annotation+Hibernate做的一个Demo中加进了Spring。
2,基本的一些过程如下:

3,首先要引入支持包,Spring Core ,Spring Persistence Core,Spring AOP,还要引入Commons Pool。
4, 然后从配置文件开始:

   myspringcontext.xml: 对于原来的Hibernate配置文件,我采取了保留原来配置的方法,因为在Spring中配置Hibernate的一些属性感觉不方便。
  内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">



<bean id="annotationsessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">


<property name="configLocation"
value="file:src/annotationhibernate.cfg.xml">
</property>
</bean>

<bean id="PictureProxy" class="dian.ikeel.DAL.PictureDAL">
<property name="sessionFactory">
<ref local="annotationsessionFactory" />
</property>
</bean>

</beans>

这里需要注意的就是应该用AnnotationSessionFactoryBean。
指向的hibernate.cfg.xml 在Step By Step (2)中有详细内容,可以参看。

<property name="sessionFactory">
<ref local="annotationsessionFactory" />
</property>

这句配置的作用我想就是,在getBean获取PictureProxy的时候,把他绑定到了一个SessionFactory提供的Session。省去了我们自己编码或得Session的过程了

5,我的程序其他部分逻辑是这样的:

A, 持久化层: Picture.java :用Annotatioin标注,在Step By Step (2)中有详细。

B,数据访问接口:IPictureDAL :
   代码:

package dian.ikeel.IDAL;

import dian.ikeel.annotation.*;
public interface IPictureDAL {

public void insertPicture(Picture pic);
}


C,数据访问接口的实现:PictureDAL,实现了IPictureDAL ,同时继承了HibernateDAOSupport. 因为我们要用到getTemplate。如果PictureDAL没有实现接口的话,会出现类型转换错误。这涉及到动态代理的原理。
代码如下:
package dian.ikeel.DAL;

import dian.ikeel.annotation.*;
import dian.ikeel.IDAL.*;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;


public class PictureDAL extends HibernateDaoSupport implements IPictureDAL {

public void insertPicture(Picture pic)
{
getHibernateTemplate().save(pic);
}
}


D,然后就是程序入口了:

public static void main(String[] args) {


Resource rs=new FileSystemResource("src/myspringcontext.xml");
BeanFactory bf=new XmlBeanFactory(rs);


IPictureDAL pic = (IPictureDAL)bf.getBean("PictureProxy");
Picture pic1 = new Picture();
pic1.setPicname("liang");
pic1.setPicsize(123);
pic.insertPicture(pic1);
System.out.println("AnnotationEntry excuted");
}

这样就基本完成了最简单的Hibernate+Spring with Annotation的例子。
1
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics