Hibernate框架HQL語句參數綁定方式

HQL語句參數綁定方式有很多種

  1. 綁定參數方式1:按參數位置綁定
public static void chaxunxueshengbyxingming() {
		Session session = HibernateUtil.getSession();
		Transaction tx = session.beginTransaction();
		// HQL查詢的是實體類的名稱,不是數據表的名稱
		// 綁定參數方式1:按參數位置綁定
	//注意:from後跟的是類名,where後跟的是類中的屬性名,嚴格區分大小寫
		 Query q = session.createQuery("from Xuesheng where xingming=?");
		q.setString(0, "張三");
		List<Xuesheng> list = q.list();
		for (Xuesheng xs : list) {
			System.out.println("姓名:" + xs.getXingming() + ",年齡:" + xs.getNianling());
		}
		tx.commit();
		HibernateUtil.closeSession();
	}
  1. 綁定參數方式2:按參數名稱綁定
	public static void chaxunxueshengbyxingming() {
   	Session session = HibernateUtil.getSession();
   	Transaction tx = session.beginTransaction();
   	// HQL查詢的是實體類的名稱,不是數據表的名稱
   	// 綁定參數方式2:按參數名稱綁定
   	
   	  Query q = session.createQuery(
   	  "from Xuesheng where xingming=:xingming");
   	   q.setString("xingming", "張三");
   	 
   	List<Xuesheng> list = q.list();
   	for (Xuesheng xs : list) {
   		System.out.println("姓名:" + xs.getXingming() + ",年齡:" + xs.getNianling());
   	}
   	tx.commit();
   	HibernateUtil.closeSession();
   }
  1. 綁定參數方式3:按setParameter()方法綁定,此方法不需要設置參數類型
	// 根據hql查某個信息,手動創建查詢
   public static void chaxunxueshengbyxingming() {
   	Session session = HibernateUtil.getSession();
   	Transaction tx = session.beginTransaction();
   	// HQL查詢的是實體類的名稱,不是數據表的名稱

   	// 綁定參數方式3:按setParameter()方法綁定,此方法不需要設置參數類型 
   
   	  Query q = session.createQuery(
   	  "from Xuesheng where xingming =:xingming");
   	  q.setParameter("xingming","張三");
   

   
   	List<Xuesheng> list = q.list();
   	for (Xuesheng xs : list) {
   		System.out.println("姓名:" + xs.getXingming() + ",年齡:" + xs.getNianling());
   	}
   	tx.commit();
   	HibernateUtil.closeSession();
   }
  1. 綁定參數方式4:按setProperties()方法綁定,封裝實體類作爲條件值
	public static void chaxunxueshengbyxingming() {
   	Session session = HibernateUtil.getSession();
   	Transaction tx = session.beginTransaction();
   	// HQL查詢的是實體類的名稱,不是數據表的名稱

   	// 綁定參數方式4:按setProperties()方法綁定
   	Query q = session.createQuery("from Xuesheng where xingming like:xingming");
   	Xuesheng x = new Xuesheng();
    	x.setXingming("%楊%");
   	q.setProperties(x);
   	List<Xuesheng> list = q.list();
   	for (Xuesheng xs : list) {
   		System.out.println("姓名:" + xs.getXingming() + ",年齡:" + xs.getNianling());
   	}
   	tx.commit();
   	HibernateUtil.closeSession();
   }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章