HibernateTemplate’s main responsibility is to simplify the work of opening
and closing Hibernate Sessions and to convert Hibernate-specific exceptions
to one of the Spring ORM exceptions

下面实例是按照Spring in action 2nd Edition里面的示例写的。数据库使用Oracle.

1.定义一个POJO

代码如下:

public class Motorist { private long id; private String email; private String password; private String firstName; private String lastName; public long getId() { return id; } public void setId(long id) { this.id = id; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } }

2.创建表

create table MOTORIST ( ID NUMBER, EMAIL VARCHAR2(32), PASSWORD VARCHAR2(32), FIRSTNAME VARCHAR2(32), LASTNAME VARCHAR2(32) )

下面就是如何简单的利用Spring 和Hibernate做ORM。

3.定义hibernate配置文件

<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="com.roadrantz.dao.jdbc.Motorist" table="MOTORIST" lazy="false"> <id name="id" column="ID"/> <property name="email" column="EMAIL"/> <property name="password" column="PASSWORD"/> <property name="firstName" column="FIRSTNAME"/> <property name="lastName" column="LASTNAME"/> </class> </hibernate-mapping>

4.定义数据源

在Spring的配置文件中加入

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/> <property name="url" value="jdbc:oracle:thin:@192.168.0.20:1521:test"/> <property name="username" value="test"/> <property name="password" value="test"/> <property name="initialSize" value="5"/> <property name="maxActive" value="10"/> </bean>

5.在Spring配置文件中定义LocalSessionFactoryBean

在Spring配置文件中加入

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="mappingResources"> <list> <value>com/roadrantz/domain/Motorist.hbm.xml</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop> </props> </property> </bean>

6.定义HibernateTemplate

在Spring配置文件中加入

<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"> <property name="sessionFactory" ref="sessionFactory"/> </bean>

7.写测试类

以下是HibernateRantDao类的片断

public Motorist getMotoristById(long id) { return (Motorist) hibernateTemplate.load(Motorist.class, id); } public void saveMotoris(Motorist m) { hibernateTemplate.saveOrUpdate(m); } public void delMotorist(Motorist m) { hibernateTemplate.delete(m); } public static void main(String[] args) { ApplicationContext ctx = new ClassPathXmlApplicationContext( "com/roadrantz/dao/hibernate/hibernaterant.xml"); HibernateRantDao p = (HibernateRantDao) ctx.getBean("rantDao"); // Motorist m = (Motorist) ctx.getBean("motorist"); /* m.setId(2l); m.setEmail("wax@sohu.com"); m.setFirstName("wax"); m.setLastName("robin"); m.setPassword("zzz"); //保存 // p.saveMotoris(m); //删除 p.delMotorist(m);*/ //查找 Motorist m = p.getMotoristById(1l); System.out.println(m.getLastName()); }

8,在Spring配置文件中加入POJO和测试类

<bean id="rantDao" class="com.roadrantz.dao.hibernate.HibernateRantDao"> <property name="hibernateTemplate" ref="hibernateTemplate"/> </bean> <bean id="motorist" class="com.roadrantz.dao.jdbc.Motorist"/>

9.运行函数,输入结果

5.4.2 Using Hibernate templates相关推荐

  1. SSH之IDEA2017整合Struts2+Spring+Hibernate

    摘要 IDEA无疑是Java编程的利器,在下面我们将介绍如何使用IDEA来整合SSH(Struts2 + Spring + Hibernate):介绍將分为三个部分来讲,分别是新建工程,Spring引 ...

  2. 生成Base58格式的UUID(Hibernate Base64格式的UUID续)

    Base58简介 Base58采用的字符集合为"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ",从这不难看出 ...

  3. Java新手如何学习Spring、Struts、Hibernate三大框架?

    spring,hibernate,struts 是JavaEE方向企业使用较多的几个框架技术,所以就会很多人想去学习这几个框架,当然这几个框架流行的时间也比较长了,相对资料也会比较多,但是适合新手的并 ...

  4. Hibernate代码生成工具 设计全攻略

    1.简述Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了轻量级的对象封装,提供HQL查询语言,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库.使用Hibernat ...

  5. jpa jsf_完整Web应用程序Tomcat JSF Primefaces JPA Hibernate –第2部分

    jpa jsf 托管豆 这篇文章是本教程第1部分的继续. 在" com.mb"包中,您将需要创建以下类: package com.mb;import org.primefaces. ...

  6. 完整的Web应用程序Tomcat JSF Primefaces JPA Hibernate –第2部分

    托管豆 这篇文章是本教程第1部分的继续. 在" com.mb"包中,您将需要创建以下类: package com.mb;import org.primefaces.context. ...

  7. 带有Spring,Hibernate,Akka,Twitter Bootstrap,Apache Tiles和jQuery的Maven Web项目Kickstarter代码库...

    我很高兴将第二个项目上传到GitHub,以帮助人们尽快开始Java Web App开发. 我正在与Apache License 2.0共享此代码. 这是相同的网址: https://github.co ...

  8. Spring Spring MVC Hibernate 整合备忘

    以下为此三种框架整合配置的详细备注,以及部分问题备忘 项目结构和配置文件可访问 Github 查看 1. pom.xml 尽量使用 Maven 管理项目依赖以减少包引入时的麻烦,以及避免跨开发工具问题 ...

  9. Hibernate 注解 没有加@Column一样会在数据库创建这些字段

    Hibernate 注解 没有加@Column一样会在数据库创建这些字段 如下一个注解类: package com.hyy.hibernate.one_to_many.domain;import ja ...

最新文章

  1. 用Jsp来实现文件下载功能的几种方式
  2. Java学习笔记(十一)--类与对象
  3. Codeforces 1338E JYPnation (图论)
  4. 自定义SpringBoot Starter实现
  5. iOSUI视图面试及原理总结
  6. 苹果公司透露Siri新发音引擎的内部原理
  7. 漫画算法:判断2的乘方
  8. C#中使用ajax请求
  9. Java案例:两个线程交替执行
  10. javascript 常用的数组操作
  11. Eclipse的Ctrl+Shift+R中过滤文件类型
  12. 多线程 之 生产者与消费者
  13. 统计学习三要素的思考
  14. 详介 MQTT 服务器的搭建与客户端连接
  15. 产品读书《产品经理的第一本书》
  16. oracle 客户端安装包下载地址,Oracle客户端安装及下载地址
  17. xcode打包IPA(完整详细图文)
  18. 斩获新一轮数亿元融资,Seesaw这杯创意咖啡里有多少“泡沫”?
  19. 疫情下,数字化转型成功的“光明”
  20. 曾经无限风光,再看IT业10大过山车人物

热门文章

  1. bower使用中遇到的问题
  2. VRRP,HSRP介绍及配置
  3. Gccgo in GCC 4.7.1[翻译]
  4. Ubuntu 下监控进程网络流量
  5. 转帖一篇关于DELPHI调试的文章-AQTime
  6. Linux下双网卡绑定技术实现负载均衡和失效保护 bond
  7. OkHttp 3.x 源码解析之Dispatcher分发器
  8. Entity Framework(EF)数据查询
  9. 阿里云 linux 找回mysql root密码
  10. asp.net生产环境和开发环境的错误日志包装策略