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();
        }
    }
  • 相关阅读:
    Markdown学习笔记
    带下划线点域名解析失败
    前端工程师学习之路
    Java 调用 WebService 客户端代码 含通过代理调用
    MySQL 日期函数 时间函数 总结 (MySQL 5_X)
    Apache、Tomcat整合环境搭建
    201671010142 <java程序设计>初次学习心得与感悟
    201671010142 Java基本程序设计结构学习的感悟
    201671010142.第五章的学习总结
    201671010142 继承定义与使用 感悟与总结
  • 原文地址:https://www.cnblogs.com/ShaoXin/p/7144647.html
Copyright © 2011-2022 走看看