Hibernate(4)
关系一对多在多对一的基础上为Category增加一个Set集合
多对多在一对多的基础上对Product增加一个Set集合
实现N+1利用Iterator
首先通过Query的iterator把所有满足条件的Product的id查出来
然后再通过it.next()查询每一个对象
如果这个对象在缓存中,就直接从缓存中取了
否则就从数据库中获取
在更新数据的时候会和像线程改变数据时一样出现脏数据,所以需要添加乐观锁
在Product中添加version属性,在配置文件中加上
<version name="version" column="ver" type="int"></version>
version元素必须紧跟在id后面
C3P0连接池,建立连接数据库比较消耗时间,所以可以采用连接池的方法
导入jar包
配置文件中加入
<
property
name
=
"hibernate.connection.provider_class"
>
org.hibernate.connection.C3P0ConnectionProvider
</
property
>
<
property
name
=
"hibernate.c3p0.max_size"
>20</
property
>
<
property
name
=
"hibernate.c3p0.min_size"
>5</
property
>
<
property
name
=
"hibernate.c3p0.timeout"
>50000</
property
>
<
property
name
=
"hibernate.c3p0.max_statements"
>100</
property
>
<
property
name
=
"hibernate.c3p0.idle_test_period"
>3000</
property
>
<!-- 当连接池耗尽并接到获得连接的请求,则新增加连接的数量 -->
<
property
name
=
"hibernate.c3p0.acquire_increment"
>2</
property
>
<!-- 是否验证,检查连接 -->
<
property
name
=
"hibernate.c3p0.validate"
>false</
property
>