"HQL" property query, conditional query

Source: Internet
Author: User

Single attribute:
// returns a list of result set attributes, with the same type of attributes in the element type and entity class            List students = Session.createquery ("Select name from Student"). List ();              for (Iterator iter=students.iterator (); Iter.hasnext ();) {                = (String) Iter.next ();                SYSTEM.OUT.PRINTLN (name);            }

Multiple properties:

// querying multiple properties, returning a collection            of object arrays // The type of the array element is the            same as the property type of the query // The length of the array is the same            as the number of properties queried in select List students = Session.createquery ("Select ID, name from Student"). List ();              for (Iterator iter=students.iterator (); Iter.hasnext ();) {                = (object[]) iter.next ();                System.out.println (obj[0] + "," + obj[1]);            }

Multiple property queries, returning student:

// you can use HQL to return            student objects // need to provide a constructor function            List students = Session.createquery ("Select New Student (ID, name) from Student"). List ();              for (Iterator iter=students.iterator (); Iter.hasnext ();) {                = (Student) Iter.next ();                 + "," + Student.getname ());            }

You can use aliases:

// you can use aliases            List students = Session.createquery ("Select S.id, s.name from Student S"). List ();              for (Iterator iter=students.iterator (); Iter.hasnext ();) {                = (object[]) iter.next ();                System.out.println (obj[0] + "," + obj[1]);            }

Entity Object query:

 //  Returns a collection of student objects  //  can be suddenly select keyword  List students = Session.createquery (" From            Student "). List ();  for  (Iterator iter=students.iterator (); Iter.hasnext ();)                {Student Student  = (Student) Iter.next ();            System.out.println (Student.getname ()); }
 //  Returns a collection of student objects  //  can be added to the SELECT keyword, you can add an alias  List students = Session.createquer            Y ("from Student S"  for  (Iterator iter=students.iterator (); Iter.hasnext ();)                {Student Student  = (Student) Iter.next ();            System.out.println (Student.getname ()); }
// returns a collection            of student objects // If you use Select to query entity objects, you must use an alias            List students = Session.createquery ("Select S from Student S"). List ();              for (Iterator iter=students.iterator (); Iter.hasnext ();) {                = (Student) Iter.next ();                System.out.println (Student.getname ());            }

Conditional query

// you can spell the string            List students = Session.createquery ("Select S.id, s.name from Student s where s.name like '%0% '"). List ();              for (Iterator iter=students.iterator (); Iter.hasnext ();) {                = (object[]) iter.next ();                System.out.println (obj[0] + "," + obj[1]);            }
//can I use? Way to pass parameters//index starting from 0, unlike JDBC starting from 1//values can be quoted in single quotes//List students = session.createquery ("Select S.id, s.name from Student s where s.name like?"). List ();//query query = Session.createquery ("Select S.id, s.name from Student s where s.name like?");//query.setparameter (0, "%0%");//List students = query.list (); //method Chain programming, it is recommended to use this kind of wayList students = session.createquery ("Select S.id, s.name from Student s where s.name like?"). Setparameter (0, "%0%"). List ();  for(Iterator iter=students.iterator (); Iter.hasnext ();) {object[] obj=(object[]) iter.next (); System.out.println (obj[0] + "," + obj[1]); }
// parameters can be passed in the form of: parameter names            List students = session.createquery ("Select S.id, s.name from Student s where S.name like:myname")                    . Setparameter ( "MyName",  "%0%")                    . List ();              for (Iterator iter=students.iterator (); Iter.hasnext ();) {                = (object[]) iter.next ();                System.out.println (obj[0] + "," + obj[1]);            }

//use? The student who 1,2,3,4,5 the school numberList students = session.createquery ("Select S.id, s.name from Student s where s.id in (?,?,?,?,?)"). Setparameter (0, 1). Setparameter (1, 2). Setparameter (2, 3). Setparameter (3, 4). Setparameter (4, 5). List ();  for(Iterator iter=students.iterator (); Iter.hasnext ();) {object[] obj=(object[]) iter.next (); System.out.println (obj[0] + "," + obj[1]); }
// Adopt: The method of parameter name, inquiry student            number is 1,2,3,4,5 List students = session.createquery ("Select S.id, s.name from Student s where S.id in (: IDs)")                    . Setparameterlist ( /c4>New object[]{1, 2, 3, 4, 5})                    . List ();              for (Iterator iter=students.iterator (); Iter.hasnext ();) {                = (object[]) iter.next ();                System.out.println (obj[0] + "," + obj[1]);            }
// query 2009-08 of the students can call the MySQL date formatting function            List students = session.createquery ("Select S.id, s.name from Student s where Date_format (S.createtime, '%y-%m ') =?" )                    . Setparameter (0,  "2009-08")                    . List ();              for (Iterator iter=students.iterator (); Iter.hasnext ();) {                = (object[]) iter.next ();                System.out.println (obj[0] + "," + obj[1]);            }
SimpleDateFormat SDF =NewSimpleDateFormat ("Yyyy-mm-dd HH:mm:ss"); //For students from 2009-08-01 to 2009-08-20, you can call the MySQL date format functionList students = session.createquery ("Select S.id, s.name from Student s where s.createtime between? and? "). Setparameter (0, Sdf.parse ("2009-08-01 00:00:00"). Setparameter (1, Sdf.parse ("2009-08-20 23:59:59") . List ();  for(Iterator iter=students.iterator (); Iter.hasnext ();) {object[] obj=(object[]) iter.next (); System.out.println (obj[0] + "," + obj[1]); }

"HQL" property query, conditional query

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.