Hibernate query Statement

Source: Internet
Author: User


1:criteria Query

Package com.itany.hibernate;

Import java.util.List;

Import Org.hibernate.Criteria;
Import org.hibernate.Session;
Import org.hibernate.criterion.Expression;

Import Com.itany.util.HibernateUtil;

Import Junit.framework.TestCase;

public class Criteriaquery extends testcase{

public void Test () {
Session Session=null;
try{
Session=hibernateutil.getssession ();
Criteria Criteria=session.createcriteria (Student.class);
Criteria.add (Expression.like ("name", "%0%"));
List students=criteria.list ();
for (Object o:students) {
Student s= (Student) o;
System.out.println ("Name:" +s.getname ());
System.out.println ("Class:" +s.getclasses (). GetName ());
}
}catch (Exception e) {
}finally{
Hibernateutil.close (session);
}
}
}

2: Simple attribute Query

Package com.itany.hibernate;

Import Java.util.Iterator;
Import java.util.List;

Import Org.hibernate.Criteria;
Import org.hibernate.Session;
Import org.hibernate.criterion.Expression;

Import Com.itany.util.HibernateUtil;

Import Junit.framework.TestCase;

public class Simplepropertyquery extends testcase{

Single attribute Query
public void Testquery () {
Session Session=null;
try{
Session creation via session factory
Session=hibernateutil.getssession ();
Open Things
Session.begintransaction ();

List Students=session.createquery ("Select name from Student"). List ();
For (Iterator it=students.iterator (); It.hasnext ();) {
String Name= (String) it.next ();
System.out.println ("Name:" +name);
}
Submit Things
Session.gettransaction (). commit ();
}catch (Exception e) {
Rolling back things
Session.gettransaction (). rollback ();
}finally{
Hibernateutil.close (session);
}
}
Multiple Property queries
public void TestQuery2 () {
Session Session=null;
try{
Session creation via session factory
Session=hibernateutil.getssession ();
Open Things
Session.begintransaction ();

List Students=session.createquery ("Select Name,id from Student"). List ();
For (Iterator it=students.iterator (); It.hasnext ();) {
Object[] obj= (object[]) it.next ();
System.out.println ("Study No.:" +obj[1]+ ", Name:" +obj[0]);
}
Submit Things
Session.gettransaction (). commit ();
}catch (Exception e) {
Rolling back things
Session.gettransaction (). rollback ();
}finally{
Hibernateutil.close (session);
}
}
Multiple Property queries (return entity objects directly)
public void TestQuery3 () {
Session Session=null;
try{
Session creation via session factory
Session=hibernateutil.getssession ();
Open Things
Session.begintransaction ();

List Students=session.createquery ("Select New Student (id,name) from Student"). List ();
For (Iterator it=students.iterator (); It.hasnext ();) {
Student s= (Student) it.next ();
System.out.println ("Study No.:" +s.getid () + ", Name:" +s.getname ());
}
Submit Things
Session.gettransaction (). commit ();
}catch (Exception e) {
Rolling back things
Session.gettransaction (). rollback ();
}finally{
Hibernateutil.close (session);
}
}
}


3: Simple Object query

Package com.itany.hibernate;

Import Java.util.Iterator;
Import java.util.List;
Import Junit.framework.TestCase;
Import org.hibernate.Session;
Import Com.itany.util.HibernateUtil;

