Criteria是面向对象的无语句查询

Demo.java

package com.legend.b_criteria;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Projections;
import org.hibernate.criterion.Restrictions;
import org.junit.jupiter.api.Test; import com.legend.domain.Customer;
import com.legend.utils.HibernateUtils; /**
* 学习Criteria语法
* @author qichunlin
*
*/
public class Demo {
//基本语法
@Test
public void fun1() {
Session session = HibernateUtils.openSession();
Transaction tx = session.beginTransaction();
//--------------
Criteria criteria = session.createCriteria(Customer.class); List<Customer> list = criteria.list();
System.out.println(list);
//-------------- tx.commit();
session.close(); } //条件查询
@Test
public void fun2(){
//
Session session = HibernateUtils.openSession();
Transaction tx = session.beginTransaction();
//--------------
//创建Criteria 对象
Criteria criteria = session.createCriteria(Customer.class); //添加Criteria的查询参数
criteria.add(Restrictions.eq("cust_id", 1l)); //获取查询的结果
Customer c = (Customer) criteria.uniqueResult();
System.out.println(c);
//-------------- //事务的提交
tx.commit();
session.close(); } //分页查询
//(当前页数-1)*每页条数
@Test
public void fun3() {
//
Session session = HibernateUtils.openSession();
Transaction tx = session.beginTransaction();
//--------------
//编写HQL语句
Criteria criteria = session.createCriteria(Customer.class); criteria.setFirstResult(1);
criteria.setMaxResults(2); List<Customer> list = criteria.list();
System.out.println(list);
//-------------- tx.commit();
session.close(); } //排序检索
@Test
public void fun5() {
//
Session session = HibernateUtils.openSession();
Transaction tx = session.beginTransaction();
//--------------
Criteria criteria = session.createCriteria(Customer.class); criteria.addOrder(Order.desc("cust_id")); List<Customer> list = criteria.list();
System.out.println(list);
//-------------- tx.commit();
session.close(); } //统计查询
@Test
public void fun6() {
//
Session session = HibernateUtils.openSession();
Transaction tx = session.beginTransaction();
//--------------
//编写HQL语句
Criteria criteria = session.createCriteria(Customer.class); //设置查询目标
criteria.setProjection(Projections.rowCount());
//List list = query.list();
List<Long> list = criteria.list();
System.out.println(list);
//-------------- tx.commit();
session.close(); }
}

基本查询

统计查询

附上hibernate的额核心配置文件xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<!-- 配置参数文件 -->
<hibernate-configuration>
<session-factory>
<!--
#hibernate.dialect org.hibernate.dialect.MySQLDialect
#hibernate.dialect org.hibernate.dialect.MySQLInnoDBDialect
#hibernate.dialect org.hibernate.dialect.MySQLMyISAMDialect
#hibernate.connection.driver_class com.mysql.jdbc.Driver
#hibernate.connection.url jdbc:mysql:///test
#hibernate.connection.username gavin
#hibernate.connection.password
配置mysql相关参数
-->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql:///crm</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">123456</property> <!-- 配置mysql方言 -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <!--
sql语句显示
#hibernate.show_sql true
# format SQL in log and console
#hibernate.format_sql true -->
<property name="hibernate.format_sql">true</property>
<property name="hibernate.show_sql">true</property> <!--
## auto schema export
#hibernate.hbm2ddl.auto create-drop
#hibernate.hbm2ddl.auto create
#hibernate.hbm2ddl.auto update
#hibernate.hbm2ddl.auto validate
-->
<property name="hibernate.hbm2ddl.auto">update</property> <!--
设置数据库隔离级别
## specify a JDBC isolation level
#hibernate.connection.isolation 4
-->
<property name="hibernate.connection.isolation">4</property> <!-- 指定session与当前线程绑定 -->
<property name="hibernate.current_session_context_class">thread</property> <!-- 配置映射文件加载 orm元数据 -->
<mapping resource="com/legend/domain/Customer.hbm.xml"/>
<mapping resource="com/legend/domain/LinkMan.hbm.xml" />
<mapping resource="com/legend/domain/User.hbm.xml" />
<mapping resource="com/legend/domain/Role.hbm.xml" /> </session-factory>
</hibernate-configuration>

传统的Criteria

离线的Criteria

