Java Criteria教程:原生SQL查询与条件设置

需积分: 9 5 下载量 168 浏览量 更新于2024-07-13 收藏 323KB PPT 举报
在Java经典教程中,第T21.9课讲解了如何使用Hibernate框架中的Criteria查询来执行原生SQL语句设定查询条件。Criteria是Hibernate提供的一个高级查询接口,它允许开发者以面向对象的方式构建复杂的查询逻辑,而不仅仅是基于HQL(Hibernate Query Language)或原生SQL。 在本节内容中,首先介绍学习目标,即理解Criteria的基本原理和用法。Criteria查询的核心在于它的灵活性,它通过`session.createCriteria(Person.class)`创建一个Criteria对象,这里的`Person.class`指定了要查询的对象类型。 接下来,展示了如何实际操作,首先获取Hibernate Session(会话),然后调用`beginTransaction()`方法开始事务。接着,创建`Criteria`对象并设置查询条件,这里使用了`Restrictions.sqlRestriction()`方法,传入一个SQL表达式"{alias}.fname=?", 这个SQL片段表示查询fname列等于"wujin"的记录,其中{alias}是动态占位符,会被实际的列名fname替换。这个方法用于执行SQL表达式,而不是HQL语句,确保了对数据库表的直接访问。 在查询后,通过`list()`方法执行查询并获取结果列表。最后,确保事务的提交,`commit()`方法被调用。 Criteria的核心方法还包括`add()`、`setFetchMode()`、`addOrder()`等,用于添加限制条件、指定关联关系加载方式以及设置排序规则。 查询条件的使用部分则深入讲解了如何根据具体需求构造更复杂的条件,比如使用`add(Restrictions.eq())`添加等于条件,`add(Restrictions.between())`添加范围条件等。同时,Criteria也支持嵌套条件,可以组合多个条件形成更精确的查询。 排序则是通过`addOrder(Order.asc("column"))`或`addOrder(Order.desc("column"))`实现,分别对应升序和降序。这样,Criteria提供了灵活且强大的查询能力,使得开发人员能够更方便地根据业务场景定制数据库查询。 总结来说,T21.9_Criteria查询这部分教程是Java开发者学习Hibernate高级查询功能的重要章节,通过理解并掌握Criteria的使用,能够提升应用程序在处理复杂数据检索时的性能和灵活性。
2023-07-13 上传