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();
   }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值