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();
}