Hibernate

来源:互联网 发布:mysql date add的用法 编辑:程序博客网 时间:2024/06/13 03:31
 

 

基本概念和CURD

Hibernate需要的三个条件

(1)、Domain类

(2)、 映射文件User.hbm.xml 

(3)、表create table user();

一、开发流程

1、  由Domian object –>mapping->db(官方推荐)

2、  由DB开始,用工具生成mapping和Domain object。(使用较多)

3、  有映射文件开始

二、

1、实体类对象的限制

(1)默认的构造方法(必须的)。Hibernate反射机制调用实体类

(2)有无意义的标示符id(主键)(可选)

(3)非final的,对懒加载有影响(可选)

2、映射文件

一个Java类在映射文件中用一对<class>标签表示。如果有多个Java类在映射文件中要有多个<class>标签。这些<class>标签可以放到一个映射文件中,也可以放到多个映射文件中。

映射文件名一般用 类名.hbm.xml

4、  代码编写

工具类HibernateUtil

public final class HibernateUtil {

       private static SessionFactory sessionFactory;

       private HibernateUtil(){

             

       }

       static{

              Configuration cfg=new Configuration();

              cfg.configure();

              sessionFactory = cfg.buildSessionFactory();

      

       }

       public static SessionFactory getSessionFactory(){

              return sessionFactory;

       }

       public static Session getSession(){

              return sessionFactory.openSession();

       }

}

Session接口中常用方法

1、save,persist保存数据,persist在事务外不会产生insert语句。

       2、delete,删除对象

       3、update,更新对象,如果数据库中没有记录,会出现异常。

       4、get,根据ID查,会立刻访问数据库。

       5、Load,根据ID查,(返回的是代理,不会立即访问数据库)。

       6、saveOrUpdate,merge(根据ID和version的值来确定是save或update),调用merge你的对象还是托管的。

       7、lock(把对象变成持久对象,但不会同步对象的状态)。

 

(1)   瞬时状态:自己new出来的对象就是状态

User user=new User();//user是一个瞬时对象数据库的表中是没有记录和瞬时对象是相对应的

Session.save(user);

(2)   持久状态:数据库表中有相应记录是和这个对象相对应的,并且被session管理

(3)   脱管状态:数据库的表中有一条记录和对象相对应,但它和session没有任何关系了 

原创粉丝点击