通过上一篇文章我的hibernate学习记录(一)基本上的入门了hibernate,但是,里面还有还多东西是通过迷迷糊糊的记忆,或者说copy直接弄进去的,所以这篇文章就需要对上篇的一些文件、对象进行说明。

hibernate配置文件

1.xxx.hbm.xml

  上一篇中有个文件是customer.hbm.xml,这是一个关于对象实体和表之间关系的配置文件

  • 根节点是hibernate-mapping 其中这里有一个属性package,package可能一看就知道是什么了,就是代表着一个包,写入的是包名,这个方便在里面的子元素以后凡是需要用到完整类名的都可以直接使用简单类名代替,例如:子元素class中有一个属性name,这是填入类名的,我们可以不用cn.lger.domain.Customer,而是可以直接使用Customer
  • 节点class元素, 这是实体与表之间的对应关系,其中name声明是哪个类,table声明是哪个表

    节点
  • 节点id是主键的映射属性,name是填写类中对应的属性名,colum填写的是表中对应的列名。id中的还有一个节点generator ,这是主键的生成策略,意思就是我们在表中id的值生成的方法,这里我使用了increment,它是代表在数据库中主键是自增长的,每每生成一个记录都会在原有的基础上id+1
  • 节点property 的应用很广,hibernate中是配置键值对的,相当于我们java中的Map,这里配置了字段名与实体属性之间的映射关系,当然这些都不是必须的,可以不写

2.xxx.cfg.xml

  这是hibernate的主配置文件,主要是通过该配置文件然后hibernate程序启动时解析该文件的信息,比如数据库连接信息,对象与数据库表之间的映射信息

  hibernate-configuration是根节点,节点中包含了session-factory session-factory是hibernate中SessionFactory对象的一个配置信息

hibernate对象

 1.Configuration对象

这个类我是简单的先理解为加载配置文件的工具类。

Configuration中有几个构造函数分别是:

//空参构造在内部实现的时候是调用了configure(String resource)
//它默认的加载了classpath下的hibernate.cfg.xml
public Configuration configure() //通过字符串所代表的配置文件的路径加载
public Configuration configure(String resource) //通过URL加载文件,读取的也是一个路径
public Configuration configure(URL url) //File类,可以代表一个文件或者目录,所以这也是实现对文件的加载
public Configuration configure(File configFile)

 2.SessionFactory对象

SessionFactory是Session的工厂,里面包含了数据库的连接信息等

功能很单一,就是生产(创建)Session,它是通过Configuration生成的信息被创建的,所以Configuration的行动就是为了生成SessionFactory

 3.Session&Transaction对象

Session是操作数据库的一个对象,与数据库进行连接,相当于JDBC中Connection,但是Session比起Connection功能更加多,可以直接操作数据库

Transaction关于这个的理解,我也不是很到位,所以这里贴出一些别人的文章作为参考:

http://blog.csdn.net/leroy008/article/details/8594397

http://blog.csdn.net/qq_33442549/article/details/51824616

http://www.cnblogs.com/BigAngel/p/3498534.html

