第5章 Spring的ORM模块

上传人:pu****.1 文档编号:490161605 上传时间:2023-11-09 格式:DOC 页数:15 大小:101KB
返回 下载 相关 举报
第5章 Spring的ORM模块_第1页
第1页 / 共15页
第5章 Spring的ORM模块_第2页
第2页 / 共15页
第5章 Spring的ORM模块_第3页
第3页 / 共15页
第5章 Spring的ORM模块_第4页
第4页 / 共15页
第5章 Spring的ORM模块_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《第5章 Spring的ORM模块》由会员分享,可在线阅读,更多相关《第5章 Spring的ORM模块(15页珍藏版)》请在金锄头文库上搜索。

1、第5章 Spring的ORM模块本章学习目的和要求简本章重点和难点ORM模块对Hibernate、JDO、TopLink、iBatis等ORM框架提供支持。本节以Hibernate为例介绍ORM模块。Spring支持的ORM方式类似于对JDBC的支持,例如在Dao层提供HibernateDaoSupport类与HibernateTemplate类。ORM模块依赖于dom4j-1.6.jar、antlr.jar,Eclipse自带的Spring ORM类库可能没有这两个类库,需要自己添加。5.1 实例:保存Cat实体在Spring里,Hibernate的资源要交给Spring来管理。Hibern

2、ate及其SessionFactory等只是Spring的一个特殊的Bean,由Spring负责实例化与销毁。因此,DAO层只需要继承HibernateDaoSupport,而不需要与Hibernate的API打交道,不需要开启、关闭Hibernate的Session、Transaction,Spring会自动维护这些对象。5.1.1 Cat实体类代码看一个例子。本例将使用Spring的ORM模块保存、读取Cat实体类。实体类Cat的代码为(getter、setter略):Cat.javapackage com.helloweenvsfei.spring.orm;import java.uti

3、l.Date;import javax.persistence.*;Entity /实体类配置Table(name=tb_cat) /表配置public class CatId /主键配置GeneratedValue(strategy=GenerationType.AUTO) /主键规则配置private Integer id;private String name; /使用默认配置Temporal(value = TemporalType.TIMESTAMP) /列类型为timestampprivate Date createdDate;5.1.2 DAO层接口DAO层接口定义了操作Cat的

4、方法。代码为:ICatDao.javapackage com.helloweenvsfei.spring.orm;import java.util.List;public interface ICatDao/DAO接口public void createCat(Cat cat); /保存对象public List listCats(); /查询所有对象public int getCatsCount(); /返回对象数量public Cat findCatByName(String name); /根据名字查询对象5.1.3 继承HibernateDaoSupportDAO实现ICatDao接口

5、,并继承Spring ORM模块的HibernateDaoSupport。HibernateDaoSupport封装了Hibernate,提供HibernateTemplate对象。代码为:CatDaoImpl.javapackage com.helloweenvsfei.spring.orm;import java.util.List;import org.springframework.orm.hibernate3.support.HibernateDaoSupport;public class CatDaoImpl extends HibernateDaoSupport implemen

6、ts ICatDao/继承Supportpublic void createCat(Cat cat)/保存对象this.getHibernateTemplate().persist(cat); /使用Template保存public int getCatsCount()/查询记录条数return (Integer) this.getSession(true).createQuery(/调用Hibernate保存 select count(c) from Cat c ).uniqueResult();public List listCats()/查询所有的Catreturn this.getHi

7、bernateTemplate().find( select c from Cat c ); /使用Template查询 public Cat findCatByName(String name)/根据名字查询CatList catList = this.getHibernateTemplate().find(/使用Template select c from Cat c where c.name = ? , name);if (catList.size() 0) /如果有数据return catList.get(0); /返回第一条return null;一般使用Spring提供的Hiber

8、nateTemplate就可以了。也可以通过调用getSession()获取Hibernate的Session,利用Hibernate API操作。5.2 配置集成Hibernate传统上讲,Spring需要一个配置文件,Hibernate也需要一个配置文件。在Spring中,可以只使用Spring的配置文件。看一下Hibernate在Spring中的配置。5.2.1 Spring中配置Hibernate由于Hibernate全部交给Spring来管理,Hibernate不再需要自己的配置文件,所有的参数都配置在Spring配置中。Spring需要配置数据源、SessionFactory及Ca

9、tDaoImpl,代码为:applicationContext.xml !- 该Package下所有类都会被当作实体类加载-com.helloweenvsfei.spring.orm.Catorg.hibernate.dialect.MySQLDialecttruetruecreate本例中Hibernate实体类采用Java注解的方式配置ORM映射,因此SessionFactory采用Spring的AnnotationSessionFactoryBean。实体类、Hibernate属性等都配置在SessionFactory中。本例仍然使用create策略自动创建数据库脚本。5.2.2 运行代

10、码下面的代码中从Spring容器中获取Dao对象,实例化一个Cat对象、并持久化到数据库中。运行代码为:OrmRun.javapackage com.helloweenvsfei.spring.orm;import java.util.*;import org.springframework.beans.factory.xml.XmlBeanFactory;import org.springframework.core.io.ClassPathResource;public class OrmRunpublic static void main(String args)XmlBeanFacto

11、ry factory = new XmlBeanFactory(/加载工厂new ClassPathResource(applicationContext.xml);ICatDao catDao = (ICatDao) factory.getBean(catDao); /获取DAO对象Cat cat=new Cat(); /实例化Catcat.setName(Hello Kitty); /设置namecat.setCreatedDate(new Date(); /设置createdDatecatDao.createCat(cat); /保存进数据库List catList=catDao.listCats(); /查询所有的Catfor (Cat c : catList)/遍历System.out.println(Name: + c.getName(); / 输出名字运

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号