Hibernate总结(二)】的更多相关文章

Hibernate实例二 一.测试openSession方法和getCurrentSession方法 hebernate中可以通过上述两种方法获取session对象以对数据库进行操作,下面的代码以及注解是对两种方法的辨析 这两种方法是从SessionFactory获取Session的时候用 SessionTest.java import java.sql.Connection; import java.sql.SQLException; import java.util.Date; import…
一.建立hibernate配置文件 在工程Hibernate_01_HelloWorld下的src上建立hibernate.cfg.xml,打开hibernate-release-4.3.11.Final/documentation/manual/en-US/html_single/index.html(hibernate开发文档),在文档中搜索configuration,找到 hibernate.cfg.xml配置文件的模板,复制到自己的工程中: 1.修改配置文件适用jdbc和mysql数据库…
一.在数据库中创建teacher表(数据库hibernate) create table teache( id int auto_increment primary key, name ), title ) ); 二.创建model 在cn.orlion.hibernate.model下创建实体类Teacher(注意添加注解,一开始只添加了@Id,然后抛出异常,后来又加上了@GeneratedValue(strategy = GenerationType.AUTO)) package cn.or…
hibernate 单向一对多映射 一.数据表设计 数据库名:hibernate5 数据表: ①表名:CUSTOMERS 字段: CUSTOMER_ID  CUSTOMER_NAME ②表名:ORDERS  字段:ORDER_ID ORDER_NUMBER CUSTOMER_ID(关联CUSTOMERS表的CUSTOMER_ID,构成单向一对多关系) 二.建立数据表对应的持久化类 1.Customers.java package com.hjj.hibernate.entities.n21; p…
一.Hibernate体系结构 二.Hibernate-api详解 2.1.Configuration配置对象 Configuration是用来加载配置文件的 我们Hibernate中主要有两个配置文件,第一个是核心的配置文件,第二个是映射文件. 2.2.SessionFactory工厂 SessionFactory 相当于java web连接池,用于管理所有session 获得方式:config.buildSessionFactory(); sessionFactory hibernate缓存…
1.1Hibernate的持久化类状态 1.1.1Hibernate的持久化类状态 持久化类:就是一个实体类和数据库表建立了映射关系. Hibernate为了方便的管理持久化类,将持久化类分成了三种状态. 瞬时态(临时态) transient 持久态 persistent 脱管态(游离态) detached 1.1.2 三种持久化对象的状态 瞬时态 Transient 不存在持久化标识OID,尚未与Hibernate的session关联,被认为处于瞬时态,失去引用将被JVM回收.换句话说,持久化…
事实上,单向1-1与N-1的实质是相同的,1-1是N-1的特例,单向1-1与N-1的映射配置也非常相似.只需要将原来的many-to-one元素增加unique="true"属性,用于表示N的一端也必须是唯一的,在N的一端增加了唯一的约束,即成为单向1-1.基于外键的单向1-1的配置将与无连接表N-1关联的many-to-one增加unique="true"属性即可. 一.模型介绍 一个人(account)对应一个地址(address). 二.实体 account类…
本文主要介绍: 1 Criteria 接口 2 用 myeclipse 反向生成 3 hibernate  主键生成策略 4 多对一 5 一对多 6 使用List 集合的一对多 7 多对多 一.Criteria 接口 //例一 public static AdminInfo getLoginAdminCriteria(String adminName,String password){ try{ Session s=HibUtil.getSession(); Criteria c=s.creat…
Hibernate第二天     一.hibernate的持久化类和对象标识符         1.1持久化类的编写规范             1.1.1什么是持久化类:                 Hibernate是持久层的ORM映射框架,专注于数据的持久化工作.所谓的持久化,就是将内存中的数据永久存储到关系型数据库中.                 那么就知道了什么的持久化,什么又是持久化类呢?其实所谓的持久化类指的是一个java类与数据库表建立了映射关系,那么这个类称为是持久化类…
一.事务操作. 代码: @Test public void tr_Up(){ Session session=hibernateUtils.getSession(); Transaction transaction=session.beginTransaction(); Customer customer=new Customer(); try { Customer c=session.get(Customer.class,1L); c.setName("ooop"); //提交事务.…
一.简述 Criteria是一种比hql更面向对象的查询方式.Criteria 可使用 Criterion 和 Projection 设置查询条件.可以设置 FetchMode(联合查询抓取的模式 ) ,设置排序方式,Criteria 还可以设置 FlushModel (冲刷 Session 的方式)和 LockMode (数据库锁模式). Criteria本身只是查询的容器.Criteria查询又称对象查询 Criteria查询采用面向对象的方式封装查询条件.由Hibernater自动生成SQ…
一  映射文件User.hbm.xml 定义了持久化类实例是如何存储和加载的,这个文件定义了持久化类和表的映射. 根据映射文件,Hibernate可以生成足够的信息以产生所有的SQL语句,也就是类的实例进行插入,更新,删除和查询所需要的SQL语句. 二  配置文件hibernate.cfg.xml(另外一种格式是hibernate.properities) Hibernate配置文件:配置数据库连接以及Hibernate运行时所需要的各个属性的值.两种格式的文件是等价的,同时存在的的话xml的会…
1.直接通过JDBC API持久化实体域对象: A.java.sql常用接口和类: DriverManager:驱动程序管理器,负责创建数据库连接. Connection:代表数据库连接. Statement:负责执行SQL语句. PreparedStatement:负责执行SQL语句,具有预定义SQL语句的功能. ResultSet:代码SQL查询语句的查询结果集. 2.常用的ORM中间件: Hibernate\Mybatis\Toplink\Torque\ObjectRelationBrid…
在上篇博客中,我们介绍了<hibernate基本概念和体系结构>,也对hibernate框架有了一个初步的了解,本文我将向大家简单介绍Hibernate的核心API调用库,并讲解一下它的基本配置.核心API的底层实现和源码解析将在以后的博客中一一为大家讲解. 首先我们一起来看一下开发一个hibernate应用程序的大体流程是什么样的(流程顺序可以颠倒): •创建Hibernate的配置文件 •创建持久化类 •创建对象-关系映射文件 •通过Hibernate API编写访问数据库的代码 关于配置…
Hibernate思维导图   Hibernate映射 关于hibernate的映射要说明的一点就是关于ID的访问权限,peroperty以及field的区别: 表的主键在内存中对应一个OID对象描述标识符,需要在配置文件中指定对象标识符的生成方式 assinged是自然主键的方式,这种策略需要用户指定ID才可以. 其他的方式比如sequence通过序列生成主键,identity,increment等是自增长,这种方式生成的主键一般是hibernate生成的,所以我们在编写实体对象的时候,id的…
在网上的资料很多,但是成功搭建一个Hibernate框架的很少,下面我将用一个简单的例子成功搭建一个Hibernate框架给大伙瞧瞧 该链接中有源代码和数据库,例子很简单,只是往数据库中的person表里面添加一组数据,链接:http://pan.baidu.com/s/1c0q8UZ2 密码:108m 也可以在我的github中下载,喜欢的话fork一下吧!https://github.com/zzzzw 在eclipse中配置Hibernate开发框架,本连接使用的数据库是MySQL 图一…
新建一个hSpider的工程,引入前面已经建立的lib 并为其建立一个hibernate.cfg.xml的映射文件 <?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernat…
上篇Hibernate(一)JDBC简介,我们主要对JDBC进行了简单介绍和使用说明,这次我们做一个Hibernate简单实例,通过这个实例对比Hibernate和JDBC,了解Hibernate的优势所在.在此之前,读者有必要了解一下Hibernate中的每个jar包的作用和每个jar文件包主要负责的工作,这里我们不做过多的解释. 1.导入jar文件 导入antlr-2.7.6.jar 导入commons-collections-3.1.jar 导入dom4j-1.6.1.jar 导入hibe…
 在上一篇日志中将hibernate的会话工厂sessionFactory注入到了spring的容器中,但这样还不够,因为hibernate的增删改查是要使用事务机制的, 所以还要在spring中配置事务管理,将hibernate管理事物的权利交给spring,这样,在代码中就无需手动管理事务了. 1.首先在spring中配置一个hibernate的jdbc //applicationContext.xml(spring配置文件) 当然,在此之前要将实体类映射文件配置在sessionFactor…
1 一级缓存的引入 示例: @Test public void testUpdate(){ Configuration configuration = new Configuration().configure(); SessionFactory sessionFactory = configuration.buildSessionFactory(); Session session = sessionFactory.openSession(); Transaction tx = session…
hibernate主键生成策略主要指的是在实体类orm的配置 <id name=""> <generator class="native"></generator> </id> 主键生成策略:(7个) indentity :主键自增  ,从数据库中维护主键值,在录入时不用指定主键.   控制台sql 显示为: insert into  Person(name ,sex,age) values(?,?,?) increm…
目前使用的hibernate5.2.9版本,配置的mysql方言为: <property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property> 使用的表更新策略为: <property name="hibernate.hbm2ddl.auto">create</property> 可是每次执行都出现了以下错误: INFO…
Hibernate API 详解 1.Configuration 功能:配置加载类,用于加载主配置,orm元数据加载 .创建: Configuration conf = new Configuration(); 读取指定配置文件(加载主配置文件,即我们经常创建的"hibernate.cfg.xml") 从下图中可以发现有很多关于读取方法的重载... 虽然有这么多重载,但是一般咱就用无参构造方法把,默认找到src下的hibernate.cfg.xml文件 conf.configure()…
目标: 关联映射(hibernate映射) 1. 集合映射 2. 一对多与多对一映射 (重点) 3. 多对多映射 4. inverse/lazy/cascade 1. 集合映射 开发流程: 需求分析/数据库设计.项目设计/ 编码/测试/实施部署上线/验收 需求: 用户购买, 填写地址! 数据库: 代码: // javabean设计 public class User { private int userId; private String userName; // 一个用户,对应的多个地址 pr…
1. Hibernate持久化对象的状态 2. Hibernate的一级缓存 3. Hibernate操作持久化对象的方法 4. Hibernate的基本查询 Hibernate的持久化类 什么是持久化类 1. 持久化类:就是一个Java类(咱们编写的JavaBean),这个Java类与表建立了映射关系就可以成为是持久化类. * 持久化类 = JavaBean + xxx.hbm.xml 持久化类的编写规则 1. 提供一个无参数 public访问控制符的构造器 -- 底层需要进行反射. 2. 提…
© 版权声明:本文为博主原创文章,转载请注明出处 1.hibernate.cfg.xml常用配置 - hibernate.show_sql:是否把Hibernate运行时的SQL语句输出到控制台,编码阶段便于测试 - hibernate.foramt_sql:输出到控制台的SQL语句是否进行排版,便于阅读.建议设置为true - hbm2ddl.auto:可以帮助由java代码生成数据库脚本,进而生成具体的表结构.create|update|create-drop|validate - hibe…
学习Hibernate是为了更方便的操作数据库,在数据库中的关系模型中存在多对一的关系,比方下图所看到的的员工和部门之间的关系,那么这样的关系在Hibernate中怎样映射呢?让我用一个小Demo来具体解说. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXV3ZW56aGU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="&quo…
1.延迟加载(懒加载) 概念 需要用到该数据的时候才要加载 种类 类的延迟加载 案例 说明:注意:使用的是Load方法 1.  执行22行代码的时候,不发出sql语句,说明类的延迟加载和主键没有关系 2.  执行23行代码的时候,发出sql语句,说明只有在得到具体属性的时候才要发出sql语句. 3.  Session.load方法返回的对象是 而该对象是由javassist的jar包生成的,从代码结构可以看出该代理对象是持久化类的子类. 4.  在Classes.hbm.xml文件中 Lazy的…
1. 前言 本章节我们讨论Hibernate一对多查询的处理. 在上一章节中(Hibernate(一)——入门),我们探讨了Hibernate执行最基本的增删改查操作.现在我们将情况复杂化:加入我们在查询用户信息的时候需要同时查询其登录日志,这样就涉及到一对多查询.那么一对多查询要怎么实现么? 2. jar包准备 在本节中,除了上一章节中用到的jar包,我还需要用log4j.jar来将Hibernate的查询语句输出到控制台.log4j.properties的配置如下: log4j.rootLo…
刚刚写的是基于外键的单向一对一.  那么双向一对一就是在单向一对一的基础上稍微改动就可以了. account.java和account.hbm.xml都不用变动  只要我们小小的变动address.java与address.hbm.xml就可以了. 唯一外键关联较主键关联映射的好处就是,万一哪天需求变了,这两个对象的关系由一对一变为多对一,那么直接把外键唯一的约束去掉就行. 而且唯一外键关联其实就是多对一关联的一种特殊情况,下面将会介绍多对一关联的情况.…