1.Hibernate初始化

来源:互联网 发布:python urllib2 post 编辑:程序博客网 时间:2024/05/18 00:03

1.Hibernate初始化:

1.1 创建Configuration类的实例。Configuration类的构造方法把默认文件路径下的hibernate.properties配置文件的配置信息读入到内存:

Configuration config=new Configuration();

1.2**调用addClass(Monkey.class)方法;** 该方法把默认路径下的Monkey.hbm.xml映射信息读入到内存。

config.addClass(Monkey.class)

1.3调用Configuration 类的bulidSessionFactory()方法:

sessionFactory=config.bulidSessionFactory();

该方法把Configuration包含的所有配置信息复制到SessionFactory对象缓存中。SessionFactory代表一个数据存储源。如果应用只需要一个数据源,那么只需要创建一个SessionFactory实例。当sessionFactory创建以后,该对象不和Configuration 对象关联。
sessionFactory是线程安全的,多个线程之间可以并发访问。

sessionFactory=new Configuration().addClass(Monkey.class).bulidSessionFactory();

2.访问Hibernate的Session接口:

Session是一个轻量级的对象,每执行一个数据库事务,就应该创建一个session实例,不论事务执行的成功与否都要 close() Session.
Session是非线程安全的,多个线程同时访问一个Session进行数据库的存取会造成Session数据存取逻辑混乱。
调用SessionFactory实例的openSession()方法来获取Session实例。Session提供了操作数据库的各种方法:

2.1 save()方法:

save()方法是用来保存持久化对象,进而在数据库中新增一条数据的方法;执行save()方法之后不会立即操作数据库来进行保存数据,而是在Transaction对象的commit()方法执行之后才会保存数据。

        Configuration config = new Configuration();        config.configure();        SessionFactory sessionFactory = config.buildSessionFactory();        Session session = sessionFactory.getCurrentSession();        Transaction tx = session.beginTransaction();        Guestbook gb = new Guestbook();        gb.setName("刘伟");        gb.setPhone("01082622285");        gb.setEmail("liuwei8809@163.com");        gb.setTitle("大家好");        gb.setContent("欢迎大家学习Hibernate技术。");        gb.setCreatedTime(new Date());        session.save(gb);        tx.commit();        sessionFactory.close();    }}

2.2 get()/load()方法:

通过Session对象的get()方法可以获取数据库中的一条记录,如:

Guestbook gb=(Guestbook) session.get(Guestbook.class,new Integer(1));//查找Guestbook中id为1的记录

参考:http://blog.163.com/magicc_love/blog/static/1858536622012092478227/

0 0