5.4.2 Using Hibernate templates
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相关推荐
- SSH之IDEA2017整合Struts2+Spring+Hibernate
摘要 IDEA无疑是Java编程的利器,在下面我们将介绍如何使用IDEA来整合SSH(Struts2 + Spring + Hibernate):介绍將分为三个部分来讲,分别是新建工程,Spring引 ...
- 生成Base58格式的UUID(Hibernate Base64格式的UUID续)
Base58简介 Base58采用的字符集合为"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ",从这不难看出 ...
- Java新手如何学习Spring、Struts、Hibernate三大框架?
spring,hibernate,struts 是JavaEE方向企业使用较多的几个框架技术,所以就会很多人想去学习这几个框架,当然这几个框架流行的时间也比较长了,相对资料也会比较多,但是适合新手的并 ...
- Hibernate代码生成工具 设计全攻略
1.简述Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了轻量级的对象封装,提供HQL查询语言,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库.使用Hibernat ...
- jpa jsf_完整Web应用程序Tomcat JSF Primefaces JPA Hibernate –第2部分
jpa jsf 托管豆 这篇文章是本教程第1部分的继续. 在" com.mb"包中,您将需要创建以下类: package com.mb;import org.primefaces. ...
- 完整的Web应用程序Tomcat JSF Primefaces JPA Hibernate –第2部分
托管豆 这篇文章是本教程第1部分的继续. 在" com.mb"包中,您将需要创建以下类: package com.mb;import org.primefaces.context. ...
- 带有Spring,Hibernate,Akka,Twitter Bootstrap,Apache Tiles和jQuery的Maven Web项目Kickstarter代码库...
我很高兴将第二个项目上传到GitHub,以帮助人们尽快开始Java Web App开发. 我正在与Apache License 2.0共享此代码. 这是相同的网址: https://github.co ...
- Spring Spring MVC Hibernate 整合备忘
以下为此三种框架整合配置的详细备注,以及部分问题备忘 项目结构和配置文件可访问 Github 查看 1. pom.xml 尽量使用 Maven 管理项目依赖以减少包引入时的麻烦,以及避免跨开发工具问题 ...
- Hibernate 注解 没有加@Column一样会在数据库创建这些字段
Hibernate 注解 没有加@Column一样会在数据库创建这些字段 如下一个注解类: package com.hyy.hibernate.one_to_many.domain;import ja ...
最新文章
- 用Jsp来实现文件下载功能的几种方式
- Java学习笔记(十一)--类与对象
- Codeforces 1338E JYPnation (图论)
- 自定义SpringBoot Starter实现
- iOSUI视图面试及原理总结
- 苹果公司透露Siri新发音引擎的内部原理
- 漫画算法:判断2的乘方
- C#中使用ajax请求
- Java案例:两个线程交替执行
- javascript 常用的数组操作
- Eclipse的Ctrl+Shift+R中过滤文件类型
- 多线程 之 生产者与消费者
- 统计学习三要素的思考
- 详介 MQTT 服务器的搭建与客户端连接
- 产品读书《产品经理的第一本书》
- oracle 客户端安装包下载地址,Oracle客户端安装及下载地址
- xcode打包IPA(完整详细图文)
- 斩获新一轮数亿元融资,Seesaw这杯创意咖啡里有多少“泡沫”?
- 疫情下,数字化转型成功的“光明”
- 曾经无限风光,再看IT业10大过山车人物