zoukankan      html  css  js  c++  java
  • hibernate hql

    HQL

    EJBQL

      在使用HQL语句的时候,一般都是session.createQuery(String str)的方式进行设置,括号中的str是指要进行操作的QL语句,返回的是一个Query对象。因为是面向对象的操作,所以在QL语句中不能直接写操作的表名,而是要写类的名字。然后再根据具体的情况,如果返回的是一个list集合的话,就有list集合进行接收,要注意因为没有使用泛型,所以要自己进行强转,再循环取出需要的对象的值。

    1. Is empty测试集合属性是否为空、is not empty测试对象是否为空
    2. %是代表出现0或者多个,_是代表出现1次,’_0’指的是10、20…100…101..109
    3. Left join:左外连接,把连接右边多余的字段取出来

    Righr join:右外连接,把连接左边多余的字段取出来

    1. In和exist二选一的话选exist,因为exist执行效率高。In可以实现exist的功能。
    2. 执行更新语句的时候用q.excuteUpdate()。
    3. 在练习中有用到查到current_date、current_time等,是为了查出数据库的当前时间,作用是当多台电脑继承使用同一台服务器上的数据库时,为了使获取的时间一致,故不获取电脑当前时间,而是获取同一数据库的当前时间,便于统一。
    4. 使用naviteSQL语句的时候,具体的sql语句写的是自带的sql,故这里改写的是表名,而且如果想以list集合的形式查找出全部,查找的时候要把表的全部属性找出来。

    QBC

      QBC的全称是Query By Criteria,即用一个Criteria对象来进行操作,把QL语句写到Criteria对象中。Criteria的意思是标准的意思,即创建一个标准。

      查看session的api文档(查文档能力很重要)会发现session有如下这么一个方法createCriteria(class arg0),用面向对象的方法去理解是要传递一个对象进行,但是该对象要通过表进行了映射了。继续调用add()方法,里面可以传递Restriction对象的具体方法,可以说传统sql语句都可以在Restriction中找到具体的对应方法。如果想对进行表的关联,可以在调用add方法之后继续调用createCritical(“”),不过此时进行传递的参数就是之前指定的类的关联属性了。如上面arg0写了Topic,下面就可以写“category”,前提是Topic对像中要有这么一个属性。

    QBE

      QBE是Query By Example。其实QBE和QBC的用法是差不多的。在QBE中会创建一个Example对象,用来存放一个对象的引用,而对象的引用可以设置值进行,根据设置进去的值与Example属性的设置,实现查询等的功能。

      如果创建一个Topic对象,存进了一个name属性,为”T_”,然后再创建Example的时候不是开辟一个新的Example对象,而是用Example.create()的方式进行开辟,括号中间传递进去了对象的引用。然后Example对象可以调用其余的方法,如ignoreCase().enableLike();表示的是用Example对象设置的参数”T_”忽略大小写进行查询。当然这样设置还不够,还是要创建Criteria对象,调用add方法把Example对象的引用添加进去。

  • 相关阅读:
    弹出窗口失败 Debug Assertion Failed!
    颜色设置 OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 的用法
    启动项
    进程PK线程
    获取代码运行时间,获取当前系统时间,日期
    在WindowsPhone8中生成基于MVVM Light的LongListSelector拼音检索绑定
    微软认证考试Mcts70511 part1翻译_Part2_使用控件_ContentControl
    微软认证考试Mcts70511 part1翻译_Part1_考分分配
    ORA14452: attempt to create, alter or drop an index on temporary table already in use
    HPUX日常工作整理
  • 原文地址:https://www.cnblogs.com/littleQin/p/3619023.html
Copyright © 2011-2022 走看看