HQL简单查删改应用

什么是HQl

1、HQL是面向对象的,所以HQL与数据库无关
2、HQL最终也会生成SQL,也就是说 HQL使用范围是<SQL的范围
3、HQL是由query对象获得。

HQL查询

1.查询全部

 @org.junit.Test
    public void hql(){
        String hql="from UserEntity";
        List<UserEntity> list=session.createQuery(hql).list();
        for (UserEntity t:list){
            System.out.println(t.getUserName());
        }
    }

2.按照姓名模糊查询

 @org.junit.Test
    public void hql2(){
        String hql="from UserEntity where userName like ?";
        List<UserEntity> list =session.createQuery(hql).setParameter(0,"%小%").list();
        for (UserEntity t:list){
            System.out.println(t.getUserName());
        }
    }

3.返回类型书写为Object

 @org.junit.Test
    public void hql4(){
        String hql="select id ,userName from  UserEntity where userName=? ";
        List<Object[]> list=
                session.createQuery(hql)
                        .setParameter(0,"小明")
                        .list();
        for(Object[] objs:list){
            System.out.println(objs[0].toString()+"/"+objs[1].toString());
        }
    }

4.重新书写一个实体类,将需要的返回数据填充到类里

 @org.junit.Test
    public void hql5(){
        String hql="select new com.project.uto.UserUto(id,userName) " +
                "from UserEntity where  userName=? ";
        List<UserUto> list=
                session.createQuery(hql)
                        .setParameter(0,"小明")
                        .list();
        for (UserUto dto:list){
            System.out.println("ID:"+dto.getId()+"姓名:"+dto.getUserName());
        }
    }

5.使用Map集合去接受数据

@org.junit.Test
    public void hql6(){
        String hql="select new map(id,userName) " +
                "from UserEntity where userName=?";
        List<Map> list=
                session.createQuery(hql)
                        .setParameter(0,"小明")
                        .list();
        for(Map map:list){
            System.out.println(map.get("0")+"/"+map.get("1"));
        }
    }

6.联表查询

 //联表查询
    @org.junit.Test
    public void hql7(){
        String hql="select new Map(sd.stuName,t.teaName) from StudentEntity sd"+
                " , TeacherEntity t where t.teaName=?";
       List<Map> list= session.createQuery(hql).setParameter(0,"李老师").list();
       for (Map map:list){
           System.out.println(map.get("0")+"/"+map.get("1"));
       }
    }

7.分页查询

//分页查询
    @org.junit.Test
    public void hql8(){
        //页码
        int pageNum=1;
        //每页显示条数
        int pageCount=3;

        String hql=" from TeacherEntity t where t.teaName like ?";
       List<TeacherEntity> list= session.createQuery(hql).setParameter(0,"%老师%")
                .setFirstResult((pageNum-1)*pageCount)//设置起始下标
                .setMaxResults(pageCount).list();//设置最多输出条数
        for (TeacherEntity tea:list){
            System.out.println(tea.getTeaName());
        }
    }

8.返回单个对象

@org.junit.Test
    //返回单个对象
    public void hql9(){
        String hql="from TeacherEntity t where t.teaName =? ";
     TeacherEntity teacher= (TeacherEntity) session.createQuery(hql).setParameter(0,"李老师").uniqueResult();
        System.out.println(teacher.getTeaName());
    }

删除

//删除
    @org.junit.Test
    public  void hql10(){
        String hql="delete from  TeacherEntity where id=?";
        session.createQuery(hql).setParameter(0,12).executeUpdate();
    }

修改

 //修改
    @org.junit.Test
    public void hql12(){
        String hql="update  TeacherEntity  set teaName=? where id=?";
        session.createQuery(hql).setParameter(0,"小王老师")
                .setParameter(1,1).executeUpdate();
    }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值