hibernate

来源:互联网 发布:常用的统计软件 编辑:程序博客网 时间:2024/06/05 20:27

一个WEB程序

首先 页面注册一个用户比如用户名 aa 密码 aa

注册完以后,查看数据库,数据插入到了数据库中,

然后重开个页面,登录,输入用户名 aa 密码 aa,无法登录,说是找不到

其调用的方法是 getUserByNameAndPassword(用户名,密码)

此时服务器不关,直接执行JUnit的测试文件,调用该方法,能找到这个用户的注册信息, ,然后服务器重启,此时再输入用户名 aa 密码 aa,便能登录了,请问下,在不看代码的情况下,可能是什么地方出了问题?

插入及访问代码是基于Hibernate 编写的,要求写出可能的情况及解决方案.

应该是hibernate缓存的问题.在注册完以后只是把数据保存在了缓存里面,而没有提交到数据库.

当你用Junit测试的时候当然可以测成功,因为hibernate是先查看缓存的.如果缓存里面有它想要的东西就不查数据库了,直接拿过来用.如果没有才查的.

至于问题说的关闭服务器以后,重起就可以登陆了.那应该是在关闭服务器的同时,hibernate commit了缓存里面的数据.

2、在hibernateORM的是什么意思,它起什么作用?

ORM的全称是Object-Relational Mapping,翻译成中文就是“对象—关系映射”。ORM组件的主要功能是实现实体域对象的持久化并封装数据访问的细节。

3、在hibernate中的.hbm.xml映射文件起了什么作用?

它的作用是描述持久层对象以及它们的属性和数据库中的表和表的字段之间的对应关系。没有映射文件,Hibernate系统无法完成Java对象和数据库表中的数据的相互转化。只有通过映射文件,Hibernate才能知道所操作的对象与哪个表相关联。本实例所定义的映射文件映射文件的名称一般和Java对象的名称相同,

扩展名使用.hbm.xml,以便和普通的XML文件区分。并且映射文件与对应的JAVA对象放在同一目录。

4、使用Hibernate进行持久化操作主要需要哪几个步骤?

Step1 创建Configuration对象

      在这一步中主要为了进行配置文件的装载操作,读取所有的配置文件并进行解析。

Step2 创建SessionFactory对象

      通过创建好的Configuration对象可以创建一个SessionFactory对象的实例,它是产生Session对象实例的工厂,它在整个应用中应该是唯一的。

Step3 创建Session对象

      Session对象类似于与数据库的连接对象,可以理解为与数据库建立的一个连接,但它的功能要比JDBC中的Connection对象丰富得多。

Step4 开始一个事务

      在Java中定义一个事务操作的开始,这是使用Hibernate进行持久化操作必不可少的步骤。

Step5 进行持久化操作

      在这个步骤中可以读取或者保存Java对象。

Step6 结束事务

      在操作完成后还要进行显示的结束事务的操作。

Step7 关闭Session

  类似于释放数据库的连接。