`
酷的飞上天空
  • 浏览: 521791 次
  • 性别: Icon_minigender_1
  • 来自: 无锡
社区版块
存档分类
最新评论

记一次hibernate无法取得jdbc插入数据的问题折腾

    博客分类:
  • J2EE
阅读更多

大概情况如下

前端:struts2+spring3+hibernate3 + mysql 主要用于取得数据库的数据显示在页面,含有少量的数据更新操作。

后端:jdbc + mysql 用于接收某客户端发来的数据(socket通信),并存入数据库,供前端显示。

 

问题:

jdbc可以成功插入数据库,但前端无法取得jdbc插入的数据,而前端自己的更新操作均无问题。

经查看数据库,确定jdbc确实插入了数据库,但hibernate取得的数据列表中就是没有jdbc插入的数据。

同样,jdbc对数据库中的某条数据进行更新操作,经确定已更新到数据库中。但前端hibernate取的数据仍然是未更新前的数据。hibernate的二级缓存未开启,所以排除缓存的原因,而且控制台打印的确实有sql查询语句,也说明并未使用缓存。

 

通过对照以前一个项目,发现我使用是hibernate的默认数据库连接池,未使用dbcp或c3p0。

 

尝试一:偷懒了下,把hibernate的数据库配置,移到spring中。

 

结果:jdbc插入的数据可以被hibernate取得,但jdbc对已有数据的更新,hibernate依旧取到的是未更新前的数据

 

一番折腾后再次尝试:

 

尝试二:为spring的aop事务添加一个默认匹配全部方法的配置,以前只配置了更新,添加,删除的方法

添加匹配其他方法配置 如下

<tx:method name="*" read-only="true"/>

 

结果:OK,hibernate可以正确读取jdbc插入和更新的数据了。

 

最后把spring的数据库配置改为原来的使用hibernate默认的链接池配置,未再出现前面的问题。

 

看来问题确实出在,事务的配置上了。 如果不使用jdbc操作数据库恐怕还发现不了这个问题。。。

 

 

分享到:
评论

相关推荐

    hibernate入门数据简单插入

    在数据插入过程中,通常将一系列操作封装在一次事务中,以确保数据的一致性。 9. **错误处理和日志**:在实际开发中,需要考虑错误处理,比如捕获`HibernateException`,并使用日志记录框架(如Log4j)记录异常信息...

    kingbaseV8 hibernate jdbc 驱动

    在标题和描述中提到的"kingbaseV8 hibernate jdbc驱动",意味着我们需要关注如何在Hibernate框架中使用KingbaseV8的JDBC驱动进行数据操作。 JDBC(Java Database Connectivity)是Java中用于连接数据库的标准接口,...

    JDBC与Hibernate区别

    相比之下,Hibernate是一个对象关系映射(ORM)框架,它抽象了数据库操作,提供了面向对象的方式来处理数据。Hibernate使用HQL(Hibernate Query Language)或Criteria API,使得开发者可以以更面向对象的方式编写...

    hibernate所需包:hibernate3,依赖包,JDBC

    标题和描述中提到的关键信息是“hibernate3”、“依赖包”和“JDBC”。这表明我们将讨论关于Hibernate ORM框架的第三版,它所需的依赖库,以及与Java数据库连接(JDBC)的关系。Hibernate是一个流行的Java持久化框架...

    hibernate + shardingjdbc +springboot 结合做的demo

    在这个示例中,我们将探讨如何将Hibernate ORM框架、ShardingSphere的ShardingJDBC模块与Spring Boot整合,构建一个高效的分布式数据库应用。这样的组合允许我们利用Hibernate的强大ORM能力,同时通过ShardingJDBC...

    spring hibernate,spring jdbc事务管理

    两个项目,一个项目是基于spring jdbc实现的分布式事务,一个是基于spring hibernate的分布式事务,hibernate项目里的applicationContext2.xml是基于mysql和mssql, applicationContext3.xml基于两个mssql, ...

    Hibernate and JDBC

    - **性能问题**:对于某些复杂查询,Hibernate可能无法达到最佳性能,尤其是在处理大量数据时。 - **学习曲线**:虽然Hibernate简化了许多操作,但对于新手来说,理解其核心概念和配置仍需一定时间。 - **灵活性限制...

    hibernate 链接access数据的jdbc驱动包

    总的来说,"hibernate 链接access数据的jdbc驱动包"是一个包含必要的JDBC驱动和可能的辅助资源的集合,用于使Hibernate能够与Access数据库进行通信。尽管Access在企业级应用中可能不是首选的数据库,但在小型项目或...

    jdbc和hibernate的区别

    3. **数据状态**:JDBC操作的数据是瞬时的,数据库与内存中的数据可能不一致,而Hibernate提供了一种对象-关系映射机制,使得数据具有持久性,能够保持数据库与对象的一致性。 **性能比较:** 1. **创建操作**:...

    struts+hibernate+jdbc双表查询

    总结起来,"struts+hibernate+jdbc双表查询"是关于如何在Java Web项目中,利用Struts处理请求,Hibernate管理数据对象与数据库的映射,以及JDBC进行复杂数据库操作,特别是涉及到两个表之间的联合查询。在实际开发中...

    JDBC与Hibernate的比较

    **Hibernate**则是一种ORM(Object Relational Mapping,对象关系映射)框架,它简化了数据持久化层的复杂性,提供了比JDBC更为高级的功能,如缓存机制、事务管理以及对象关系映射等。通过使用Hibernate,开发者可以...

    Spring对Hibernate及JDBC提供的支持

    本文将深入探讨Spring如何为Hibernate和JDBC提供支持,帮助开发者更高效地进行数据访问操作。 首先,Spring对Hibernate的支持体现在其集成层面。通过Spring,我们可以将Hibernate的SessionFactory和Session对象的...

    Hibernate插入数据

    本篇将详细探讨“Hibernate插入数据”的相关知识点,结合学习心得,深入理解并掌握其核心原理与实践技巧。 首先,Hibernate通过对象关系映射(ORM)技术,将数据库表与Java类关联起来,使得数据库操作可以通过对象...

    使用JDBC和Hibernate来写入Blob型数据到Oracle中

    总结来说,无论是通过JDBC还是Hibernate,写入Oracle数据库的Blob字段都需要先创建一个空Blob,然后获取其cursor,最后将二进制数据写入Blob。在JDBC中,这个过程涉及多个SQL语句和流操作;而在Hibernate中,通过ORM...

    本人理解hibernate 与 JDBC 的最本质区别

    Hibernate 是一个对象关系映射(ORM)框架,而 JDBC(Java Database Connectivity)是 Java 语言中用于与数据库交互的标准 API。两者的本质区别主要体现在以下几个方面: 1. **编程模型**: - **JDBC**:使用 ...

    Jdbc 和hibernate

    标题 "Jdbc 和hibernate" 提到的两个主要概念是Java数据库连接(JDBC)和Hibernate,它们都是Java开发中用于与关系型数据库交互的重要技术。本文将深入探讨这两个技术,以及它们之间的区别和联系。 JDBC是Java平台...

    分别使用Hibernate和JDBC操作数据库

    本话题将详细探讨两种常见的Java技术:Hibernate和JDBC,用于实现这一目标。 **JDBC(Java Database Connectivity)** 是Java平台上的标准API,它允许Java应用程序连接到各种类型的数据库。JDBC提供了连接数据库、...

    JDBC+Hibernate将Blob数据写入Oracle

    以下是对“JDBC+Hibernate将Blob数据写入Oracle”这一主题的深入解析。 ### JDBC与Oracle BLOB的交互 #### 1. 理解Oracle BLOB特性 在Oracle中,BLOB用于存储大量的二进制数据,如图像文件。与传统的文本或数字...

    在JDBC,hibernate中实现分页

    本文将深入探讨如何在Java开发环境中使用Hibernate框架以及JDBC结合SQL Server 2005来实现数据分页功能。 #### Hibernate中的分页实现 在Hibernate框架中实现分页功能相对较为简单。通过`Query`对象提供的方法即可...

Global site tag (gtag.js) - Google Analytics