zoukankan      html  css  js  c++  java
  • hibernate之简单hql查询语句

    package com.newtouch.demo3;
    
    import org.hibernate.Query;
    import org.hibernate.ScrollableResults;
    import org.hibernate.SessionFactory;
    import org.hibernate.Transaction;
    import org.hibernate.cfg.Configuration;
    import org.hibernate.classic.Session;
    import org.junit.Test;
    
    public class TestDemo {
        @Test
        public void testFoodType() throws Exception {
            SessionFactory sf = new Configuration().configure()
                    .buildSessionFactory();
            Session session = sf.openSession();
            Transaction t = session.beginTransaction();
            /**
             * 插入数据
             */
            // Food f = new Food();
            // f.setFoodname("辣子鸡");
            // Food f2 = new Food();
            // f.setFoodname("黄焖鸡");
            // FoodType foodType = new FoodType();
            // foodType.setFoodtypename("川菜");
            // foodType.getFoods().add(f);
            // foodType.getFoods().add(f2);
            // session.save(f);
            // session.save(f2);
            // session.save(foodType);
            /**
             * 直接把查询的数据放入新创建的对象中需要提供对应的构造方法 不支持*
             */
            // Query query = session
            // .createQuery("select new FoodType(id,foodtypename) from FoodType");
            // System.out.println(query.list());
            // Query query = session.createQuery(" from FoodType");//
            // 这种查询方式要在配置文件中添加以下代码不然就要写出类的全名auto-import
            // // ="true"
            // System.out.println(query.list());
            // Query query = session.createQuery("select d from FoodType d");//
            // 效果等同于查询全部,只是把*替换掉
            // System.out.println(query.list());
            /**
             * 条件查询
             */
            // Query query = session
            // .createQuery("select new FoodType(id,foodtypename) from FoodType where id=?");
            // // query.setInteger(0, 2);
            // query.setParameter(0, 2);// 上下效果一样
            // System.out.println(query.list());
            // Query q = session
            // .createQuery("select new FoodType(id,foodtypename) from FoodType where id=:myid or foodtypename=:name");
            // q.setParameter("myid", 2);
            // q.setParameter("name", "川菜");
            // System.out.println(q.list());
            /**
             * 范围查询
             */
            // Query q = session
            // .createQuery("select new FoodType(id,foodtypename) from FoodType where id between ? and ?");
            // q.setParameter(0, 2);
            // q.setParameter(1, 4);
            // System.out.println(q.list());
            /**
             * 模糊查询
             */
            // Query query = session
            // .createQuery("from FoodType where foodtypename like ?");
            // query.setParameter(0, "%川%");
            // System.out.println(query.list());
            /**
             * 聚合函数
             */
            // Query query = session
            // .createQuery("select f.id,count(*) from FoodType f group by id ");
            // System.out.println(query.list());
            /**
             * 左连接
             */
            // Query q = session.createQuery("from FoodType f left join f.foods ");
            // System.out.println(q.list());
            /**
             * 分页查询
             */
            Query query = session.createQuery("from FoodType");
    
            ScrollableResults scroll = query.scroll();
            scroll.last();// 滚动到最后一行
            int totalCount = scroll.getRowNumber() + 1;// 拿到当前的总行数
            /**
             * 要想拿到最大行数,下面代码不能写在前面,不然只能拿到当前行数
             */
            query.setFirstResult(0);// 设置起始行
            query.setMaxResults(1);// 设置最大行数
            System.out.println("当前页面的数据" + query.list());
            System.out.println("总数据量" + totalCount);
            /**
             * 根据ID查询需要提供默认的构造方法
             */
            // FoodType foodType = (FoodType) session.get(FoodType.class, 2);
            // System.out.println(foodType);
            // Food food = (Food) session.get(Food.class, 2);
            // System.out.println(food);
            t.commit();
            session.close();
        }
    }
  • 相关阅读:
    字符串
    zval结构体
    需要优化代码的leetcode
    删除字符串中的字符
    python 目录
    文件
    awk 复习
    链表和数组的说法
    在linux服务器新添加硬盘,如何识别、挂载。
    Linux 的 date 日期的使用
  • 原文地址:https://www.cnblogs.com/ShaoXin/p/7144647.html
Copyright © 2011-2022 走看看