作者在 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
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