public class Simpleobjectquery extends testcase{

In Hibernate
public void Testquery () {
Session Session=null;
try{
Session creation via session factory
Session=hibernateutil.getssession ();
Open Things
Session.begintransaction ();

List Students=session.createquery ("from Student"). List ();
No SELECT * in HQL to use aliases can be used instead of
List Students=session.createquery ("Select S from Student S"). List ();
For (Iterator it=students.iterator (); It.hasnext ();) {
Student s= (Student) it.next ();
System.out.println ("Study No.:" +s.getid () + ", Name:" +s.getname ());
}
Submit Things
Session.gettransaction (). commit ();
}catch (Exception e) {
Rolling back things
Session.gettransaction (). rollback ();
}finally{
Hibernateutil.close (session);
}
}
Problems with n+1 traversal with iterate
1: First the ID of all objects is queried
N: First, based on the ID in the cache query, if there is no matching data, and then in the database based on the ID query
public void TestQuery2 () {
Session Session=null;
try{
Session creation via session factory
Session=hibernateutil.getssession ();
Open Things
Session.begintransaction ();

Iterator it=session.createquery ("from Student"). Iterate ();
while (It.hasnext ()) {
Student s= (Student) it.next ();
System.out.println ("Study No.:" +s.getid () + ", Name:" +s.getname ());
}
Submit Things
Session.gettransaction (). commit ();
}catch (Exception e) {
Rolling back things
Session.gettransaction (). rollback ();
}finally{
Hibernateutil.close (session);
}
}
The difference between list and iterator
List each call emits an SQL statement and writes the result to the cache, but it does not read the cached data
Iterator begins to n+1, but iterator uses cached data, which is more efficient than list when there is data in the cache.
public void TestQuery3 () {
Session Session=null;
try{
Session creation via session factory
Session=hibernateutil.getssession ();
Open Things
Session.begintransaction ();

List Students=session.createquery ("from Student"). List ();
No SELECT * in HQL to use aliases can be used instead of
List Students=session.createquery ("Select S from Student S"). List ();
For (Iterator it=students.iterator (); It.hasnext ();) {
Student s= (Student) it.next ();
System.out.println ("Study No.:" +s.getid () + ", Name:" +s.getname ());
}
System.out.println ("iterator+***********");
Iterator it=session.createquery ("from Student"). Iterate ();
while (It.hasnext ()) {
Student s= (Student) it.next ();
System.out.println ("Study No.:" +s.getid () + ", Name:" +s.getname ());
}
Submit Things
Session.gettransaction (). commit ();
}catch (Exception e) {
Rolling back things
Session.gettransaction (). rollback ();
}finally{
Hibernateutil.close (session);
}
}
public void TestQuery4 () {
Session Session=null;
try{
Session creation via session factory
Session=hibernateutil.getssession ();
Open Things
Session.begintransaction ();

System.out.println ("iterator1+***********");
Iterator it=session.createquery ("from Student"). Iterate ();
while (It.hasnext ()) {
Student s= (Student) it.next ();
System.out.println ("Study No.:" +s.getid () + ", Name:" +s.getname ());
}
System.out.println ("iterator1+***********");
Iterator it1=session.createquery ("from Student"). Iterate ();
while (It1.hasnext ()) {
Student s= (Student) it1.next ();
System.out.println ("Study No.:" +s.getid () + ", Name:" +s.getname ());
}
Submit Things
Session.gettransaction (). commit ();
}catch (Exception e) {
Rolling back things
Session.gettransaction (). rollback ();
}finally{
Hibernateutil.close (session);
}
}
}

4: Simple condition Query

Package com.itany.hibernate;

Import Java.text.SimpleDateFormat;
Import Java.util.Iterator;
Import java.util.List;

Import Org.hibernate.Query;
Import org.hibernate.Session;

Import Com.itany.util.HibernateUtil;

Import Junit.framework.TestCase;

