1、读取配置文件获得连接
读取hibernate.cfg.xml配置文件,hibernate.cfg.xml文件放在Classpath下,使用下面的方式读入该文件
//Configuration 负责管理hibernate配置信息 Configuration config=new Configuration().configure(); //根据config建立SessionFactory //SessionFactory用于建立Session SessionFactory sessionFactory=config.buildSessionFactory(); //开启session,相当于jdbc的Connection session = sessionFactory.openSession();
2、Criteria 基本资料查询
(1)标准查询:
//创建查询标准 Criteria criteria=session.creteCriteria(User.class); //查询条件 criteria.add(Expression.eq("name","caterpillar")); ************************************************************************************ Expression.eq(String s1,String s2)---------->相等s1=s2 Expression.allEq(Map map) --------------->多个属性-值对应关系,多个Expression.eq叠加 Expression.gt(String s1,String s2)----------->大于s1>s2 Expression.ge(String s1,String s2)----------->大于等于s1>=s2 Expression.lt(String s1,String s2)------------>小于s1<s2 Expression.le(String s1,String s2)------------>小于等于s1<=s2 Expression.between(String s1,int s2,int s3)--->s2<s1<s3 Expression.like(String s1,String s2)------------>s1 like s2 比较2个属性 Expression.eqProperty(String s1,String s2)--->s1=s2 Expression.gtProperty(String s1,String s2)---->s1>s2 Expression.geProperty(String s1,String s2)---->s1>=s2 Expression.ltProperty(String s1,String s2)----->s1<s2 Expression.leProperty(String s1,String s2)----->s1<=s2 Expression.and()----->Expression.and(Expression.eq("String s1,String s2"),Expression.eq(String s3,String s4)) Expression.or() ************************************************************************************
(2)高级查询
一、可以使用Criteria进行查询,并用order对结果进行排序。
//设置从第几条开始取的记录 criteria.setFirstResult(100); //最多取的几条记录 criteria.setMaxResults(20); //对结果进行排序 criteria.addOrder(Order.asc(String s1)); criteria.addOrder(Order.desc(String s2));
二、可以对查询结果进行统计操作,使用Projections的rowCount(),count(),max(),min(),countDistinct()等方法:
例如:criteria.setProjection(Projections.max("age"));
三、还可以用Projections的groupProperty()来对结果进行分组
例如:criteria.setProjection(Projections.groupProperty("age"));
(***)四、结合统计与分组的功能,可以用ProjectionList
例如:ProjectionList projectionList =Projections.projectionList();
projectionList.add(Projections.groupProperty("age"));
projectionList.add(Projections.rowCount());
criteria.setProjection(projectionList);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
//查询所有记录
List users=criteria.list();
Iterator iterator=users.iterator();
while(iterator.hasNext()){
User user=(User)iterator.next();
System.out.println(user.getId()+"\t"+user.getName()+"/"+user.getAge());
}
3、criteria的增、删、改(还不完善)
在用到增、删、改时,必须先声明事务
增加:
Transaction tx = session.beginTransaction();//Transaction表示一组会话操作
session.save(user);//将事物映射到数据库进行存储
tx.commit();
session.close();
删除:
Session session=this.getSession();
User user=(User)session.get(User.class, new Integer(1));
Transaction tx = session.beginTransaction();//Transaction表示一组会话操作
session.delete(user);//将事物映射到数据库进行存储
tx.commit();
session.close();
修改:
Session session=this.getSession();
User user =(User)session.get(User.class,new Integer(2));//创建持久化的事物
user.setName("wyqqqqqqqqqq");
user.setAge(new Integer(30));
Transaction tx = session.beginTransaction();//Transaction表示一组会话操作
session.update(user);//将事物映射到数据库进行存储
tx.commit();
session.close();
3、criteria的增、删、改(还不完善)
在用到增、删、改时,必须先声明事务
增加:
Transaction tx = session.beginTransaction();//Transaction表示一组会话操作
session.save(user);//将事物映射到数据库进行存储
tx.commit();
session.close();
删除:
Session session=this.getSession();
User user=(User)session.get(User.class, new Integer(1));
Transaction tx = session.beginTransaction();//Transaction表示一组会话操作
session.delete(user);//将事物映射到数据库进行存储
tx.commit();
session.close();
修改:
Session session=this.getSession();
User user =(User)session.get(User.class,new Integer(2));//创建持久化的事物
user.setName("wyqqqqqqqqqq");
user.setAge(new Integer(30));
Transaction tx = session.beginTransaction();//Transaction表示一组会话操作
session.update(user);//将事物映射到数据库进行存储
tx.commit();
session.close();
分享到:
相关推荐
【标题】"hibernate学习笔记-01helloworld"主要涵盖了Hibernate框架的基础入门知识,是初学者了解和掌握Hibernate的重要起点。Hibernate是一款强大的Java对象关系映射(ORM)框架,它简化了数据库操作,使得开发者...
【Hibernate学习笔记(1-13)】是传智播客李勇的教程,涵盖了Hibernate框架的基础到进阶内容。Hibernate是一个流行的ORM(对象关系映射)框架,它旨在解决Java面向对象编程与关系型数据库之间的模型不匹配问题,即...
**Hibernate学习笔记与总结** Hibernate 是一款开源的对象关系映射(ORM)框架,它为Java开发者提供了一种在关系数据库上操作对象数据的便捷方式。本文将深入探讨Hibernate的核心概念、配置、实体类、映射文件、...
【Java相关课程系列笔记之十四Hibernate学习笔记】 Hibernate是一个开源的对象关系映射(ORM)框架,它极大地简化了Java应用程序对数据库的操作。本笔记将详细阐述Hibernate的核心概念、使用方法和特性。 一、...
### Hibernate 学习笔记知识点概览 #### 一、Hibernate 概述 - **定义**:Hibernate 是一款开源的对象关系映射(ORM)框架,它实现了将 Java 应用程序中的对象模型映射到关系型数据库中的记录。通过 ORM 技术,...
### Hibernate—我的Hibernate学习笔记 #### 一、对象持久化的理论与实践 ##### 对象持久化概念 对象持久化指的是将内存中的对象状态保存至外部持久性存储设备(如硬盘),以便于日后需要时能够恢复其状态。这一...
Hibernate是一款强大的Java持久...通过阅读这份“Hibernate API帮助文档”和“Hibernate学习笔记”,你将能够深入理解Hibernate的工作原理,掌握其API的使用,并能在实际项目中有效地利用Hibernate进行数据持久化操作。
**Hibernate学习笔记与大纲** Hibernate 是一款开源的Java语言下的对象关系映射(ORM)框架,它极大地简化了数据库操作,使得开发人员可以使用面向对象的方式处理数据,而无需过多关注底层的SQL语句。本笔记将深入...
本文将根据马士兵的Hibernate学习笔记,深入探讨Hibernate的核心概念、配置、查询及性能优化等方面的知识。 首先,我们需要理解什么是O/R Mapping(对象关系映射)。在传统的JDBC编程中,我们直接通过SQL与数据库...
本学习笔记将深入探讨Hibernate的核心概念、配置、实体映射、查询语言以及事务管理等方面的知识。 一、Hibernate概述 Hibernate 是基于Java的持久化框架,它消除了Java应用程序与数据库之间的直接交互,通过对象...
【hibernate学习笔记】 在Java开发中,Hibernate是一个强大的对象关系映射(ORM)框架,它极大地简化了数据库操作。以下是对Hibernate的学习要点的详细解释: 1. **建立第一个Hibernate版本的HelloWorld** - **...
【hibernate框架开发2016版视频 四天学习笔记完整版】 在软件开发领域,特别是Java Web开发中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它极大地简化了数据库操作,使开发者可以更专注于业务逻辑而不是...
**hibernate学习笔记第四天源码解析** 在hibernate学习的过程中,第四天通常会深入探讨实体类、映射文件、配置文件以及查询语言等方面的内容。这些是hibernate框架的基础,也是开发者掌握持久化操作的关键。让我们...
在深入探讨Hibernate学习笔记第二天的源码之前,我们先来理解一下Hibernate的核心概念。Hibernate是一个开源的对象关系映射(ORM)框架,它允许Java开发者将数据库操作转化为对象模型,大大简化了数据访问层的开发...
【hibernate4框架学习笔记】 Hibernate是一款强大的ORM(Object-Relational Mapping)框架,它在Java开发中扮演着至关重要的角色,通过提供对象与数据库之间的映射,解决了对象模型和关系模型之间的“阻抗不匹配”...
在本篇“我的Hibernate学习笔记(4)完”中,我们将深入探讨Hibernate这一流行的Java对象关系映射(ORM)框架,以及如何通过源码和工具进行高效开发。这篇笔记不仅包含理论知识,还提供了实际操作的指导,以帮助读者更...
6. **HQL和Criteria查询**:讲解Hibernate特有的查询语言HQL,以及Criteria API,它们是如何替代原生SQL进行查询的。 7. **缓存机制**:介绍Hibernate的两级缓存(一级缓存和二级缓存),以及它们在提高性能方面的...