复习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--------------------------------------------数据查…
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…
创建实体类对象: 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 String cust_level; private Strin…
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…
lQBC(Query By Criteria)是一种Hibernate中使用面向对象的格式进行查询的计数 lQBC查询方式步骤 •获取Session对象 •初始化Criteria对象(使用Session对象创建) •由Session对象创建 •传入要查询的数据模型类 •添加各种查询条件 •执行查询返回结果(返回单条数据或集合数据) lQBC查询格式非常简单,更符合编程人员的习惯 •Criteria对象用于由Session对象创建,传入要查询的PO类 •Criteria c = s.createC…
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前提:已知…
SQLQuery对象的获取 Hibernate支持使用原生SQL语句进行查询,通过session对象获得SQLQuery对象进行,需要传入SQL语句 SQLQuery createSQLQuery(String sqlStr) SQLQuery query = session.createSQLQuery(“select * from tbl_user");sqlStr是满足SQL语法规则的字符串 “select * from tbl_user”是SQL的语法格式查询结果由于无法确定封装成何种格…
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共提供4种多表关联数据查询方式 OID数据查询+OGN数据查询方式 HQL数据查询方式 QBC数据查询方式 本地SQL查询方式(hibernate很少用) 1.OID数据查询+OGN数据查询方式 public class TestOID_OGN { /** * 什么时候时候什么时候发送 */ @Test public void findUser() { SessionFactory sf = H3Util.getSessionFactory(); Session session…
一.Hibernate持久化类的编写规范 1.什么是持久化类 Hibernate是持久层的ORM影射框架,专注于数据的持久化工作.所谓持久化,就是将内存中的数据永久存储到关系型数据库中.那么知道了什么是持久化,什么又是持久化类呢?其实所谓的持久化类指的是一个Java类与数据库表建立了映射关系,那么这个类称为是持寺久化类.其实可以简单的理解为持久化类就是一个Java类有了一个映射文件与数据库的表建立了关系.那么我们在编写持久化类的时候有哪些要求呢?接下来我们来看一下: 2.持久化类的编写规则(应该…
一.表关系的分析 Hibernate框架实现了ORM的思想,将关系数据库中表的数据映射成对象,使开发人员把对数据库的操作转化为对对象的操作,Hibernate的关联关系映射主要包括多表的映射配置.数据的增加.删除等. 数据库中多表之间存在着三种关系,也就是系统设计中的三种实体关系.如图所示. 从图可以看出,系统设计的三种实体关系分别为:多对多.一对多和一对一关系.在数据库中实体表之间的关系映射是采用外键来描述的,具体如下. 1.1 表与表的三种关系 ●  一对多 建表原则:再多的一方创建外键指向…
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 是一个 JDO( Java Data Objects)工具.它的工作原理是通过文件把值对象(Java对象)和 数据库表之间建立起一个映射关系,还提供数据查询和获取数据的方法.   配置 Hibernate 框架 配置 Hibernate 框架,需要三个准备,七个步骤. 准备一.导入 Hibernate 库 准备二.添加配置文件 hibernate.cfg.xml 准备三.添加映射文件 UserInfo.hbm.xml 步骤一.创建 Configuration 步骤二.创建…
hibernate框架技术重点学习笔记 1.针对不同的数据库,有不同的数据库实现类,使其符号对应的数据库? mysqlDaoImpl oracleDaoImpl ... ... 2.对象和表记录的转换存在着转换问题->orm,对象和关系的一种映射 3.框架:解决一种问题的方案集合! 4..配置文件 Xxx.cfg.xml  主配置文件 xxx.hbm.xml映射文件: 映射基础 普通属性 主键 集合属性 关联关系:一对多  多对一 多对多  一对一 继承结构 5.其他特性:数据库连接池  懒加载…
导读 Hibernate进阶篇分为上中下三篇,本文为最后一篇,主要内容是Hibernate框架的查询,主要包括hql语句查询,criteria查询以及查询策略的选择. 知识框架 Hibernate查询 一.查询方式:hql语言.criteria接口和sql语言. hql语言和criteria都是面向对象的查询方式,但最终都是要转换为sql语言执行的. 1.hql语言 1)简单查询 2)条件查询 3)排序查询 4)分页查询 5)统计查询 6)投影查询 2.criteria 1)简单查询 2)条件查…
一.JavaEE开发三层结构和三大框架的对应关系: Struts2框架 -> 表现层 web层(MVC是表现层的设计模型) 业务层 service层 Hibernate框架 -> 持久层 dao层 Spring框架 ->综合类框架 二.持久层技术有哪些: JDBC:操作数据库最底层的方式 优势:底层.效率高 弊端:编写代码时比较繁琐,尤其是封装结果集 DBUtils:基于JDBC进行了简单封装 优势:封装结果集操作变得简单,并且仍然是自己编写SQL语句,相对效率没有太大影响 弊端:要求实…
ConfigurationSessionFactorySessionTransactionQueryCriteria Configuration Configuration对象用于封装Hibernate的配置信息,在Hibernate框架启动后,需要装载对应的配置文件.Hibernate的配置文件有两种格式hibernate.properties文件(早期格式)hibernate.cfg.xml文件(常用格式) 使用hibernate.properties加载配置 Configuration c…
一.Configuration对象 功能:配置加载类,用于加载主配置,orm元数据加载. //1.创建,调用空参构造(还没有读配置文件) Configuration conf=new Configuration(); //2.读取指令配置文件=>空参加载方法,加载src下的hibernate.cfg.xml文件 conf.configure(); //3.读取指定orm元数据(扩展),如果主配置中已经引入映射配置,不需要手动加载 //conf.addResource(resourceName);…
Beego框架学习记录 1.beego简介 beego 是一个快速开发 Go 应用的 HTTP 框架,他可以用来快速开发 API.Web 及后端服务等各种应用,是一个 RESTful 的框架,主要设计灵感来源于 tornado.sinatra 和 flask 这三个框架,但是结合了 Go 本身的一些特性(interface.struct 嵌入等)而设计的一个框架. 参考文档:开发文档 1.1.beego整体架构 beego 是基于八大独立的模块构建的,是一个高度解耦的框架.当初设计 beego…
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的驱动包:…
插入数据删除数据修改数据查询单条数据查询多条数据 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…
一.框架是什么 1.框架是用来提高开发效率的 2.封装好了一些功能,我们需要使用这些功能时,调用即可,不需要手动实现 3.框架可以理解成一个半成品的项目,只要懂得如何驾驭这些功能即可 二.hibernate框架是什么 三.hibernate 1.操作数据库的时候,可以以面向对象的方式来完成,不需要书写SQL语句 2.hibernate是一款orm框架 1)orm:object relating mapping.对象关系映射 2) 3)orm分4级 hibernate属于4级:完全面向对象操作数据…
集合映射 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…
什么是hibernate框架? 1.它是应用在javaee 三层架构中的dao层 它的底层就是JDBC 它对JDBC进行了封装,好处就是不用写jdbc的代码,和sql语句,它是一个开源的轻量级框架,现在使用hibernate5.x版本 入门使用: 1. 导入hibernate所需要的jar文件 2.创建实体类  (User类 例:com.bin.User) 3.在com.bin.User 这个包中 创建相对应的xml文件 (User.hbm.xml) <?xml version="1.0&…
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…
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 {…
本地SQL查询方式 lHibernate框架支持使用原生态SQL语句进行操作数据库 l查询对象SQLQuery由Session获取 •SQLQuery sq = s.createSQLQuery("select * from tbl_teacher"); l查询结果为Object或Object[] •使用本地SQL查询,如果想将查询结果封装成对象,可以对要查询的表起别名,然后使用{别名}格式将其封装,最后还要添加别名指代的封装对象 •简化格式 l使用本地SQL查询,也可以使用动态参数的…