public class Simpleconditionquery extends testcase{

Not recommended for use, easy to inject
public void TestQuery1 () {
Session Session=null;
try{
Session creation via session factory
Session=hibernateutil.getssession ();
Open Things
Session.begintransaction ();

List students=session.createquery ("Select New Student (s.id,s.name)" +
"From Student s where s.name like '%1% '"). List ();
For (Iterator it=students.iterator (); It.hasnext ();) {
Student s= (Student) it.next ();
System.out.println ("Study No.:" +s.getid () + ", Name:" +s.getname ());
}
Submit Things
Session.gettransaction (). commit ();
}catch (Exception e) {
Rolling back things
Session.gettransaction (). rollback ();
}finally{
Hibernateutil.close (session);
}
}


public void TestQuery2 () {
Session Session=null;
try{
Session creation via session factory
Session=hibernateutil.getssession ();
Open Things
Session.begintransaction ();

/*query query=session.createquery ("Select New Student (s.id,s.name)" +
"From Student s where s.name like?");
Query.setparameter (0, "%1%");
List students=query.list (); */
Chained calls
List Students=session.createquery
("Select New Student (s.id,s.name)" +
"From Student s where s.name like?")
. Setparameter (0, "%1%"). List ();
For (Iterator it=students.iterator (); It.hasnext ();) {
Student s= (Student) it.next ();
System.out.println ("Study No.:" +s.getid () + ", Name:" +s.getname ());
}
Submit Things
Session.gettransaction (). commit ();
}catch (Exception e) {
Rolling back things
Session.gettransaction (). rollback ();
}finally{
Hibernateutil.close (session);
}
}
We recommend using parameter names to pass parameters
public void TestQuery3 () {
Session Session=null;
try{
Session creation via session factory
Session=hibernateutil.getssession ();
Open Things
Session.begintransaction ();

Query Query=session.createquery
("Select New Student (s.id,s.name)" +
"From Student s where S.name like:name");
Query.setparameter ("name", "%1%");
List students=query.list ();

For (Iterator it=students.iterator (); It.hasnext ();) {
Student s= (Student) it.next ();
System.out.println ("Study No.:" +s.getid () + ", Name:" +s.getname ());
}
Submit Things
Session.gettransaction (). commit ();
}catch (Exception e) {
Rolling back things
Session.gettransaction (). rollback ();
}finally{
Hibernateutil.close (session);
}
}
Multi-Criteria Query
public void TestQuery4 () {
Session Session=null;
try{
Session creation via session factory
Session=hibernateutil.getssession ();
Open Things
Session.begintransaction ();

Query Query=session.createquery
("Select New Student (s.id,s.name)" +
"From Student s where s.name like:name" +
"and S.id=:id");
Query.setparameter ("name", "%1%");
Query.setparameter ("id", 2);
List students=query.list ();

For (Iterator it=students.iterator (); It.hasnext ();) {
Student s= (Student) it.next ();
System.out.println ("Study No.:" +s.getid () + ", Name:" +s.getname ());
}
Submit Things
Session.gettransaction (). commit ();
}catch (Exception e) {
Rolling back things
Session.gettransaction (). rollback ();
}finally{
Hibernateutil.close (session);
}
}
In condition
public void TestQuery5 () {
Session Session=null;
try{
Session creation via session factory
Session=hibernateutil.getssession ();
Open Things
Session.begintransaction ();

Query Query=session.createquery
("Select New Student (s.id,s.name)" +
"From Student s where s.id in (: ID)");
Query.setparameterlist ("id", new object[]{1,2,3});
List students=query.list ();

For (Iterator it=students.iterator (); It.hasnext ();) {
Student s= (Student) it.next ();
System.out.println ("Study No.:" +s.getid () + ", Name:" +s.getname ());
}
Submit Things
Session.gettransaction (). commit ();
}catch (Exception e) {
Rolling back things
Session.gettransaction (). rollback ();
}finally{
Hibernateutil.close (session);
}
}
Date_format () (dedicated function for MySQL)
Querying data for a certain time
public void TestQuery6 () {
Session Session=null;
try{
Session creation via session factory
Session=hibernateutil.getssession ();
Open Things
Session.begintransaction ();

Query Query=session.createquery
("Select S.id,s.name,s.createtime" +
"From Student S" +
"Where Date_format (S.createtime, '%y-%m ') =:createtime");
Query.setparameter ("Createtime", "2015-03");
List students=query.list ();

For (Iterator it=students.iterator (); It.hasnext ();) {
Object[] obj= (object[]) it.next ();
System.out.println ("Study No.:" +obj[0]+ ", Name:" +obj[1]+ "," +obj[2] ");
}
Submit Things
Session.gettransaction (). commit ();
}catch (Exception e) {
Rolling back things
Session.gettransaction (). rollback ();
}finally{
Hibernateutil.close (session);
}
}
public void TestQuery7 () {
Session Session=null;
try{
Session creation via session factory
Session=hibernateutil.getssession ();
Open Things
Session.begintransaction ();
SimpleDateFormat sdf=new SimpleDateFormat ("Yyyy-mm-dd HH:mm:ss");
Query Query=session.createquery
("Select S.id,s.name,s.createtime" +
"From Student S" +
"Where S.createtime between:createtime1" +
"And:createtime2");
Query.setparameter ("CreateTime1", Sdf.parse ("2015-01-10 00:00:00"));
Query.setparameter ("CreateTime2", Sdf.parse ("2015-03-23 23:59:59"));
List students=query.list ();

For (Iterator it=students.iterator (); It.hasnext ();) {
Object[] obj= (object[]) it.next ();
System.out.println ("Study No.:" +obj[0]+ ", Name:" +obj[1]+ "," +obj[2] ");
}
Submit Things
Session.gettransaction (). commit ();
}catch (Exception e) {
Rolling back things
Session.gettransaction (). rollback ();
}finally{
Hibernateutil.close (session);
}
}
}


5:sql Native Query statements

Package com.itany.hibernate;

Import Java.util.Iterator;
Import java.util.List;

Import org.hibernate.Session;

Import Com.itany.util.HibernateUtil;

Import Junit.framework.TestCase;

public class SQLQuery extends TestCase {

public void TestQuery1 () {
Session Session=null;
try{
Session creation via session factory
Session=hibernateutil.getssession ();
Open Things
Session.begintransaction ();

List Students=session.createsqlquery ("SELECT * from T_student"). List ();
For (Iterator it=students.iterator (); It.hasnext ();) {
Object[] obj= (object[]) it.next ();
System.out.println ("Study No.:" +obj[0]+ ", Name:" +obj[1]+ "," +obj[2] ");
}

Submit Things
Session.gettransaction (). commit ();
}catch (Exception e) {
Rolling back things
Session.gettransaction (). rollback ();
}finally{
Hibernateutil.close (session);
}
}
}

6: Paged Query

Package com.itany.hibernate;

Import Java.util.Iterator;
Import java.util.List;

Import org.hibernate.Session;

Import Com.itany.util.HibernateUtil;

Import Junit.framework.TestCase;

public class Pagequery extends testcase{

public void TestQuery1 () {
Session Session=null;
try{
Session creation via session factory
Session=hibernateutil.getssession ();
Open Things
Session.begintransaction ();

List students=session.createquery ("from Student")
. Setfirstresult (1)
. Setmaxresults (3)
. List ();
System.out.println (Students.size ());

Submit Things
Session.gettransaction (). commit ();
}catch (Exception e) {
Rolling back things
Session.gettransaction (). rollback ();
}finally{
Hibernateutil.close (session);
}
}
}

7: Object Navigation Query

Package com.itany.hibernate;

Import Java.util.Iterator;
Import java.util.List;

Import org.hibernate.Session;

Import Com.itany.util.HibernateUtil;

Import Junit.framework.TestCase;

public class Objectnavquery extends testcase{

public void TestQuery1 () {
Session Session=null;
try{
Session creation via session factory
Session=hibernateutil.getssession ();
Open Things
Session.begintransaction ();

List Students=session.createquery
("Select S.name" +
"From Student S" +
"Where s.classes.name like '%1% '"). List ();
System.out.println (Students.size ());
For (Iterator it=students.iterator (); It.hasnext ();) {
Object[] obj= (object[]) it.next ();
System.out.println ("Study No.:" +obj[0]);
}

Submit Things
Session.gettransaction (). commit ();
}catch (Exception e) {
Rolling back things
Session.gettransaction (). rollback ();
}finally{
Hibernateutil.close (session);
}
}
}

8: Connection Query

Package com.itany.hibernate;

Import Java.util.Iterator;
Import java.util.List;

Import org.hibernate.Session;

Import Com.itany.util.HibernateUtil;

Import Junit.framework.TestCase;

public class Joinquery extends testcase{
Inner joins: Association conditions are automatically associated with the foreign key of the table
public void TestQuery1 () {
Session Session=null;
try{
Session creation via session factory
Session=hibernateutil.getssession ();
Open Things
Session.begintransaction ();

List Students=session.createquery
("Select S.name,c.name" +
"From Student S" +
"INNER join s.classes C"). List ();
System.out.println (Students.size ());
For (Iterator it=students.iterator (); It.hasnext ();) {
Object[] obj= (object[]) it.next ();
System.out.println ("+obj[0]+", "+obj[1]");
}

Submit Things
Session.gettransaction (). commit ();
}catch (Exception e) {
Rolling back things
Session.gettransaction (). rollback ();
}finally{
Hibernateutil.close (session);
}
}
Left outer connection
public void TestQuery2 () {
Session Session=null;
try{
Session creation via session factory
Session=hibernateutil.getssession ();
Open Things
Session.begintransaction ();

List Students=session.createquery
("Select S.name,c.name" +
"From Student S" +
"Left join S.classes C"). List ();
System.out.println (Students.size ());
For (Iterator it=students.iterator (); It.hasnext ();) {
Object[] obj= (object[]) it.next ();
System.out.println ("+obj[0]+", "+obj[1]");
}

Submit Things
Session.gettransaction (). commit ();
}catch (Exception e) {
Rolling back things
Session.gettransaction (). rollback ();
}finally{
Hibernateutil.close (session);
}
}
}

Hibernate query Statement

Related Article

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.