`

Hibernate 使用 JDBC 方式

阅读更多

公司项目采用hibernate和jdbc共存的数据存取方式。

测试时,发现Jdbc写了Logger表之后,Hibernat再去读取时,就报错,can't execute update。

网上搜索说是Hibernate的缓存机制,与数据库不同步的时候,就报错了。

采用去缓存,flush等方法,发现还是报错,于是乎,想到干脆使用hibernate的jdbc去存取算了。

于是将DAO方法修改如下:

 

public Logger saveLogger(Logger logger) {
  // TODO Auto-generated method stub
  //DAOFactory.getFactory().getDAO().getObjects("from Logger", null);
  //get session
  Session session = HibernateSessionFactory.getSessionFactory().openSession();
  
  try {
   String sql = "insert into logger(user,object,objectid,action,description) values('"+logger.getUser()+"','"+logger.getObject()+"','"+logger.getObjectid()+"','"+logger.getAction()+"','"+logger.getDescription()+"')";
   session.connection().prepareStatement(sql).execute();
   session.connection().commit();
   session.close();
  } catch (Exception e) {
   throw new HibernateException(e);
  } finally {
   HibernateSessionFactory.closeSession();
  }
  
  return logger;
 }

 

 注意其中的

    session.connection().commit();
开始的时候没有加入这个语句,数据总是保存不了。

 

分享到:
评论

相关推荐

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

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

    struts+hibernate+jdbc双表查询

    在实际项目中,"UserDaoImpl.java"可能是用户数据访问层的实现类,它可能包含使用Hibernate或JDBC进行双表查询的方法。例如,该类可能会有如下方法: ```java public List<User> getUsersWithOrders() { // ...

    Spring对Hibernate及JDBC提供的支持

    在实际项目中,Spring还允许开发者结合使用Hibernate和JDBC。例如,在大数据量的简单查询场景下,可以选择性能较高的JDBC;而在复杂的对象关系映射或者更新操作时,可以利用Hibernate的ORM优势。Spring的这种灵活性...

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

    标题中的“本人理解hibernate 与 JDBC 的最本质...选择使用哪种方式取决于项目需求和团队技术栈。在实际开发中,两者常结合使用,以发挥各自优势。对于初学者,理解这两种技术的区别有助于做出更适合项目的技术决策。

    Hibernate and JDBC

    - **灵活性限制**:相比直接使用JDBC,Hibernate在某些场景下可能缺乏足够的灵活性,特别是对于需要高度定制化的查询。 - **资源消耗**:Hibernate需要额外的内存来存储Session对象,对于大规模部署的应用程序来说,...

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

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

    kingbaseV8 hibernate jdbc 驱动

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

    hibernate和jdbc测试

    对于性能测试,可以比较使用JDBC和Hibernate执行相同任务的时间消耗,评估哪种方式更高效。同时,要关注内存使用情况,因为ORM框架可能会增加内存开销。 在进行测试时,使用单元测试框架,如JUnit,可以帮助自动化...

    类似hibernate的jdbc封装

    虽然这不完全等同于Hibernate的全部功能,但确实降低了使用JDBC的复杂度,提高了开发效率。 在压缩包中的"jdbc"文件可能是封装后的JDBC工具类库,包含了实现上述功能的Java源代码或已编译的类文件。你可以通过阅读...

    oracle分别使用jdbc和hibernate的例子

    JDBC(Java Database Connectivity)和Hibernate是两种常见的与Oracle交互的方式。本文将深入探讨如何使用JDBC和Hibernate来操作Oracle数据库,同时结合提供的标签"源码"和"工具",我们将讨论它们的实现细节和优势。...

    Jdbc 和hibernate

    然而,尽管JDBC提供了通用的数据库访问方式,但直接使用JDBC编写代码可能会导致大量重复和冗余的数据库操作代码,这使得维护和扩展变得困难。 **Hibernate** 是一个优秀的开源对象关系映射(ORM)框架,它简化了...

    JDBC与Hibernate区别

    Hibernate使用HQL(Hibernate Query Language)或Criteria API,使得开发者可以以更面向对象的方式编写查询。这提高了代码的可读性和可维护性,降低了学习成本。同时,Hibernate自动管理对象的状态和持久化,确保...

    spring hibernate,spring jdbc事务管理

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

    hibernate+jdbc版课设 新闻发布系统

    Hibernate是一个强大的对象关系映射(ORM)框架,它允许开发者用面向对象的方式来操作数据库,极大地简化了数据库操作。JDBC(Java Database Connectivity)则是Java中用于连接数据库的标准接口,虽然直接使用JDBC...

    Hibernate与JDBC对于数据库CRUD操作性能示例

    Hibernate与JDBC对于数据库的性能操作对比事例,配置,更多信息资源

    hibernate-batch-size-test:Hibernate hibernate.jdbc.batch_size 测试

    在Java开发中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者使用面向对象的方式来操作数据库,而无需直接编写SQL语句。`hibernate.jdbc.batch_size`是Hibernate配置中的一个重要参数,用于控制...

    搭建hibernate所使用的jar包,内含mysql的jdbc的jar包

    标题提到的是“搭建hibernate所使用的jar包,内含mysql的jdbc的jar包”,这表明这个压缩包包含了用于构建Hibernate框架的库文件,并且这些库中还包括了连接MySQL数据库的Java Database Connectivity (JDBC)驱动。...

    Java-Hibernate-JDBC.rar_Author_ Author

    通过Hibernate,开发者可以使用面向对象的方式来操作数据,而无需编写大量的SQL语句。Hibernate的核心功能包括持久化对象、查询语言(HQL)和 Criteria 查询等。它提供了一种透明的数据访问层,使得业务逻辑与数据...

    优化Hibernate性能的几点建议

    在使用Hibernate进行数据查询时,Fetch Size的设置对性能有着显著的影响。Fetch Size是指每次从数据库中取出的数据行数,默认情况下,Oracle数据库的JDBC驱动程序中的Fetch Size被设置为15。然而,将Fetch Size增加...

Global site tag (gtag.js) - Google Analytics