Hibernate学习笔记上

最近忙里偷闲,研究下ORM的框架,一直使用ibatis,想换换口味了,使用很火的hibernate,没想到两者的差距是如此的大,写下自己使用后的感觉。

PS:如有错误请留言讨论,凡事没有绝对,特别是在软件界。

详细的就不阐述了,使用过的应该都会有感触,在使用hibernate的时候,

需要你考虑的更多,特别是数据库的关系,而以前自己手写的时候没有想的那么深入。

ibatis的自由度很大,SQL完全自己写,很灵活,但远没有hibernate那么强大

 

学习笔记(不包括注解):

首先从hibernate的配置文件说起

hibernate的配置文件分为两种:

  主配置文件(hibernate.cfg.xml):一般只有一个,当然多个数据库就另当别论

  包含以下几部分的内容(根标签 hibernate-configuration):

    1.数据库的连接信息:url,驱动,用户名,密码(和通过JDBC连接完全一致)

    2.hibernate的属性配置:show_sql,dialect 是最常用的了,其他的google吧...

    3.配置映射文件的位置(任意个,是第二种配置文件,稍候即会介绍)

 

  映射配置文件(类名.hbm.xml):任意个(根标签 hibernate-mapping)

  映射文件就是实体类与数据库中的表形成的对应关系

 

hibernate中的一些术语:

  即时加载:不管是否使用,直接从数据库中取出放入内存(典型的有session.get方法)

  延迟加载:直到使用的时候才从数据库中取数据(代理模式,典型的有session.load方法)

                 必须保证session要处于开启状态,否则会出异常

  HQL(hibernate query sql):使用过SQL的上手都不会很困难

    注意点:from 的是类名,不是表名 where...and...都是类属性名,不是表的列名

  Criteria(对象查询):以面向对象的方式检索数据(不用也完全没关系)

  SQL:直接使用sql语句查询

  三种实现方式:

  hql:      session.createQuery方法

  criteria:session.createCriteria方法

  sql:      session.createSQLQuery方法

  对象的三种状态

    临时态:新创建的对象

    持久态:对象进行过了持久化操作(和数据库有过交互)

    游离态:从持久态转化而来(例如:session.close方法)

以上只是初步学习的内容,要深入还有很长的路要走了

目前正在研究多对多之间的关系,控制反转

这次发的主要是理论(很重要),有时间会在发一篇应用补全

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值