dljd_hibernate_047_單表查詢-為動態引數賦值_[重點]
阿新 • • 發佈:2018-12-12
一、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(); } } } }
資料庫資料資訊截圖:
第一種動態引數賦值執行結果截圖:
第二種動態引數賦值執行結果截圖:
第三種動態引數賦值執行結果截圖: