Hibernate基本概念与CRUD(增删改查)

来源:互联网 发布:win10怎么删除网络2 编辑:程序博客网 时间:2024/06/10 08:53
一、开发流程 Hibernate的基本概念和CURD(增删改查)
(1)Domain类
(2)映射文件
(3)表create table user()
开发流程:1、由Domain object->mapping->db
 2、又DB开始,用工具生成mapping和Doamin object(使用较多)
 3、由映射文件开始
二、
1、实体类对象限制
(1)默认的构造方法(必须)(利用反射机制来创建的对象)
(2)有无意义的标识符id(主键) 可选
(3)非final,对懒加载有影响(可选)
2、映射文件
一个Java类在映射文件中用一对<class></class>标签表示,如果有多个Java类,就应该有多个<class>标签
这些<class>标签可以放到一个映射文件,可以放到多个映射文件。类名.hbm.xml
属性标签内可以加属性  column 表示列名   not-null="true" 不为空
3、代码编写  增删改查
一个标准的模版代码: 
try {
     tx = sess.beginTransaction();
     //do some work
     ...
     tx.commit();
 }
 catch (Exception e) {
     if (tx!=null) tx.rollback();
     throw e;
 }
 finally {
     sess.close();
 }
 
三、session对象
开启事务方法: beginTransaction() 返回一个事务


清楚缓存     clear()
释放资源     close() 
在缓冲区中找着是否包含指定的对象    contains(Object object)
生成查询对象    createCriteria()
删除某一个对象    delete()
刷新缓冲区         flush()
查询方法         get()
懒加载           load()
在查询中,如果后面使用该对象的时候,它才会去查询。
保存插入          save()     开启事务,执行插入,如果没有开启,则执行但插入不成功
保存插入          persist()   如果开启事务,它与save一样,如果没有开启事务,它根本没有执行
saveOrUpdate   根据ID和version的值来确定是save或update
nerge  独爱踢不过nerge你的对象还是托管
四、对象状态
1、瞬时状态:自己new出来对象就是瞬时状态 User user=new User();user是一个瞬时对象
在数据库的表中没有记录和瞬时对象相对应的,不被session管理
当执行:session.save(user)
2、持久状态:数据库表中有记录和这个对象相对应的,并且被session管理。
当对象在这个状态中,如果session没有关闭,更改对象的内容。数据库也会跟着改变
在session关闭。
3、脱管状态:数据库的表中有一条记录和对象相对应,但它和session没有任何关系了















原创粉丝点击