Hibernate学习笔记上

来源:互联网 发布:企业备案贷款域名出售 编辑:程序博客网 时间:2024/06/08 06:21

最近忙里偷闲,研究下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方法)

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

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

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

 

原创粉丝点击