基本概念和CURD

来源:互联网 发布:适合java开发的苹果本 编辑:程序博客网 时间:2024/05/16 10:46

基本概念和CURD

Hibernate需要的三个条件

(1)、Domain类

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

(3)、表create table user();

一、开发流程

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

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

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没有任何关系了