Hibernate-ORM:07.Hibernate中的參數綁定
阿新 • • 發佈:2018-05-28
mys AD ram eat 動態參數 div 下標 語句 print
------------吾亦無他,唯手熟爾,謙卑若愚,好學若饑-------------
本篇博客會講解Hibernate中的參數綁定,就是相當於sql語句中的where後面的條件
一,講解概述:
1.通過下標的方式綁定參數
2.通過自定義參數名的方式綁定參數(多用於多表操作)
3.通過傳入自定義對象的方式綁定參數(多用於單表操作)
4.通過類似智能標簽的方式綁定參數(多用於帶條件的多表操作)
二,通過下標的方式綁定參數
@Test /*通過下標的方式指定參數*/ public void t01Parameterbyunderid(){/*模擬前臺輸入參數*/ Teacher teacher=new Teacher("a",400.00); /*hql語句*/ String hql="from Teacher where address=? and sal>?"; Query query = session.createQuery(hql); /*賦值*/ query.setParameter(0,teacher.getAddress()); query.setParameter(1,teacher.getSal());/*查詢*/ List list = query.list(); /*遍歷*/ for (Object t:list) { System.out.println(t); } }
三,通過自定義參數名的方式綁定參數(多用於多表操作)
@Test /*通過自定義參數名的方式指定參數*/ public void t02Parameterbymyselfkey(){ /*模擬前臺輸入參數*/ Teacher teacher=new Teacher("a",400.00);/*hql語句*/ String hql="from Teacher where address=:teaAdd and sal>:teasal"; Query query = session.createQuery(hql); /*賦值*/ query.setParameter("teaAdd",teacher.getAddress()); query.setParameter("teasal",teacher.getSal()); /*查詢*/ List list = query.list(); /*遍歷*/ for (Object t:list) { System.out.println(t); } }
四,通過傳入自定義對象的方式綁定參數(多用於單表操作)
@Test /*通過自定義對象的方式指定參數*/ /*適合單表操作*/ public void t03ParameterbymyselfObject(){ /*模擬前臺輸入參數*/ Teacher teacher=new Teacher("a",400.00); /*hql語句*/ String hql="from Teacher where address=:address and sal>:sal"; Query query = session.createQuery(hql); /*賦值*/ query.setProperties(teacher); /*查詢*/ List list = query.list(); /*遍歷*/ for (Object t:list) { System.out.println(t); } }
五,通過類似智能標簽的方式綁定參數(多用於帶條件的多表操作)
@Test /*通過自定義參數名的方式指定動態參數*/ /*適合多表操作*/ public void t04ParameterbyDongtai(){ /*模擬前臺輸入參數*/ Teacher teacher=new Teacher("a",400.00); /*hql語句*/ StringBuffer hql=new StringBuffer("from Teacher where 1=1 "); if(teacher.getAddress()!=null){ hql.append("and address=:teaAdd "); } if(teacher.getSal()>0){ hql.append("and sal>:teasal "); } Query query = session.createQuery(hql.toString()); /*賦值*/ query.setParameter("teaAdd",teacher.getAddress()); query.setParameter("teasal",teacher.getSal()); /*查詢*/ List list = query.list(); /*遍歷*/ for (Object t:list) { System.out.println(t); } }
Hibernate-ORM:07.Hibernate中的參數綁定