Hibernate学习笔记
福建选手阿俊
在无人问津的地方训练,在万众瞩目的地方出现
展开
-
Hibernate概述
1:什么是框架?通俗来说就是写程序,使用框架之后,帮我们实现一部分功能,使用框架好处:少写一部分代码实现功能框架是一个框子——指其约束性,也是一个架子——指其支撑性。是一个基本概念上的结构,用于去解决或者处理复杂的问题。2:什么是Hibernate框架1 ,Hibernate框架应用在JavaEE三层结构中dao层框架2,在dao层里面对数据库进行crud操作。使用Hibernate实...原创 2019-08-12 14:45:06 · 146 阅读 · 0 评论 -
Hibernate的一级缓存
1,什么是缓存?1:数据存到数据库里面。数据库本身是文件系统。使用流方式操作文件效率不是很高。(1)把数据存到内存里面。不需要使用流方式。可以直接读取内存中数据(2)把数据放到内存中,提高读取效率2:Hibernate缓存(1):Hibernate板架中提供很多优化方式。Hibermate 的缓存就是一个优化方式(2) :Hibernate缓存特点:第一类Hibernate 的一...原创 2019-08-12 17:50:46 · 101 阅读 · 0 评论 -
Hibernate绑定Session
获取与本地线程session步骤(1)在Hibernate核心配置文件中配置<!-- 在Hibernate核心配置文件中配置。目的为了绑定Session(保证单线程对象) --> <property name="hibernate.current_session_context_class">Thread</pro...原创 2019-08-12 17:56:39 · 195 阅读 · 0 评论 -
Hibernate的其他API使用——Query对象,Criteria对象,SQLQuery对象
Query对象1,使用query对象。不需要写sql语句。但是写hql语句。(1) hql :hibernate query language. hibernate提供查询语言。这个hql语句和普通语句很相似(2)hql和sql语句区别,。使用sql操作表和表字段,使用hql操作实体类和属性2,查询所有hql语句的演示如下from 实体类名称3,Query对象使用步骤。(1)创...原创 2019-08-12 18:05:47 · 195 阅读 · 0 评论 -
表与表之间关系回顾
(1)一对多(客户和联系人)客户表联系人表(2)多对多(用户和角色)。用户和角色多对多关系。用户,小王、 、小宋角色,总经理、秘书、司机、保安比如小王可以是总经理,可以是司机比如小宋可以是司机,可以是秘书,可以保安。比如小马可以是秘书,可以是总经理一个用户里面可以有多个角色。 一个角色里面可以有多个用户。我们必须创建第三张表来维护两个表之间的关系维护表用户表角色表...原创 2019-08-16 22:50:15 · 116 阅读 · 0 评论 -
Hibernate一对多操作
文章目录1:一对多映射配置2:一对多级联保存3:一对多级联删除4:一对多级联修改(inverse属性,目的:提高效率)1:一对多映射配置第一步:创建两个实体类,客户和联系人第二步:让两个实体类之间互相表示在客户实体类里面表示多个联系人(一个客户有多个联系人)//在客户实体类里面表示有多个联系人,一个客户有多个联系人(hibernate要求使用集合表示多的数据,使用set集合 pri...原创 2019-08-16 23:24:40 · 278 阅读 · 0 评论 -
Hibernate多对多操作
文章目录1:多对多映射配置2:多对多级联保存(重点)3:多对多级删除4:维护第三张表1:多对多映射配置以用户和角色为例第一步:创建实体类,用户和角色第二步:让两个实体类之间互相表示(1)一个用户里面表示所有角色。使用set集合(2) 一个角色有多个用户,使用set集合User.javapackage hibernate.manytomany;import java.util.Ha...原创 2019-08-16 23:30:58 · 216 阅读 · 0 评论 -
Hibernate的查询方式——(1)查询方式分类
Hibernate的查询方式分类:1;对象导航查询(1)根据id查询某个客户,再查询这个客户里所有的联系人2;OID查询(1)根据id查询某一条记录,返回对象3;hql查询(1) Query对象,写hql语句实现查询4;QBC查询(1)Criteria对象5;本地sql查询(1) SQLQuery对象,使用普通sql实现查询...原创 2019-08-16 23:36:47 · 152 阅读 · 0 评论 -
Hibernate的查询方式——(2)对象导航查询
根据id查询某个客户,再查询这个客户里所有的联系人//对象导航查询 //1:查询id=1的客户 Customer customer=session.get(Customer.class, 1); //2:在查询这个客户里面所有联系人 Set<LinkedMan> set=customer.getSet(); System.out.println(set....原创 2019-08-16 23:37:43 · 129 阅读 · 0 评论 -
实体类操作和对象状态
一,crud操作1,调用Session里面的save方法实现添加操作2,根据id查询要调用Session里面的get方法实现查询操作3,修改操作4,删除操作二, 实体类对象状态实体类状态有三种瞬时态:对象里面没有id值,对象session没有关联持久态:对象里面有id值,对象session有关联托管态:对象里面有id值,对象session没有关联...原创 2019-08-12 17:34:12 · 279 阅读 · 0 评论 -
Hibernate主键生成策略
在class属性里面有很多值1)native:根据使用的数据库帮选择那个值2)uuid:之前web阶段写代码生成uuid值,hibernate帮我们生成uuid值原创 2019-08-12 16:48:18 · 106 阅读 · 0 评论 -
实体类编写规则
1:实体类里面属性私有的2:私有属性使用公开的set和get方法操作3:要求实体类的属性作为唯一值(一般使用id)4:实体类属性建议使用基本数据类型对应的包装类(1)八个基本数据类型对应包装类-为什么建议使用基本数据类型对应的包装类?比如:表示学生分数,学生得了0分,int score=0;而int score=0;不可以准确的表示学生是否参加考试解决:使用包装类就可以...原创 2019-08-12 16:37:54 · 334 阅读 · 0 评论 -
Hibernate入门案例——第一步:搭建Hibernate环境
Hibernate框架的下载教学首先导入Hibernate的jar包由于使用Hibernate时候,有日志信息输出,Hibernate本身没有日志输出的jar包,所以要导入其他日志的jar包,还要mysql驱动的jar包apache-log4j-2.12.1-bin.zip下载地址slf4j-api-1.7.2.jar下载地址slf4j-log4j12.jar下载地址mysql-...原创 2019-08-12 14:53:49 · 255 阅读 · 0 评论 -
Hibernate入门案例——第二步:第二步,创建实体类和表
实体类:Userpackage Hibernate.introduction;public class User { private int uid; private String username; private String password; private String address; public int getUid() { return uid...原创 2019-08-12 15:01:44 · 230 阅读 · 0 评论 -
hibernate.properties
Hibernate, Relational Persistence for Idiomatic JavaLicense: GNU Lesser General Public License (LGPL), version 2.1 or later.See the lgpl.txt file in the root directory or http://www.gnu.org/licens...原创 2019-08-12 15:19:06 · 400 阅读 · 0 评论 -
Hibernate入门案例——第四步:创建Hibernate的核心配置文件
:核心配置文件格式.xml ,核心配置文件位置是固定的(必须在src下)名称:hibernate.cfg.xml(固定格式)2:引入dtd约束hibernate 的DTD 文件(hibernate-configuration-3.0.dtd约束文件)下载把约束文件中的放入到.cfg.xml配置文件3:Hibernate中只会加载核心配置文件,其他配置文件不会加载第...原创 2019-08-12 15:23:09 · 227 阅读 · 0 评论 -
Hibernate入门案例——第三步:配置实体类和数据库一一对应关系(映射关系)
1:创建xml格式的配置文件映射配置文件名称和位置没有固定要求建议:在实体类所在包里面创建格式:实体类名称.hbm.xml2:配置文件是xml格式的,在配置文件中首先引入xml约束hibernate 的DTD 文件(hibernate-mapping-3.0.dtd约束文件)下载把约束文件中的放入到.hbm.xml的配置文件中3:配置映射关系<?xml version...原创 2019-08-12 15:09:57 · 1550 阅读 · 0 评论 -
Hibernate入门案例——第五步:实现添加操作
第一步:加载Hibernate核心配置文件。第二步:创建SessionFactory对象。第三步:使用SessionFactory创建session对象第四步:开启事务第五步:写具体逻辑crud操作。第六步:提交事务。第七步:关闭资源。看到两个效果:1:是否生成表,2;表中是否有记录根据上面步骤来写如下代码IntroductionDemo.classpackage Hiber...原创 2019-08-12 16:10:01 · 237 阅读 · 0 评论 -
Hibernate配置文件详解
Hibernate映射配置文件1,映射配置文件名称和位置没有固定要求2,映射配置文件中,标签name属性值写实体类相关内容(1) class标签name属性值是实体类全路径(2) id标签和property标签name属性值是实体类属性名称3 ,id标签和property标签,column 属性可以省略的。(1) column 属性不写,值和name属性值一样的4 ,propert...原创 2019-08-12 16:24:08 · 178 阅读 · 0 评论 -
Hibernate的API使用
ConfigurationConfiguration configuration=new Configuration(); configuration.configure();代码解释:到src下面找到名称hibernate.cfg.xml配置文件,创建对象,把配置文件放到对象里面。(加载核心配置文件)SessionFactory org.hibernate.SessionFacto...原创 2019-08-12 16:34:07 · 154 阅读 · 0 评论 -
Hibernate的查询方式——(3)hql查询
文章目录hql查询1;条件查询2;排序查询3;查询所有4;分页查询5;投影查询6;聚集函数使用hql查询hql:HibernateQueryLanguage提供一种查询语言。和sql相似区别:sql操作数据库表和字段,hql操作实体类和属性常用的hql语句使用hql查询操作的时候,使用Query对象hql查询使用步骤(1):创建Query对象,写hql语句(2):调用q...原创 2019-08-16 23:42:08 · 150 阅读 · 0 评论