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

你可能感兴趣的:(Hibernate框架)