Hibernate听的再多不过了,用也用了不下十几次了,但是对相关的理论知识却一直处于一个空白的状态,今天偶然看到了一般还不错的博客,就梳理一下,弥补自己相关的理论欠缺。
一 . 查询
1.Hibernate对常见的 主键查询 进行了封装, 分为两种方式: get()立即查询,load()懒加载。
2.Hibernate对含有外键约束的关系的查询 (即查询中存在一对多,多对一关系时候),提供了导航对象查询:即先用主键查询得到所需对象或对象集,之后用所得到的对象或对象集 获得 对象集或者对象
3.HQL查询,即Hibernate Query Language hibernate查询语句。 使用的注意:再hbm.xml 中 配置属性 auto-import = "trut" ,默认值为true。 如果为false,则写hql的时候,要指定类的全名。
HQL语句采用了sql语句的基本格式,同时引入java中的对象概念。注意: HQL中不支持 *号。
HQL中的占位符,指的就是 ?号。 在sql中常用 ... 。 注意:HQL中是从 0 开始的
HQL中支持语法命名参数: :命名
HQL的范围查询以及模糊查询 同 sql 语句语法。 注意的是: 模糊查询的%通配符只能以参数形式传入。
后面还有一些连接查询: inner join,, left join ,, right join。 聚合函数统计,分组查询,迫切连接(使连接查询出来的是一个对象或者对象集合,而不是对象数组。): inner oin fetch,, left join fetch。
因为今天的任务重点不是在这里,就跳过了。
二. 连接池
Hibernate 自带连接池,可以在 Hibernate.properties 文件中配置 Hibernate默认配置的连接池。其默认的连接池属性为: hibernat.connetion.pool_size 1;
Hibernate具有对 c3p0 连接池的支持。
我们可以在 hibernate.cfg.xml 中配置C3P0 连接池,让C3P0作为Hibernate的数据库连接池。
三. 逆向工程
逆向工程可以帮我们自动生成实体和映射文件,因为Hibernate的映射文件容易出错。
Hibernate的逆向工程没用过,以后实践再继续深入。
这里了解了一点建模的常用步骤: 建立概念模型 ====> 生成物理模型 ===> 生成sql语句。 真后悔以前什么理论知识都没有就去瞎搞。