传智播客——Hibernate(2)

Hibernate第二天,精彩继续······

1.配置 C3P0 数据库连接池:

1. 配置 hibernate.cfg.xml 文件

2. 导入 jar

3. 注意配置:

     <property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property> 属性

2. Hibernate对象实例的三种状态与Session的方法:

瞬时:数据库中没有数据与之对应,超过作用域会被JVM垃圾回收器

    回收,一般是new出来且与session没有关联的对象。

持久:数据库中有数据与之对应,当前与session有关联,拥有持久

    化标识(相当于主键值),并且相关联的session没有关闭,事务没有提交;

    持久对象状态发生改变,最终会同步到数据库中。

游离(托管):数据库中有数据与之对应,但当前没有session与之关联;游离

对象状态发生改变,hibernate不能检测到。

3.集合映射一般需要指定:

1)集合表的表名,在相应元素中使用属性table指定;

2)集合外键,是在子元素key中用属性column属性指定一个列名,他是一个外键

   引用了实体表的主键;

3)集合元素,对于值类型集合,使用元素element指定;对于实体类型集合,使

   用元素one-to-manymany-to-many

4)如果是索引集合,如List,数组或Mapbag不是),还需要指定一个集合表中

   的索引字段,用于对应到数组索引或List的索引,或者Mapkey

   a) 如果是List或数组,需要指定(集合表中的)一个用于保存索引的列,用

      元素list-index指定。

   b) 如果是Mapkeymap-key元素指定;如果key是一个实体引用,则是通过

      map-key-many-to-many来配置。

4. HQL是面向对象的查询语言,他查的是对象而不是表。HQL主要通过Query

操作,Query的创建方式:Query q = session.createQuery(hql)

1)查询所有User实体:from User

2)选择查询User实体:select u from User as u,可以只查询其中几个属性:select u.id,u.name from User u

3)使用where子句进行过滤:from User u where u.id < 10

4)使用order by指定排序:from User u order by u.id desc

5)聚集函数:count(),max(),min()

5.HQL查询语言中使用参数有两种:

1)使用?占位,例:from User where id > ?,指定参数值使用

Query.setParameter(int position, Object val),位置索引从0开始;

2)使用变量名占位,例:from User where id > :id,指定参数值是使用

Query.setParameter(String name, Object val)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值