Hibernate中查询数据库的几…

Hibernate中查询数据库中的数据是很重要的,我们有4种方法:
        1、get()和load(),他们的用法完全一样,都需要两个参数,第1个是持久化对象类名.class,第2个是行号,也就是说这2个方法都只能返回固定的某一行的数据,但是需要注意的是:当输入的参数行号在数据库中不存在时,get()会返回一个空对象,不会报错,而load()会直接报错。
        2、Query+HQL,Query query = session.createQuery("from UserPO");获得一个query对象,注意参数字符串中不是一个SQL语句,from后面跟的是持久化对象名字,List list = query.list();就可以获得数据库中对应表的数据集合,下面的操作就和普通LIST没区别了,当然我们也可以用Iterator it = query.iterate();得到迭带对象,操作和普通迭带也没区别。
        3、SQLQuery+SQL,SQLQuery query = session.createSQLQuery(str),其中str就是一个标准的SQL语句.
        4、Criteria,条件查询,Criteria cr = session.createCriteria(UserPO.class);创建一个Criteria对象,参数是所关联的持久化对象,cr.add(Restrictions.ge("id", 2));将查询条件加入对象中,后面的操作就和query对象一样了。
.hbm.xml配置:

  1)Class节点配置:

     a、dynamic-update:仅包含发生变化的字段,默认值为false

     b、dynamic-insert:仅包含发生变化的字段,默认值为false

  2)generator节点配置:

     a、由hibernate生成:(1)increment:使用按数值顺序递增的主键

                         (2)hilo:通过hilo算法实现的主键生成机制

                         (3)uuid.hex:由hibernate基于128位唯一值产生算法生成16进制数值编码后

                                        以长度32的字符串表

     b、由数据库生成:(1)identity:采用数据库提供的主键生成机制。如DB2,SQLServer,Mysql等

                      (2)sequence:oracle中的序列机制产生

                      (3)native:作为主键,由hibernate根据Dialect决定采用哪种方式

     c、由程序:assigned:由外部程序负责生成,无需hibernate参与

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值