2018.11.13 Hibernate 中数据库查询中的Criteria查询实例的更多相关文章

  1. 2018.11.1 Hibernate中的Mapper关系映射文件

    Customer.hbm.xml 基本的参数都在里面了 <?xml version="1.0" encoding="UTF-8"?> <!DO ...

  2. 2018.11.14 hibernate中的查询优化---关联级别查询

    查询优化------关联级别查询 集合策略 在Mapper映射文件中添加属性 测试数据 lazy:true 延时加载数据 fetch:select 单表查询 控制台显示输出 结论:单表查询,使用到在加 ...

  3. 2018.11.4 Hibernate中一对、多对多的关系

    简单总结一下 多表关系 一对多/多对一 O 对象 一的一方使用集合. 多的一方直接引用一的一方. R 关系型数据库 多的一方使用外键引用一的一方主键. M 映射文件 一: 多: 操作: 操作管理级别属 ...

  4. 2018.11.13 N4010A 通信设置

    设置电脑之IP地址及Subnet mask.      IP address: 192.168.1.2      Subnet mask: 255.255.255.0, 其它选项为默认. 然后点击OK ...

  5. hibernate里的generator中class =value介绍

    在*.hbm.xml必须声明的<generator>子元素是一个Java类的名字,用来为该持久化类的实例生成唯一的标识.<generator class="sequence ...

  6. Criteria 查询

    Criteria.Criterion接口和Expression类组成,他支持在运行时动态生成查询语句. Criteria查询是Hibernate提供的一种查询方式 Hibernate检索方式:  PO ...

  7. JPA criteria 查询:类型安全与面向对象

    参考:https://my.oschina.net/zhaoqian/blog/133500 一.JPA元模型概念,及使用 在JPA中,标准查询是以元模型的概念为基础的.元模型是为具体持久化单元的受管 ...

  8. NHibernate系列文章二十三:NHibernate查询之Criteria查询(附程序下载)

    摘要 上一篇文章介绍了NHibernate HQL,他的缺点是不能够在编译时发现问题.如果数据库表结构有改动引起了实体关系映射的类有改动,要同时修改这些HQL字符串.这篇文章介绍NHibernate面 ...

  9. Hibernate-ORM:15.Hibernate中的Criteria查询

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 本篇博客讲师Hibernate中的Criteria查询! 一,Criteria简介: 刚接触Hibernate ...

随机推荐

  1. 原生态hadoop2.6平台搭建

     hadoop2.6平台搭建 一.条件准备 软件条件: Ubuntu14.04 64位操作系统,jdk1.7 64位,Hadoop 2.6.0 硬件条件: 1台主节点机器,配置:cpu 8个,内存32 ...

  2. SQLAlchemy安装和使用

    1.SQLAlchemy安装 SQLAlchemy依赖mysql-python驱动,mysql-python目前只有支持py2的版本和mysql5.5的版本 点我:mysql-python链接 版本: ...

  3. (转)Linux系统sersync数据实时同步

    Linux系统sersync数据实时同步 原文:http://blog.csdn.net/mingongge/article/details/52985259 前面介绍了以守护进程的方式传输或同步数据 ...

  4. Spark 1.6.2 + Beam 2.0.0读取Mongodb数据进行相应逻辑处理

    不多说,直接上干货! http://blog.csdn.net/jianglushou9763/article/details/73332805 如果需要 APACHE BEAM2.0.0版本如何支持 ...

  5. ICONIX

  6. 安装 VS 2015 Update 2 + Windows SDK Tools 1.3.1 + Windows SDK 10586.212 后提示找不到 10586.0 SDK 问题的解决方法

    将 Visual Studio 2015 升级到 Update 2,并安装 Windows SDK Tools 1.3.1 和 Windows SDK 10586.212 后,有可能造成原本已安装的 ...

  7. (五)html部分标签元素补充

    html标签元素十分的多,一次性掌握全部,那是不可能的,在后续的学习中,会不断补充标签元素... 1.行元素和块元素 行标签元素即是标签元素根据内容大小进行自适应,而不是占据一整行. 如<spa ...

  8. FTP FileZilla Server 本地加密C# 实现

    最近公司要做一个资料管理模块,因系统是C/S架构,原来小文件都是直接使用7Z压缩后保存到SQL Server数据库 而资料管理模块也就是文件上传,下载加权限管理,考虑文件较多,还可能比较大,所以打算在 ...

  9. Angular 基础教程(1)

    简介 什么是AngularJS 一个功能非常完备的前端框架,通过增强HTML的方式提供一种便捷开发Web应用程序的方式 其核心特点就是几乎无任何DOM操作,让开发人员的精力和时间全部集中于业务 MVC ...

  10. 原生js实现雪花飘落效果

    雪花飘落的效果实现步骤:1.使用setInterval定时器每800毫秒创建一个雪花:2.把每一个雪花作为参数传进动态下落的方法中即可. <style> *{padding: 0;marg ...