Spring3.1.3 + Hibernate4 事务管理简单例子
来源:互联网 发布:易知是什么意思 编辑:程序博客网 时间:2024/06/05 04:07
Spring3.1.3 + Hibernate4 事务管理简单例子
一 【起源】
开始是因为对Spring的事务管理不太了解,想通过做一个小的CRUD demo来加深理解的。在做的过程中费尽周折花了不少力气,重要的是也有所收获。
事务管理主要是Spring声明式的 aop:config配置方式
二 【结构及用到的jar包】
jar包太多,不一一列举
三 【配置】
3.1 web.xml
3.2 Spring 相关配置
3.2.1 applicationContext.xml
数据库的用户名 密码 地址是配置在这个文件里的。
datasource用了两种配置方式 jdbc 以及 proxool
在这里引用下网上对连接池的评论
目前常用的连接池有:C3P0、DBCP、Proxool
网上的评价是:
C3P0比较耗费资源,效率方面可能要低一点。
DBCP在实践中存在BUG,在某些种情会产生很多空连接不能释放,Hibernate3.0已经放弃了对其的支持。
Proxool的负面评价较少,现在比较推荐它,而且它还提供即时监控连接池状态的功能,便于发现连接泄漏的情况。
3.2.2 Spring MVC 配置
spring-servlet.xml
图:
3.3 Hibernate配置
hibernate.cfg.xml
可见在这个文件里已无数据库 用户名 密码 地址 的配置了
四 【Service层】
接口类IService
接口实现类 MyServiceImp.java
主要的想法是用原生Sql而不是Hibernate sql,然后用Spring的事务管理去处理提交 回滚的操作
五 【Controller】
六 【View 层】
列表界面 register.jsp
编辑界面 userinfo.jsp
这个页面是把User 作为一个json对象 整个传递给了后台。
后台对json的接收
七 【问题及解决】
1.
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderServlet
是由于我的配置文件还是按照老的spring2.x的方式配置的,后来根据reference和网上的资料按spring3.1的方法重新配置了web.xml applicationContext.xml, 问题解决
参考:http://blog.csdn.net/xingfuzhijianxia/article/details/6433918
2.
UnknownUnwrapTypeException: Cannot unwrap to requested type [javax.sql.DataSource]
错误信息:
……
onManager'; nested exception is org.springframework.beans.factory.BeanCreationEx
ception: Error creating bean with name 'txManager' defined in ServletContext res
ource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; neste
d exception is org.hibernate.service.UnknownUnwrapTypeException: Cannot unwrap t
o requested type [javax.sql.DataSource]
这个错误是一开始我把datasource 也就是数据库的用户名 密码 地址配在Hibernate的配置文件里了。
applicationContext里面没有配datasource引起的。后来查阅资料得知Spring的配置文件里必须有datasource
才行,不然就会报这种错误。
3.
json错误:
net.sf.json.JSONException: A JSONObject text must begin with '{' at character 1 of object Object
错误原因是我jsp页面中生成的json字符串格式问题
解决参考:
http://bbs.csdn.net/topics/350138016
4.
org.hibernate.exception.SQLGrammarException: ORA-01747: user.table.column, table.column
这个问题是由于Sql中的查询字段与数据库表中的系统关键字冲突,或者
是因为sql语句写的有问题,把sql 拿到sqlplus中验证即可
八 【鸣谢】
本文编撰过程中参阅了以下内容,特表示感谢:
http://blog.csdn.net/xingfuzhijianxia/article/details/6433918
http://bbs.csdn.net/topics/350138016
http://www.iteye.com/topic/615413
http://www.iteye.com/topic/1120924
- Spring3.1.3 + Hibernate4 事务管理简单例子
- Spring3.1.3 + Hibernate4 事务管理简单例子
- Hibernate4+Spring3+SpringMVC事务管理
- hibernate4+spring3 一个简单的例子
- Spring3与hibernate4集中式声明事务管理
- Spring3与hibernate4注解式声明事务管理
- Hibernate4+Spring3实现声明式事务管理
- struts2.3+spring3.2+hibernate4.2例子
- Struts2+Hibernate4+Spring3 整合登录例子
- spring3+hibernate4配置事务管理以及session获取问题。
- struts2 spring3 hibernate4 最简单整合
- struts2 spring3 hibernate4 最简单整合
- Spring3.1 整合hibernate4 简单设置
- Spring3与hibernate4集中式声明事务管理与注解式事务管理
- ssh整合例子(spring3 + struts2 + hibernate4+dwr+ext+json)
- Spring3.1 + Hibernate4.2.1 + JBPM5.4 + Ehache整合例子
- spring3.2+hibernate4 事务管理(支持自定义部分开发和关闭事务)
- Spring整合hibernate4:事务管理
- 手把手教你把Vim改装成一个IDE编程环境(图文)
- 用于MSP430的W5200驱动(2013/1/20更新)
- libSVM简介及核函数模型选择
- 通向架构师的道路(第二天)之apache tomcat https应用
- JAVA中修饰符
- Spring3.1.3 + Hibernate4 事务管理简单例子
- SharedPreferences使用
- 使用cdrecord命令刻录光盘
- 如何设计一个优秀的向导式界面(Wizard)
- 软件设计总结图
- android中的单选和多选框
- js实现滚动条到底自动加载图片
- 嗯,这个软件不错哟•••
- (转)eclipse debug (调试) 学习心得