我的hibernate学习记录(二)的更多相关文章

  1. Material Calendar View 学习记录(二)

    Material Calendar View 学习记录(二) github link: material-calendarview; 在学习记录一中简单翻译了该开源项目的README.md文档.接下来 ...

  2. Spring Boot学习记录(二)--thymeleaf模板 - CSDN博客

    ==他的博客应该不错,没有细看 Spring Boot学习记录(二)--thymeleaf模板 - CSDN博客 http://blog.csdn.net/u012706811/article/det ...

  3. JavaScript学习记录二

    title: JavaScript学习记录二 toc: true date: 2018-09-13 10:14:53 --<JavaScript高级程序设计(第2版)>学习笔记 要多查阅M ...

  4. 2.VUE前端框架学习记录二

    VUE前端框架学习记录二:Vue核心基础2(完结)文字信息没办法描述清楚,主要看编码实战里面,有附带有一个完整可用的Html页面,有需要的同学到脑图里面自取.脑图地址http://naotu.baid ...

  5. Hibernate学习(二)———— 一级缓存和三种状态解析

    一.一级缓存和快照 什么是一级缓存呢? 很简单,每次hibernate跟数据库打交道时,都是通过session来对要操作的对象取得关联,然后在进行操作,那么具体的过程是什么样的呢? 1.首先sessi ...

  6. Hibernate学习笔记二

    Hibernate持久化类的编写规则 Hibernate是持久层的ORM映射框架,专注于数据的持久化工作.所谓持久化,就是将内存中的数据永久存储到关系型数据库中. 持久化类 一个java类与数据库表建 ...

  7. SpringBoot学习记录(二)

    一. SpringBoot日志框架 SpringBoot:底层是Spring框架,Spring框架默认是用JCL(commons-logging): SpringBoot选用SLF4j和logback ...

  8. Hibernate学习笔记二:Hibernate缓存策略详解

    一:为什么使用Hibernate缓存: Hibernate是一个持久层框架,经常访问物理数据库. 为了降低应用程序访问物理数据库的频次,从而提高应用程序的性能. 缓存内的数据是对物理数据源的复制,应用 ...

  9. Hibernate学习笔记二:常用映射配置

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6760895.html 一:单向一对一 常用唯一外键的方法来配置单向一对一关系. 1:实体关系 类A中有类B对象 ...

随机推荐

  1. Hibernate批量操作(二)

    Hibernate提供了一系列的查询接口,这些接口在实现上又有所不同.这里对Hibernate中的查询接口进行一个小结. 我们首先来看一下session加载实体对象的过程:Session在调用数据库查 ...

  2. C#生成无重复的随机数

    大一学期末的时候做课程设计时遇到过生成无重复随机数的问题,今天自己也写出来了: static int[] Create_Value() { Random ran = new Random(); //生 ...

  3. Java集合框架Collections【List/Set】

    1.基本介绍: 集合就是存放对象的,他比数组好的一点就是他一开始不清楚自己长度 容器一般是分为很多种的,很多的容器在一起然后进过断的抽象和抽取就成了一个体系,我们称之为集合框架 我们看体系首先是看顶层 ...

  4. nopCommerce 3.9 大波浪系列 之 微信公众平台登录插件

    一.简介 插件源码下载:点击下载 微信公众平台网站授权帮助地址:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp142114084 ...

  5. NYOJ--20--搜索(dfs)--吝啬的国度

    题意,N座城市有N-1条路,目的是找到哪个城市可以到目的城市 //NYOJ--search--吝啬的国度 #include<iostream> #include<vector> ...

  6. ps命令用法

    转自:http://www.cnblogs.com/peida/archive/2012/12/19/2824418.html Linux中的ps命令是Process Status的缩写.ps命令用来 ...

  7. linux--软件包管理工具

    linux平台软件包管理: RPM/DPKG 两大阵营简介 在 GNU/Linux( 以下简称 Linux) 操作系统中,RPM 和 DPKG 为最常见的两类软件包管理工具,他们分别应用于基于 RPM ...

  8. js数组去重方法分析与总结

    数组去重经常被人拿来说事,虽然在工作中不常用,但他能够很好的考察js基础知识掌握的深度和广度,下面从js的不同阶段总结一下去重的方法. ES3阶段 该阶段主要通过循环遍历数组从而达到去重的目的 多次循 ...

  9. NYOJ 66 分数拆分

    分数拆分 时间限制:3000 ms  |  内存限制:65535 KB 难度:1   描述 现在输入一个正整数k,找到所有的正整数x>=y,使得1/k=1/x+1/y.   输入 第一行输入一个 ...

  10. Linux下ftp的安装配置

    1.查看ftp包是否可用yum list | grep vsftpd 2.安装ftpyum install vsftpd 3.启动systemctl start vsftpd 4.开机启动chkcon ...