分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

hibernate之查询

发布时间:2023-09-06 01:25责任编辑:胡小海关键词:暂无标签

Query对象

    方便的对数据库和持久化对象进行查询,两种表达方式:HQL和SQL;

    Query经常用来绑定查询参数,限制查询条数。并最终执行查询语句。

HQL

查询一个简单类(查询所有)

@Test //修改方法public void test3(){Session session = HibernateUtils.getSession(); // 相当于得到一个Connection。// 操作Query query = session.createQuery("from User");List list = query.list();System.out.println(list);//不需要关闭Configuration ?因为Configuration不是轻量级的。这样一个项目就只产生一个Configuration//configuration相当于连接池session.close();}

 分页查询

@Test //修改方法public void test3(){Session session = HibernateUtils.getSession(); // 相当于得到一个Connection。// 操作Query query = session.createQuery("from User");query.setFirstResult(0);//设置开始的位置query.setMaxResults(10);//设置查询多少条List list = query.list();for (Object object : list) {System.out.println(object);}//不需要关闭Configuration ?因为Configuration不是轻量级的。这样一个项目就只产生一个Configuration//configuration相当于连接池session.close();}

 查看指定列

          @Test //查询指定列public void test4(){Session session = HibernateUtils.getSession(); // 相当于得到一个Connection。// 操作//查询指定列时,必须在javabean中提供该字段的构造方法 ?其他列为空Query query = session.createQuery("select new User(username,password) from User");List<User> list = query.list();for (User u : list) {System.out.println(u);}//不需要关闭Configuration ?因为Configuration不是轻量级的。这样一个项目就只产生一个Configuration//configuration相当于连接池session.close();}

条件查询

@Test //条件查询(无名称参数)public void test5(){Session session = HibernateUtils.getSession(); // 相当于得到一个Connection。// 操作//查询指定列时,必须在javabean中提供默认的构造方法(无参构造) ?//因为有参会替换无参 ?然而在条件查询时会调用无参构造/*条件查询(无名称参数) * Query query = session.createQuery("from User where username=?");query.setParameter(0, "zhangsan111");*///条件查询(有名称参数)Query query = session.createQuery("from User where username=:myusername");query.setParameter("myusername", "zhangsan111");User user = (User) query.uniqueResult();System.out.println(user);//不需要关闭Configuration ?因为Configuration不是轻量级的。这样一个项目就只产生一个Configuration//configuration相当于连接池session.close();}

  SQL

  查询所有

          @Test //sql查询public void test6(){Session session = HibernateUtils.getSession(); // 相当于得到一个Connection。// 操作SQLQuery query = session.createSQLQuery("select * from user");List<Object[]> list = query.list();for (Object object : list) {//打印地址值System.out.println(object);}/*object对象指向User类 * query.addEntity(User.class);List<User> list = query.list();for (User user : list) {System.out.println(user);}*///不需要关闭Configuration ?因为Configuration不是轻量级的。这样一个项目就只产生一个Configuration//configuration相当于连接池session.close();}

  条件查询

          @Test //sql条件查询()public void test7(){Session session = HibernateUtils.getSession(); // 相当于得到一个Connection。// 操作SQLQuery query = session.createSQLQuery("select * from user where username=?");query.setParameter(0, "zhangsan111");//object对象指向User类query.addEntity(User.class);User user = (User) query.uniqueResult();//转换时还是会让Query对象识别到User这个类System.out.println(user);//不需要关闭Configuration ?因为Configuration不是轻量级的。这样一个项目就只产生一个Configuration//configuration相当于连接池session.close();}

Criteria对象

查询所有

          @Test //Criteria查询全部public void test8(){Session session = HibernateUtils.getSession(); // 相当于得到一个Connection。// 操作Criteria criteria = session.createCriteria(User.class);List list = criteria.list();for (Object object : list) {System.out.println(object);}//不需要关闭Configuration ?因为Configuration不是轻量级的。这样一个项目就只产生一个Configuration//configuration相当于连接池session.close();}

  单条件查询/多条件查询

          @Test //Criteria条件查询查询public void test9(){Session session = HibernateUtils.getSession(); // 相当于得到一个Connection。// 操作Criteria criteria = session.createCriteria(User.class);
               //条件1criteria.add(Restrictions.eq("username", "zhangsan111"));
               //条件2
               criteria.add(Restrictions.eq("username","zhangsan111"));
List list = criteria.list();for (Object object : list) {System.out.println(object);}//不需要关闭Configuration ?因为Configuration不是轻量级的。这样一个项目就只产生一个Configuration//configuration相当于连接池session.close();}

  条件或

@Test //Criteria条件查询查询orpublic void test10(){Session session = HibernateUtils.getSession(); // 相当于得到一个Connection。// 操作Criteria criteria = session.createCriteria(User.class);//条件1criteria.add(Restrictions.or(Restrictions.eq("username", "zhangsan111"),Restrictions.eq("username", "fanjiankang")));List list = criteria.list();for (Object object : list) {System.out.println(object);}//不需要关闭Configuration ?因为Configuration不是轻量级的。这样一个项目就只产生一个Configuration//configuration相当于连接池session.close();}

  Cariteria只是对于criteria的方法进行对于sql语句的控制,这样整个开发过程及其检索;

hibernate之查询

原文地址:http://www.cnblogs.com/fjkgrbk/p/hibernate_select.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved