Hibemate基本概念和CURD详解

 

Hibernate基本概念和CURD(增删改查)详解

开发流程三种方式

1、由Domain object -> mapping->db。(官方推荐)

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

3、由映射文件开始。

一.         Domain Object限制(实体类的限制)

class clazz=User.class;

//调用无参的构造方法

User user=clazz.newInstence();

1.          默认的无参构造方法(如果你加上了有参数的构造方法,必须加上无参的构造)

2.          有无意义的标示符id(主键)(可选)(hibernate性能不能完全发挥)

3.          非final的类,对懒加载有影响(可选)(hibernate性能不能完全发挥)

二.         映射文件

一个java类在映射文件中用一对<class>标签表示。如果有多个java类,那么就应该有多个<class>标签,这些class标签,可以放到一个影身文件中,可以放到多个映射文件中。类型名.hbm.xml(这样命名可读性好),

如果类名饿表明一样的话,可以省略table属性

三.         Session接口中用到的方法

Session的几个主要方法

1、save,persist保存数据,persist在事务外不会产生insert语句。开启事务和save方法一样,但是如果都不开启事务save做了插入回滚,persist不做插入 

2、delete,删除对象

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

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

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

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

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

8、olad()一次使用才访问,懒加载

9、clear()清楚缓存

四.模板代码

public static void addUser1(User user){

     Session session=null;

     Transaction tx=null;

     try{

        session=HibernateUtil.getSession();

        tx=session.beginTransaction();

        session.save(user);

        //hibernate的自动回滚

        tx.commit();

       

     }finally{

       

        if(session!=null)

          session.close();

     }

   }

五.     对象的状态

(1)瞬时状态:自己new出来的对象。在数据库的表中是没有记录和相应的瞬时对象是对应的.

(2)持久状态的对象:session.Save(user);数据库中有记录和这个对象相对应得并且被session管理,持久状态的数据改变时,数据库也会随着改变

(3)脱管状态:数据库的表中有一条记录和对象相对应,和session脱离管理,对象在做任何改变数据库都不会改变

'[IT18掌www.it18zhang.com]001.Hadoop基础篇.pptx' '[IT18掌www.it18zhang.com]014.Hadoop Win7开启网络访问.pptx' '[IT18掌www.it18zhang.com]Kafka.pptx' '[IT18掌www.it18zhang.com]002.VMware下载与安装.pptx' '[IT18掌www.it18zhang.com]015.Hadoop 架构分析.pptx' '[IT18掌www.it18zhang.com]KVM.pptx' '[IT18掌www.it18zhang.com]003.Ubuntu下载与虚拟机下安装.pptx' '[IT18掌www.it18zhang.com]016.Hadoop 架构分析之启动脚本分析.pptx' '[IT18掌www.it18zhang.com]Scala.pptx' '[IT18掌www.it18zhang.com]004.Ubuntu常用命令.pptx' '[IT18掌www.it18zhang.com]017.Hadoop 架构分析之启动脚本总结.pptx' '[IT18掌www.it18zhang.com]Spark Graph编程指南.pptx' '[IT18掌www.it18zhang.com]005.Ubuntu目录与权限.pptx' '[IT18掌www.it18zhang.com]018.Hadoop MapReduce初识.pptx' '[IT18掌www.it18zhang.com]Spark SQL DataFrame Dataset编程指南.pptx' '[IT18掌www.it18zhang.com]006.Ubuntu软件包桌面与增强工具.pptx' '[IT18掌www.it18zhang.com]019.Hadoop MapReduce原理.pptx' '[IT18掌www.it18zhang.com]Spark Streaming编程指南.pptx' '[IT18掌www.it18zhang.com]007.Ubuntu本地软件源与iso制作.pptx' '[IT18掌www.it18zhang.com]019.Hadoop YARN事件分发原理.pptx' '[IT18掌www.it18zhang.com]Spark编程指南.pptx' '[IT18掌www.it18zhang.com]008.Ubuntu虚拟机克隆与Mac地址生成与网络连接方式.pptx' '[IT18掌www.it18zhang.com]020.Hadoop HDFS.pptx' '[IT18掌www.it18zhang.com]Spark编译运行处理.pptx' '[IT18掌www.it18zhang.com]009.Hadoop-Ubuntu下JDK与Hadoop安装配置.pptx' '[IT18掌www.it18zhang.com]021.Hadoop HDFS CLI.pptx' '[IT18掌www.it18zhang.com]Spark基础.pptx' '[IT18掌www.it18zhang.com]010.Hadoop配置-独立与伪分布式模式.pptx' '[IT18掌www.it18zhang.com]Ambari Hadoop集群管理工具.pptx' '[IT18掌www.it18zhang.com]Spark调优.pptx' '[IT18掌www.it18zhang.com]011.Hadoop配置-完全分布式模式.pptx' '[IT18掌www.it18zhang.com]Avro.pptx' '[IT18掌www.it18zhang.com]ZooKeeper.pptx' '[IT18掌www.it18zhang.com]012.Hadoop Windows下免Cygwin伪分布安装
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值