求用hibernate annotation做的完整案例
要是用◎OneToMany写的,至少要三张表关联,最好是用hibernate,spring,struts做的由底层到顶层的那种。不要太简单。谢谢先!...
要是用◎OneToMany写的,至少要三张表关联,最好是用hibernate,spring,struts做的由底层到顶层的那种。 不要太简单。谢谢先!
展开
1个回答
展开全部
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的例子。
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的例子。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询