分享

Hibernate中查询数据库的几种方法

 爱学习_守之 2015-03-20
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参与


参见:http://blog.sina.com.cn/s/blog_5f311bdb0100fg69.html

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多