1. 程式人生 > >dljd_hibernate_047_單表查詢-為動態引數賦值_[重點]

dljd_hibernate_047_單表查詢-為動態引數賦值_[重點]

一、hql語句中的動態引數賦值

  

package edu.aeon.hibernate.test;

import java.util.List;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.junit.Test;
import edu.aeon.aeonutils.hibernate.getsessionutil.GetSessionUtil;
import edu.aeon.beans.Student;
/**    
 * [說明]:測試hql語句動態引數賦值
 * 
@author aeon * */ public class TestQueryPara { /** * 測試hql語句動態引數賦值 */ @Test public void testHqlQuery() { Transaction transaction=null; Session session=null; try { session = GetSessionUtil.getSession(); transaction=session.getTransaction(); transaction.begin();
//String hql="from Student where stuage >10 and stuage <20 "; // 第一種動態引數賦值[start] String hql="from Student where stuage >? and stuage <? "; List<Student> stuList = session.createQuery(hql).setInteger(0, 10).setInteger(1, 20).list(); //[/end] for
(Student stu : stuList) { System.out.println(stu); } System.out.println("hql查詢!"); transaction.commit(); } catch (Exception e) { e.printStackTrace(); //事物的回滾操作 transaction.rollback(); }finally{ /* * 其實這種getCurrentSession獲取到的session我們無需手動關閉 * 因為當事務提交或者回滾的時候已經做了關閉session操作 * 而用openSession獲取到的session我們一定要用手動去關閉 * */ if(null!=session){ session.close(); } } } }

資料庫資料資訊截圖:

  

第一種動態引數賦值執行結果截圖:

  

第二種動態引數賦值執行結果截圖:

  

第三種動態引數賦值執行結果截圖: