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