Hibernate入门(5)

(1)核心接口
----------Session接口
注意:Hibernate会话与Web层的HttpSession没有任何关系。
Hibernate会话并不是线程安全的因此应该被设计为每次只能在一个线程中使用。

----------SessionFactory接口
应用从SessionFactory(会话工厂)里获得会话实例。

----------Configuration接口
Configuration(配置)对象用来配置和引导Hibernate。

----------Transaction接口
Transaction(事务)接口是一个可选的API。

----------Query与Criteria接口
Query(查询)接口允许你在数据库上执行查询并控制查询如何执行。查询使用HQL或者
本地数据库的SQL方言编写。查询实例用来绑定查询参数,限定查询返回的结果数,并且最终
执行查询。
Criteria(标准)接口非常小,它允许你创建和执行面向对象的标准查询。

(2)使用JDBC连接池的原因:
■ 获得新连接的代价是很昂贵的。
■ 维护许多无用的连接也是很浪费的。
■ 对许多驱动程序来说创建预编译语句同样是很昂贵的。

hibernate可以自己设定默认的连接池,一般是使用C3PO,只需在配置文件(hibernate.properties)中设置:
hibernate.dialect org.hibernate.dialect.MySQLDialect
hibernate.dialect org.hibernate.dialect.MySQLInnoDBDialect
hibernate.dialect org.hibernate.dialect.MySQLMyISAMDialect
hibernate.connection.driver_class com.mysql.jdbc.Driver
hibernate.connection.url jdbc:mysql:///hibernate
hibernate.connection.username root
hibernate.connection.password root
hibernate.c3p0.min_size = 5
hibernate.c3p0.max_size = 20
hibernate.c3p0.timeout = 300
hibernate.c3p0.max_statements = 50
hibernate.c3p0.idle_test_period = 3000
然后在hibernate中将相应的C3PO的jar包加载到项目中

(3)HQL
HQL不是像SQL这样的数据操纵语言。它只能用来检索对象,不能更新、插入或删除数据。

--from 子句
from com.lr.Cat 查询返回Cat类的所的实例
from com.lr.Cat as mycat 给Cat取一个别名,规范使用小写,因为符合面向对象思想,因为变量名的命名是小写的
from com.lr.Cat mycat 别名 cat 指定给类Cat 的实例,跟上面的效果是一样的

--聚集函数
受支持的聚集函数如下:
avg(...), sum(...), min(...), max(...)
count
count(...), count(distinct ...), count(all...)

--where字句
between与in的运用:
from DomesticCat cat where cat.name between 'A' and 'B'
from DomesticCat cat where cat.name in ( 'Foo', 'Bar', 'Baz' )

--子查询
from DomesticCat as cat
where cat.name not in (
select name.nickName from Name as name
)

查询小技巧:

统计查询结果的条数:
( (Integer) session.createQuery("select count(*) from ....").iterate().next() ).intValue()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值