- 浏览: 252453 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
tanglingshuai:
liulehua 写道根本原因是:没有把该对象对应的主键保存到 ...
关于: org.hibernate.StaleStateException: Batch update -
javeye:
转载了你的文章http://javeye.iteye.com/ ...
关于在tomcat下配置 error-page 500错误不能在IE下转发页面的问题 -
imlsq:
嘿嘿, 使用SEAM 7-8个月时间了还是放弃使用SEAM的想 ...
发现一个Seam做的企业应用,blackberry的在线商店 -
yuanliyin:
我也在用,唯一不爽的就是性能!
发现一个Seam做的企业应用,blackberry的在线商店 -
perfect:
假的 ,大家不要上当 ,根本不能用
HttpWatch 6.1.41 许可文件
Spring in Action 笔记(III)
By: icess blog: http://blog.matrix.org.cn/page/icess
这次来看看使用Spring的Hibernate模板来操作数据, Spring提供了Hibernate的一层包装,使Hibernate使用起来更加方便,尤其是结合Hibernate Annotation时, 配置文件更少,维护更加简单. 下面来看看吧.
下面是一个测试数据实体类TestData.java 和前一篇提到的实体类一样,只不过用了Annotation注释.
package
test.orm.hibernate.model;
import
javax.persistence.Basic;
import
javax.persistence.Entity;
import
javax.persistence.Id;
import
javax.persistence.Table;
@Entity
@Table(name =
"test"
,schema =
"APP"
)
public class
TestData {
private int
id;
private
String name;
public
TestData(
int
id, String name) {
this
.id = id;
this
.name = name;
}
public
TestData() {}
@Id
public int
getId() {
return
id;
}
public void
setId(
int
id) {
this
.id = id;
}
@Basic
public
String getName() {
return
name;
}
public void
setName(String name) {
this
.name = name;
}
}
下面是测试Hibernate模板的类, TestHibernateTemplate.java
package
test.orm.hibernate;
import
java.sql.SQLException;
import
org.hibernate.HibernateException;
import
org.hibernate.Session;
import
org.springframework.orm.hibernate3.HibernateCallback;
import
org.springframework.orm.hibernate3.HibernateTemplate;
import
test.orm.hibernate.model.TestData;
public class
TestHibernateTemplate {
private
HibernateTemplate hibernateTemplate;
public
TestHibernateTemplate() {}
public
HibernateTemplate getHibernateTemplate() {
return
hibernateTemplate;
}
public void
setHibernateTemplate(HibernateTemplate hibernateTemplate) {
this
.hibernateTemplate = hibernateTemplate;
}
//测试使用HibernateTemplate来操作数据
public
TestData getTestData(
final int
id) {
return
(TestData) hibernateTemplate.execute(
new
HibernateCallback() {
public
Object doInHibernate(Session s)
throws
HibernateException, SQLException {
// TODO Auto-generated method stub
return
s.get(TestData.class, id);
}
});
}
// 上面查询数据的方法 使用了HibernateCallBack接口,对于这样简单的查询,可以使用下面由HibernateTemplate 提供的更简单的方法
public
TestData getTestData2(
final int
id) {
return
(TestData) hibernateTemplate.get(TestData.class, id);
}
/* 如果上面的两处方法使用Load 方法的时, 抛出延迟加载属性异常, Spring管理Session的问题, 应该是Spring用完Session 然后就关闭了,
* 所以不可以延迟加载, 也就不可以使用load 方法了,,????? 为什么????*/
// 其他操作数据方法 如: 插入,修改.... 和使用Hibernate session 差不多, HibernateTemplate只是Session的包装
}
可以看到使用Hibernate模板来操作数据,是多么简单,
注意: 上面注释中,提到了在使用Load方法时候,会有问题, Session in view 时候使用load是不会出问题的, 这里Spring提供的方法应该是按照Hibernate的语义写的吧.
下面就是用来测试上面的类是否正常工作的测试类了.TestApp.java
package
test.orm.hibernate;
import
org.springframework.context.ApplicationContext;
import
org.springframework.context.support.ClassPathXmlApplicationContext;
import
test.jdbc.DatabaseUtils;
import
test.orm.hibernate.model.TestData;
public class
TestApp {
/**
*
@param
args
*/
public static void
main(String[] args) {
// TODO Auto-generated method stub
DatabaseUtils dataUtils =
new
DatabaseUtils();
dataUtils.connect();
System.out.println(
"Open database:!"
);
ApplicationContext context =
new
ClassPathXmlApplicationContext(
"test/orm/hibernate/spring-hibernate.xml"
);
TestHibernateTemplate hibernateTemplate = (TestHibernateTemplate) context.getBean(
"testDao"
);
System.out.println(
"name : "
);
TestData data = hibernateTemplate.getTestData(
9
);
System.out.println(
"name : "
+ data.getName());
data = hibernateTemplate.getTestData2(
3
);
System.out.println(
"name 2: "
+ data.getName());
dataUtils.disconnect();
}
}
注意: 本测试中用到了上一篇使用到的DatabaseUtils.java 工具类来操作Derby数据库.
由
以上实例可以看出,在Spring中使用Hibernate,效率更高一些. 你不这样认为吗?
同时
Spring也提供了 JDO等其他一些数据操作框架的包装,使用上基本上 是一样的这里就不在详述了.
下一次我们来看看Spring的I18N处理,和自定义属性编辑器的实现.
发表评论
-
学习使用Java DataBase (Derby) -- 嵌入式数据库
2006-04-13 21:19 1757学习使用Java DataBas ... -
在derby(Java DB) 中操作 clob 和 blob
2006-04-14 15:23 1498在前面一篇文章中, ... -
利用swing开源组件和netbeans快速构建豪华swing界面
2006-04-15 13:41 1435利用swing开源组件和netbeans快速构建豪华s ... -
Java Pet Store 开始全面使用 Web 2.0 技术
2006-05-16 21:58 1054Java Pet Store 开 ... -
Hibernate Validator 简介
2006-05-17 10:35 1267Hibernate Validator 简介 ... -
Google发布AJAX开发工具 Google Web Toolkit
2006-05-17 21:17 890Google Web Toolkit - Build ... -
解析 Hibernate Validator
2006-05-18 15:17 1478任何获得Matrix授权的网站,转载请保留以下作者信 ... -
Spring in Action 笔记(I)
2006-05-22 14:13 877By : icess ,我的部落格 http:// ... -
Spring in Action 笔记(II)
2006-05-25 00:04 1154... -
Spring in Action 笔记 (IV) -- i18n问题和自定义属性编辑器
2006-05-29 11:24 975Spring in Action 笔记 (IV) -- i18 ... -
Breezy简介 -- 快速开发Swing程序!
2006-06-04 22:33 1414Breezy简介 -- 快速开发Swing程序! ... -
最新消息 ,开源嵌入式数据库 Derby(JavaDB) 绑定在JDK 1.6中.
2006-06-18 18:48 1707如下:Source: Fran ... -
callisto(Eclipse 3.2) 迟到了 ?
2006-06-30 23:04 775在今天早些时候访问 callisto 的主页(http://w ... -
Callisto 终于可以下载了.
2006-07-01 04:47 769Callisto 终于可以下载了. Eclipse 3.2 ... -
最近想研究一下DWR 收集一些从入门到精通的系列资料
2006-07-13 15:55 935最近想研究一下DWR 收集一些从入门到精通的系列资料, 以备将 ... -
decode javascript.encode using java
2006-08-01 13:18 1540在前面一篇文章(http://www.hexiao.cn/bl ... -
Wicket 入门示例 :Hello World.
2006-08-05 10:38 1224Wicket http://wicketframework.o ... -
Wicket 教程2: 如何使用Label,MultiLineLabel,Border,BoxBorder
2006-08-07 15:29 1392上次介绍了一个wicket的一个HelloWorld入门示例, ... -
Wicket 教程3:使用 PageView 来调试页面
2006-08-08 09:22 1560使用 PageView 来调试页面.Wicket中提供了一个P ... -
Wicket 教程4:如何使用 Include,Panel,Fragment,Link
2006-08-08 09:25 2066Wicket 教程4:如何使用 ...
相关推荐
spring-cloud-starter-gateway下的依赖hibernate-validator-5.0.3.Final.jar
JSP-车辆管理系统(struts+hibernate+spring+oracle) 仅供学习交流! 后续会持续分享相关资源,记得关注哦! JSP-车辆管理系统(struts+hibernate+spring+oracle) JSP-车辆管理系统(struts+hibernate+spring+oracle) ...
《MLDN_J2EE框架_笔记--精华---(包括jsp struts hibernate spring)》这份压缩包文件聚焦于Java企业级开发中的核心技术,涵盖了JSP、Struts、Hibernate和Spring四大框架,它们是构建现代J2EE应用的基础。以下是这些...
spring-hibernate.jar
spring.jar spring-aop.jar spring-aop.jar spring-beans.jar spring-hibernate3.jar spring-jdbc.jar spring-struts.jar spring-web.jar
这个压缩包文件 "struts-2.5.1-spring-4.2.7-hibernate-5.0.9" 提供了一个整合这三个框架的示例项目,方便开发者直接使用或学习如何将它们集成在一起。 Struts 2 是一个基于 Model-View-Controller (MVC) 架构的...
标题中的“Spring-session2整合spring5+redis”指的是在Spring框架的第五个主要版本(Spring 5)中,集成Spring Session 2与Redis数据库来管理Web应用的会话(Session)。Spring Session是一个开源项目,旨在提供一...
struts-spring-hibernate-_-integration-2.zip
这两个模块的 jar 文件,`spring-data-commons-1.7.2.RELEASE.jar` 和 `spring-data-jpa-1.5.2.RELEASE.jar`,包含了它们各自的功能实现和依赖。在实际项目中,将这些 jar 文件添加到类路径,就可以利用 Spring Data...
Java-Spring+Struts+Hibernate-SSH框架整合01-Spring+Hibernate(一步一步的教你敲代码)(博客园,博客名称:Java-Spring+Struts+Hibernate-SSH框架整合01-Spring+Hibernate)
在SSH整合中,Hibernate 负责数据的存储和检索,Spring 可以与Hibernate集成,通过DAO(Data Access Object)层进行数据访问操作。 SSH整合的关键在于如何协调这三个框架的工作。通常,Spring作为核心框架,配置...
47Spring_IOC(下)笔记 47-Spring_IOC-v(上)笔记 48Spring_AOP笔记 49-Spring_JDBC模板笔记 50-Spring_Struts、Hibernate支持笔记 51-52使用Struts + Spring + Hibernate完成用户登陆笔记 53使用Struts + Spring ...
47Spring_IOC(下)笔记 47-Spring_IOC-v(上)笔记 48Spring_AOP笔记 49-Spring_JDBC模板笔记 50-Spring_Struts、Hibernate支持笔记 51-52使用Struts + Spring + Hibernate完成用户登陆笔记 53使用Struts + Spring ...
47Spring_IOC(下)笔记 47-Spring_IOC-v(上)笔记 48Spring_AOP笔记 49-Spring_JDBC模板笔记 50-Spring_Struts、Hibernate支持笔记 51-52使用Struts + Spring + Hibernate完成用户登陆笔记 53使用Struts + Spring ...
在实际开发中,这些库通常包括Spring的核心库(如spring-context、spring-beans)、Spring的数据访问/集成模块(如spring-jdbc、spring-orm)以及Hibernate的主库和相关的JDBC驱动等。 **步骤1:设置项目结构** 在...
至于项目中的"Spring-MVC-model",这部分可能是包含了Spring MVC的Model对象,它们用于在Controller和视图之间传递数据。Model对象可以是简单的Java类,也可以是Spring的ModelMap或者ModelAndView。在Controller处理...
spring data jpa的包。spring-data-commons-1.8.0.RELEASE.jar
在Spring框架中,`spring-objenesis-repack-2.1.jar`和`spring-cglib-repack-3.1.jar`是两个关键的依赖库,它们在Spring的内部工作原理和功能扩展中扮演着重要角色。让我们深入探讨这两个库以及它们与Spring 4的关系...
在本文中,我们将深入探讨如何将Spring Boot与Hibernate集成,并使用Druid作为数据库连接池。首先,我们需要理解这三个核心组件: 1. **Spring Boot**: 是一个由Pivotal团队提供的开源框架,它简化了创建独立的、...
在Struts与Hibernate的整合中,Spring可以作为“胶水”来管理和协调各个组件,比如管理Struts的Action实例,提供事务管理服务,以及整合Hibernate的数据访问层。 Hibernate 是一个强大的ORM框架,它将Java对象与...