六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 418|回复: 0

【hibernate】问题:hibernate无法持久化数据

[复制链接]

升级  0%

12

主题

12

主题

12

主题

秀才

Rank: 2

积分
50
 楼主| 发表于 2013-1-14 23:42:03 | 显示全部楼层 |阅读模式
现象:程序执行正确,但数据库没有已经执行成功的插入数据
问题:hibernhibernate无法持久化数据到数据库
解决:检查一下两个方面
1、不要多次new SessionFactory
SessionFactory是个工厂,要一个会话工厂要一个,不必每次都新建工厂
session接口

一般的持久化方法(CRUD)都是通过Session来调用的,Session是非线程安全的。
Session是一个轻量级对象,通常将每个Session实例和一个数据库事务绑定,也就是每执行一个数据库事务,都应该先创建一个新的Session实例,在使用Session后,还需要关闭Session。
  创建Session:Session session=sessionFactory.openSession();
关闭Session:session.close();
SessionFactory 接口

这里用到了一个设计模式――工厂模式,用户程序从工厂类SessionFactory中取得Session的实例。

  SessionFactroy接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。这里用到了工厂模式。需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。
2、hibernate.cfg.xml中:hsqldb.write_delay=false
connection=DriverManager.getConnection("jdbc:hsqldb:file:feng;hsqldb.write_delay=false;","SA","");
使用该模式,无需断开连接,当对数据进行修改后,很快会被持久化,但也正因为此,使用该配置性能稍差些。
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表