分享web开发知识

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

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

hibernate框架学习之数据查询(QBC)helloworld

发布时间:2023-09-06 02:05责任编辑:白小东关键词:暂无标签
package cn.itcast.h3.query.hql;import java.util.List;import org.hibernate.Criteria;import org.hibernate.Session;import org.hibernate.criterion.DetachedCriteria;import org.hibernate.criterion.Order;import org.hibernate.criterion.Projection;import org.hibernate.criterion.Projections;import org.hibernate.criterion.Property;import org.hibernate.criterion.Restrictions;import cn.itcast.h3.query.hql.vo.StudentModel;import cn.itcast.h3.query.hql.vo.TeacherModel;import cn.itcast.util.HibernateUtil;//Criteria查询(QBC)public class CriteriaApp { ???// 简单查询 ???void testSimpleCriteria() { ???????Session s = HibernateUtil.getSession(); ???????Criteria c = s.createCriteria(TeacherModel.class); ???????List<TeacherModel> queryList = c.list(); ???????for (TeacherModel tm : queryList) { ???????????System.out.println(tm); ???????} ???????s.close(); ???} ???// 查询排序 ???void testCriteriaOrder() { ???????Session s = HibernateUtil.getSession(); ???????Criteria c = s.createCriteria(StudentModel.class); ???????c.addOrder(Order.asc("age")); ???????c.addOrder(Order.desc("studentName")); ???????List<StudentModel> queryList = c.list(); ???????for (StudentModel tm : queryList) { ???????????System.out.println(tm); ???????} ???????s.close(); ???} ???// 按条件查询 ???void testCriteriaCondition() { ???????Session s = HibernateUtil.getSession(); ???????Criteria c = s.createCriteria(StudentModel.class); ???????// 从上向下,全部默认为并且关系 ???????// c.add(Restrictions.like("studentName", "%虎%")); ???????// c.add(Restrictions.gt("age", 22)); ???????// 使用关系描述条件 ???????// c.add(Restrictions.or(Restrictions.like("studentName", "%虎%"), ???????// Restrictions.lt("age", 22))); ???????// c.add( ???????// Restrictions.and( ???????// Restrictions.eq("aa", 123), ???????// Restrictions.and( ???????// Restrictions.lt("aa", 232), ???????// Restrictions.eq("", 123) ???????// ) ???????// ) ???????// ); ???????List<StudentModel> queryList = c.list(); ???????for (StudentModel tm : queryList) { ???????????System.out.println(tm); ???????} ???????s.close(); ???} ???// 链式风格 ???void testCriteriaLink() { ???????Session s = HibernateUtil.getSession(); ???????Criteria c = s.createCriteria(StudentModel.class); ???????c.add(Restrictions.like("studentName", "%虎%")).add( ???Restrictions.gt("age", 22)); ???????List<StudentModel> queryList = c.list(); ???????for (StudentModel tm : queryList) { ???????????System.out.println(tm); ???????} ???????s.close(); ???} ???// 投影风格 ???void testCriteriaShadow() { ???????Session s = HibernateUtil.getSession(); ???????Criteria c = s.createCriteria(StudentModel.class);// ???????投影单个字段// ???????c.setProjection(Property.forName("age"));// ???????List<Integer> queryList = c.list();// ???????for (Integer age : queryList) {// ???????????System.out.println(age);// ???????}// ???????投影多个字段 ???????c.setProjection( ???????????Projections.projectionList() ???????????????.add(Property.forName("studentName")) ???????????????.add(Property.forName("age")) ???????????); ???????List<Object[]> queryList =c.list(); ???????for(Object[] objs:queryList){ ???????????for(Object obj:objs){ ???????????????System.out.println(obj); ???????????} ???????????System.out.println("----------------"); ???????} ???????s.close(); ???} ???//多表关联查询 ???void testMulQuery(){ ???????Session s = HibernateUtil.getSession(); ???????Criteria c = s.createCriteria(StudentModel.class); ???????c.createAlias("teacher", "t"); ???????c.add(Restrictions.eq("t.teacherName", "李若亮")); ???????List<StudentModel> queryList = c.list(); ???????for (StudentModel tm : queryList) { ???????????System.out.println(tm); ???????} ???????s.close(); ???} ???//离线查询DetachedCriteria ???void testDetachedCriteria(){ ???????DetachedCriteria dc = DetachedCriteria.forClass(StudentModel.class); ???????dc.createAlias("teacher", "t"); ???????dc.add(Restrictions.eq("t.teacherName", "雅典娜")); ???????//..一路传递到数据层 ???????????????Session s = HibernateUtil.getSession(); ???????Criteria c = dc.getExecutableCriteria(s); ???????List<StudentModel> queryList = c.list(); ???????for (StudentModel tm : queryList) { ???????????System.out.println(tm); ???????} ???????s.close(); ???} ???????public static void main(String[] args) { ???????new CriteriaApp().testDetachedCriteria(); ???}}

hibernate框架学习之数据查询(QBC)helloworld

原文地址:https://www.cnblogs.com/xyhero/p/9351767.html

知识推荐

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