package cn.itcast.h3.hql; import java.util.List; import org.hibernate.Query; import org.hibernate.Session; import cn.itcast.h3.hql.vo.StudentModel; import cn.itcast.h3.hql.vo.TeacherModel; import cn.itcast.h3.util.HibernateUtil; public class HQLApp {…
lHibernate共提供5种查询方式 •OID数据查询方式 •HQL数据查询方式 •QBC数据查询方式 •本地SQL查询方式 •OGN数据查询方式 OID数据查询方式 l前提:已经获取到了对象的OID l查询:基于OID,使用get/load方法查询对应的数据 l作用:使用OID获取对应的数据 HQL数据查询方式 l前提:已知要进行查询的数据结构和条件 l查询:基于Query对象,完成HQL语句的查询,得 到查询结果 l作用:基于HQL语法规则,查询对应的数据 QBC数据查询方式 l前提:已知…
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; impo…
lQBC(Query By Criteria)是一种Hibernate中使用面向对象的格式进行查询的计数 lQBC查询方式步骤 •获取Session对象 •初始化Criteria对象(使用Session对象创建) •由Session对象创建 •传入要查询的数据模型类 •添加各种查询条件 •执行查询返回结果(返回单条数据或集合数据) lQBC查询格式非常简单,更符合编程人员的习惯 •Criteria对象用于由Session对象创建,传入要查询的PO类 •Criteria c = s.createC…
本地SQL查询方式 lHibernate框架支持使用原生态SQL语句进行操作数据库 l查询对象SQLQuery由Session获取 •SQLQuery sq = s.createSQLQuery("select * from tbl_teacher"); l查询结果为Object或Object[] •使用本地SQL查询,如果想将查询结果封装成对象,可以对要查询的表起别名,然后使用{别名}格式将其封装,最后还要添加别名指代的封装对象 •简化格式 l使用本地SQL查询,也可以使用动态参数的…
HQL查询:hibernate独有的查询语言 适用于不复杂的多表查询 示例: 实体类: package domain; public class Customer { private Long cust_id; private String cust_name; private String cust_source; private String cust_industry; private String cust_level; private String cust_linkman; priv…
插入数据删除数据修改数据查询单条数据查询多条数据 HelloWorldApp.java package cn.itcast.h3.helloworld; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; import cn.itcast.h3.helloworld.v…
Hibernate获取数据方式 lHibernate提供了多种方式获取数据 •load方法获取数据 •get方法获取数据 •Query/ Criteria对象获取数据 lHibernate获取的数据分为两类 •直接获取的数据(类级数据/直接数据) •使用load/get方法根据OID获取数据 •使用HQL语句获取到的数据 •使用Criteria对象获取到的数据 •使用关联关系获取主方数据时自动获取的从方数据(关联数据) •在一对一关系中,获取一方数据后所携带的从方数据 •在一对多关系中,获取一方…
HQL语句中不可以出现与表有关的内容,而是对象的属性 实体类(注意配置文件): package domain; import java.util.HashSet; import java.util.Set; //客户实体 public class Customer { private Long cust_id; private String cust_name; private String cust_source; private String cust_industry; private S…
package cn.itcast.h3.query.hql; import java.util.List; import org.hibernate.Query; import org.hibernate.Session; import cn.itcast.h3.query.hql.vo.TeacherModel; import cn.itcast.util.HibernateUtil; public class MainRelaApp { //fetch="select" lazy…
一.HQL查询(Hibernate Query Language)多表查询,但不复杂时使用 Hibernate独家查询语言,属于面向对象的查询语言 1.基本查询 2.条件查询 注意:HQL语句中不可能出现任何数据库相关的信息 1)?占位符 2)命名占位符 3.分页查询 二.Criteria查询(单表条件查询) Hibernate自创的无语句,面向对象查询 1.基本查询 2.条件查询: SQL中的表示 Criteria中的表示 > gt >= ge < lt <= le == eq…
package cn.itcast.h3.hql; import java.util.List; import org.hibernate.Query; import org.hibernate.Session; import cn.itcast.h3.hql.vo.StudentModel; import cn.itcast.h3.hql.vo.TeacherModel; import cn.itcast.h3.util.HibernateUtil; //多表查询 public class M…
复习day1环境搭建CRUD操作DB6个核心的APIday2TO PO DO 及其状态切换OID 自然主键 代理主键(uuid)一级缓存 Session绑定 load/get关系1对1 1对多(重点) 一set one-to-many 多many-to-one对多对 两边都是set many-to-many表结构 外键对象 Set 对象配置级联操作 cascade 多inverse true/false--------------------------------------------数据查…
QBC查询 1.简单查询 Criteria c = s.createCriteria(TeacherModel.class); 2.获取查询结果 多条:list 单挑:uniqueResult 3.分页查询 setFirstResult(int) setMaxResults(int) 4.查询排序 添加排序 c.addOrder(Order); 排序规则 Order od = Order.asc("字段名") Order od = Order.desc("字段名")…
核心API Configuration 描述的是一个封装所有配置信息的对象 1.加载hibernate.properties(非主流,早期) Configuration conf = new Configuration(); conf.addResource("cn/itcast/h3/helloworld/vo/UserModel.hbm.xml"); 2.加载hibernate.cfg.xml(主流) Configuration conf = new Configuration()…
一.Hibernate持久化类的编写规范 1.什么是持久化类 Hibernate是持久层的ORM影射框架,专注于数据的持久化工作.所谓持久化,就是将内存中的数据永久存储到关系型数据库中.那么知道了什么是持久化,什么又是持久化类呢?其实所谓的持久化类指的是一个Java类与数据库表建立了映射关系,那么这个类称为是持寺久化类.其实可以简单的理解为持久化类就是一个Java类有了一个映射文件与数据库的表建立了关系.那么我们在编写持久化类的时候有哪些要求呢?接下来我们来看一下: 2.持久化类的编写规则(应该…
框架辅助开发者进行开发,半成品软件,开发者与框架进行合作开发 Hibernate3Hibernate是一种基于Java的轻量级的ORM框架 基于Java:底层实现是Java语言,可以脱离WEB,在纯JAVA环境下运行 轻量级:与重量级比对,消耗资源比较小,运算速度比较快 ORM:(ORMapping:Object Relation Mapping)对象关系映射 O:Java对象 R:关系型数据库表 M:映射(map:地图 映射) 对象与表的对应关系 1.类与表对应 2.类的属性与表的字段对应 3…
hibernate框架技术重点学习笔记 1.针对不同的数据库,有不同的数据库实现类,使其符号对应的数据库? mysqlDaoImpl oracleDaoImpl ... ... 2.对象和表记录的转换存在着转换问题->orm,对象和关系的一种映射 3.框架:解决一种问题的方案集合! 4..配置文件 Xxx.cfg.xml  主配置文件 xxx.hbm.xml映射文件: 映射基础 普通属性 主键 集合属性 关联关系:一对多  多对一 多对多  一对一 继承结构 5.其他特性:数据库连接池  懒加载…
Configuration对象: package api; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; import org.junit.Test; //学习Configuration对象 // Configuration功能: 配置加载类.用于加载主配置,orm元数据加载 public class Demo { @Test public void fun1(){ //1 创建,调用空参…
一.表关系的分析 Hibernate框架实现了ORM的思想,将关系数据库中表的数据映射成对象,使开发人员把对数据库的操作转化为对对象的操作,Hibernate的关联关系映射主要包括多表的映射配置.数据的增加.删除等. 数据库中多表之间存在着三种关系,也就是系统设计中的三种实体关系.如图所示. 从图可以看出,系统设计的三种实体关系分别为:多对多.一对多和一对一关系.在数据库中实体表之间的关系映射是采用外键来描述的,具体如下. 1.1 表与表的三种关系 ●  一对多 建表原则:再多的一方创建外键指向…
ConfigurationSessionFactorySessionTransactionQueryCriteria Configuration Configuration对象用于封装Hibernate的配置信息,在Hibernate框架启动后,需要装载对应的配置文件.Hibernate的配置文件有两种格式hibernate.properties文件(早期格式)hibernate.cfg.xml文件(常用格式) 使用hibernate.properties加载配置 Configuration c…
  Hibernate 是一个 JDO( Java Data Objects)工具.它的工作原理是通过文件把值对象(Java对象)和 数据库表之间建立起一个映射关系,还提供数据查询和获取数据的方法.   配置 Hibernate 框架 配置 Hibernate 框架,需要三个准备,七个步骤. 准备一.导入 Hibernate 库 准备二.添加配置文件 hibernate.cfg.xml 准备三.添加映射文件 UserInfo.hbm.xml 步骤一.创建 Configuration 步骤二.创建…
     前面的相关文章中,我们已经介绍了使用XML配置文件映射实体类及其各种类型的属性的相关知识.然而不论是时代的潮流还是臃肿繁杂的配置代码告诉我们,注解配置才是更人性化的设计,于是学习了基本的映射实体类的基本注解,此处做一点总结,后续文章将陆续更新使用注解的方式管理配置各种映射关联关系.本篇主要涉及以下内容: 使用最基本的注解映射一个实体类 使用注解映射属性 使用注解映射主键 其他特殊类型的属性映射 一.使用最基本的注解映射一个实体类 @Entity @Table(name = "userI…
一.JavaEE开发三层结构和三大框架的对应关系: Struts2框架 -> 表现层 web层(MVC是表现层的设计模型) 业务层 service层 Hibernate框架 -> 持久层 dao层 Spring框架 ->综合类框架 二.持久层技术有哪些: JDBC:操作数据库最底层的方式 优势:底层.效率高 弊端:编写代码时比较繁琐,尤其是封装结果集 DBUtils:基于JDBC进行了简单封装 优势:封装结果集操作变得简单,并且仍然是自己编写SQL语句,相对效率没有太大影响 弊端:要求实…
HqlDemoApp.java package cn.itcast.h3.query.hql; import java.io.Serializable; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.Transaction; import cn.itcast.h3.query.hql.vo.StudentModel; import cn.itcast.h3.query.hql.vo.T…
一.Configuration对象 功能:配置加载类,用于加载主配置,orm元数据加载. //1.创建,调用空参构造(还没有读配置文件) Configuration conf=new Configuration(); //2.读取指令配置文件=>空参加载方法,加载src下的hibernate.cfg.xml文件 conf.configure(); //3.读取指定orm元数据(扩展),如果主配置中已经引入映射配置,不需要手动加载 //conf.addResource(resourceName);…
集合映射 public class User { // 一个用户,对应的多个地址 private Set<String> address; private List<String> addressList = new ArrayList<String>(); private Map<String,String> addressMap = new HashMap<String, String>(); } <hibernate-mapping…
MySQL的事务.JDBC事务操作: 详细见这篇文章:比较详细 http://www.cnblogs.com/xuyiqing/p/8430214.html 如何在hibernate中配置隔离级别: 再核心配置文件中: <!-- 指定hibernate操作数据库时的隔离级别 #hibernate.connection.isolation 1|2|4|8 0001 1 读未提交 0010 2 读已提交 0100 4 可重复读 1000 8 串行化 --> <property name=&q…
实体类: package domain; public class Customer { private Long cust_id; private String cust_name; private String cust_source; private String cust_industry; private String cust_level; private String cust_linkman; private String cust_phone; private String c…
hibernate框架属于dao层,类似dbutils的作用,是一款ORM(对象关系映射)操作 使用hibernate框架好处是:操作数据库不需要写SQL语句,使用面向对象的方式完成 这里使用eclipse工具搭建: 官网下载:https://sourceforge.net/projects/hibernate/files/hibernate-orm/5.0.7.Final/ 下载.zip文件后解压: lib文件夹下的required文件夹内的jar包为必须包: 另外还需要MySQL的驱动包:…