Hibernate的配置和Hibernate的持久化类

来源:互联网 发布:淘宝联盟提现时间限制 编辑:程序博客网 时间:2024/04/28 03:24

计应134  (实验班)  寿燕

在配置hibernate中 需要驱动jtds-1.2.jar+SQL2000+ myeclipse+tom6.0+jdk .在SQL中创建表然后连接数据库.需要登录数据库的账号,连接数据库的URL,登录数据库的密码  数据库的驱动。在配置过程中还出现过404 类似的错误  这是驱动的问题 最后换成 sqljdbc4-car后运行就没出现如何问题。

<hibernate-configuration>
<session-factory>
<property name="dialect">
org.hibernate.dialect.SQLServerDialect
</property>
<property name="connection.url">
jdbc:jtds:sqlserver://127.0.0.1:1433/test
</property>
<property name="connection.username">sa</property>
<property name="connection.password"></property>
<property name="connection.driver_class">
net.sourceforge.jtds.jdbc.Driver
</property>
<property name="myeclipse.connection.profile">jtds1.2</property>
<mapping resource="com/cqvie/AddressInf.hbm.xml" />
<mapping resource="com/cqvie/PersonInf.hbm.xml" />

</session-factory>
</hibernate-configuration>

 “Hello World”“Hello world”示例程序让您对Hibernate有一个简单的认识。 
  理解Hibernate的架构介绍Hibernate接口的主要功能。 
  核心接口Hibernate有5个核心接口,通过这几个接口开发人员可以存储和获得持久对象,并且能够进行事务控制 
  一个重要的术语:TypeType是Hibernate发明者发明的一个术语,它在整个构架中是一个非常基础、有着强大功能的元素,一个Type对象能将一个Java类型映射到数据库中一个表的字段中去。 
  策略接口Hibernate与某些其它开源软件不同的还有一点――高度的可扩展性,这通过它的内置策略机制来实现。 
  基础配置Hibernate可以配置成可在任何Java环境中运行,一般说来,它通常被用在2-3层的C/S模式的项目中,并被部署在服务端。 
  创建一个SessionFactory对象要创建一个SessionFactory对象,必须在Hibernate初始化时创建一个Configuration类的实例,并将已写好的映射文件交由它处理。 

Hibernate主要用来实现Java对象和表之间的映射,除此之外还提供还提供数据查询和

获取数据的方法,可以大幅度减少开发时人工使用SQL和JDBC处理数据的时间。


hibernate的持久化对象有3种状态:瞬态,持久化和托管。

持久化对象的特征。持久化对象具有以下特征:
(1) 位于一个Session实例的缓存中,也可以说,持久化对象总是被一个Session实例关联。
(2) 持久化对象和数据库中的相关记录对应。
(3) Session在清理缓存时,会根据持久化对象的属性变化,来同步更新数据库。

Session的许多方法都能够触发Java对象进入持久化状态:
(1) Session的save()方法把临时对象转变为持久化对象。
(2) Session的load()或get()方法返回的对象总是处于持久化状态。
(3) Session的find()方法返回的List集合中存放的都是持久化对象。
(4) Session的update()、saveOrUpdate()和lock()方法使游离对象转变为持久化对象。
(5)当一个持久化对象关联一个临时对象,在允许级联保存的情况下,Session在清理缓存时会把这个临时对象也转变为持久化对象。

Session session1=sessionFactory.openSession();
Session session2=sessionFactory.openSession();
Transaction tx1 = session1.beginTransaction();
Transaction tx2 = session2.beginTransaction();

Customer a=(Customer)session1.load(Customer.class,new Long(1));
Customer b=(Customer)session1.load(Customer.class,new Long(1));
Customer c=(Customer)session2.load(Customer.class,new Long(1));

System.out.println(a= =b);
System.out.println(a= =c); 

tx1.commit();
tx2.commit();
session1.close();
session2.close();



0 0
原创粉丝点击