hibernate学习

1.Session的取得:

Configuration cfg = new Configuration();
cfg.configure(confirureFile);
SessionFactory sf = cfg.buildSessionFactory();
Session se = sf.openSession();
...
se.flush();

se.close();

 

2.持久化类的状态:

  a.临时状态:从未与任何持久化上下文(session)关联过。没有持久化标识 。 

  b.持久化状态:目前与某个持久化上下文有关联,拥有持久化标识 ,并且可能在数据库中有一个对应的行。

  c.脱管状态:实例曾经某个持久化上下 文发生过关联,不过那个上下文被关闭了,或者这个实例是被序列化到另外的进程。 它拥有持久化标识,问臧奚事可能在数据库当中存在一个对应的行。

 

3.Configuration类

 它的作用是对Hibernate进行配置,以及对它进行启动。

  a.加载配置文件:

Configuration config = new Configuration().configure();//自动在当前的Classpath中搜寻hibernate.cfg.xml或者hibernate.properties

//指定文件的方式
File file = new File("....xml");
configuration c2 = new Configuration().configure(file);

  b.动态添加映射文件:

  c.指定配置属性:

 

4.SessionFactory

  典型来说, 一个项目只要一个就够了,但是如果要读多个不同的数据库,那么就要为每个数据库指定一个SessionFactory

 可以通过Configuration来构建SessionFactory:

Configuration config = new Configuration().configure();
SessionFactory sessionFactory = config.buildSessionFactory();

Session session = sessionFactory.openSession();
..
sessionFactory.close();

 

5.Session类:

  Session类是非线程安全的,因此最好一个线程只创建一个Session对象。

//保存数据
Transaction tx = session.beginTransaction();
session.save(object);
session.flush();
tx.commit();
tx.close();

//加载数据
Transaction tx1 = session.beginTransaction();
//将OID为1的Customer对象加载到session当中
Customer a = (Customer)session.load(Customer.class,new Long(1));
Customer b = (Customer)session.load(Customer.class,new Long(2));
tx1.commit();
 

你可能感兴趣的:(C++,c,Hibernate,xml,C#)