Hibernate开发心得

作者在 2007-06-02 00:42:00 发布以下内容
cucumalo  原创

hibernate核心接口:
Session  、  Transaction  、  Query  、Configuration  

Configuration  :配置、根启动Hibernate  创建SessionFactory对象
SessionFactory  :初始化Hibernate创建Session对象
Sesssion  :负责保存、更新、删除、加载和查询对象
Transaction  :管理事务
Query和Criteria  :  执行数据库查询

Query  query  =  session.createQuery("from  Customer  c  where  c.name  =:name");
query.setParameter("name","tom",Hibernate.STRING);

Sessin  接口方法  :

save();
updata();
delete();
load();
find();

Session  通过  SessionFactory.opensession()方法获得;
控制事务一起Transaction
Session  session  =  SessionFactory.openSession();
Transaction  tx  =  null  ;
try{
       tx  =  session.begionTransaction();
       //逻辑方法
       tx.commit();
}
catch(Exception  e){
           e.printStackTace();
           if(tx  !=  null)tx.rollback();
           thows  e  ;
}
finlly{
           session.close();
}

//session.save(customers)执行下列SQL语句:
insert  into  CUSTMERS  (ID  ,  NAME  ,  EMAIL  ,  PASSWORD  ,  PHONE  ,  ADDRESS  ,  SEX  ,  IS_MARRIED  ,  DESCRIPTION  ,  IMAGE  ,  BIRTHDAY  ,  REGISTERED_TIME  )  VALUES  (1  ,  'TOM'  ,  '1234',  55556666  ,'SHANGHAI','M'  ,  0  ,  'I  AM  VERY  HONEST'  @  ,'1980-05-06'  ,  NULL);

//session.find("from  customer  as  c  order  by  c.name  asc")执行下列SQL语句:
select  *  from  CUSTOMERS  order  by  name  asc  ;

//(customer)session.load(customer.class,customer_id)执行下列SQL语句:
select  *  from  CUSTOMERS  WHERE  ID  =  1  ;
update  CUSTOMERS  SET  NAME  =  'TOM'  ,EMAIL  ='TOM@YAHOO.COM'  ,ADDRESS  =  'BEIJING'  WHERE  ID  =  1;

//session.delete("from  CUSTOMER  AS  C");执行下列SQL语句:
select  *  from  CUSTOMERS  ;
DELETE  FROM  CUSTOMERS  WHERE  ID  =  1;  
或是:session.load(customers.class,id);
           session.delete(customer);
或是:
           session.load(customers.class,new  int(1));                                                                                    

/////////////////映射对象标识符
Hib中的标识符来建立内存中的对象和数据库表中记录的对应关系,对象的OID和数据库表的主键对应。为了保证OID的唯一性和不可变性,应该让Hib给OID赋值。

/////////////////映射一对多关联关系
在关系数据库中,只存在外键参照关系,而且总是由many方参照one方。为了消除数据冗余,关系性数据库只能支持多对一或是一对一的单向关联。

/////////////////操作持久化对象

session的实体对象状态分为三种:游离对象,持久化对象,临时对象

临时对象  :不处于session的缓存中,不和任何的session实例关联,数据库中无记录。
             例:order  o  =  new  order();通过new刚刚创建的java对象处于临时状态
                     session的de
默认分类 | 阅读 2208 次
文章评论,共0条
游客请输入验证码
浏览10868次
文章分类
最新评论