dljd_hibernate_047_单表查询-为动态参数赋值_[重点]

一、hql语句中的动态参数赋值

  

package edu.aeon.hibernate.test;

import java.util.List;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.junit.Test;
import edu.aeon.aeonutils.hibernate.getsessionutil.GetSessionUtil;
import edu.aeon.beans.Student;
/**    
 * [说明]:测试hql语句动态参数赋值
 * @author aeon
 *
 */
public class TestQueryPara {
    /**
     * 测试hql语句动态参数赋值
     */
    @Test
    public  void testHqlQuery() {
        Transaction transaction=null;
        Session session=null;
        try {
            session = GetSessionUtil.getSession();
            transaction=session.getTransaction();
            transaction.begin();
            //String hql="from Student where stuage >10 and stuage <20 ";
            // 第一种动态参数赋值[start]
            String hql="from Student where stuage >? and stuage <? ";
            List<Student> stuList = session.createQuery(hql).setInteger(0, 10).setInteger(1, 20).list();
            //[/end]
            for (Student stu : stuList) {
                System.out.println(stu);
            }
            System.out.println("hql查询!");
            transaction.commit();
        } catch (Exception e) {
            e.printStackTrace();
            //事物的回滚操作
            transaction.rollback();
        }finally{
            /*
             * 其实这种getCurrentSession获取到的session我们无需手动关闭
             * 因为当事务提交或者回滚的时候已经做了关闭session操作
             * 而用openSession获取到的session我们一定要用手动去关闭
             * */
            if(null!=session){
                session.close();
            }
        }
    }
}    

数据库数据信息截图:

  

第一种动态参数赋值执行结果截图:

  

第二种动态参数赋值执行结果截图:

  

第三种动态参数赋值执行结果截图:

   

  

猜你喜欢

转载自www.cnblogs.com/aeon/p/10106341.html
今日推荐