HQL語句參數綁定方式有很多種
- 綁定參數方式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();
}
- 綁定參數方式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();
}
- 綁定參數方式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();
}
- 綁定參數方式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();
}