我的hibernate学习记录(二)
通过上一篇文章我的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学习记录(二)的更多相关文章
- Material Calendar View 学习记录(二)
Material Calendar View 学习记录(二) github link: material-calendarview; 在学习记录一中简单翻译了该开源项目的README.md文档.接下来 ...
- Spring Boot学习记录(二)--thymeleaf模板 - CSDN博客
==他的博客应该不错,没有细看 Spring Boot学习记录(二)--thymeleaf模板 - CSDN博客 http://blog.csdn.net/u012706811/article/det ...
- JavaScript学习记录二
title: JavaScript学习记录二 toc: true date: 2018-09-13 10:14:53 --<JavaScript高级程序设计(第2版)>学习笔记 要多查阅M ...
- 2.VUE前端框架学习记录二
VUE前端框架学习记录二:Vue核心基础2(完结)文字信息没办法描述清楚,主要看编码实战里面,有附带有一个完整可用的Html页面,有需要的同学到脑图里面自取.脑图地址http://naotu.baid ...
- Hibernate学习(二)———— 一级缓存和三种状态解析
一.一级缓存和快照 什么是一级缓存呢? 很简单,每次hibernate跟数据库打交道时,都是通过session来对要操作的对象取得关联,然后在进行操作,那么具体的过程是什么样的呢? 1.首先sessi ...
- Hibernate学习笔记二
Hibernate持久化类的编写规则 Hibernate是持久层的ORM映射框架,专注于数据的持久化工作.所谓持久化,就是将内存中的数据永久存储到关系型数据库中. 持久化类 一个java类与数据库表建 ...
- SpringBoot学习记录(二)
一. SpringBoot日志框架 SpringBoot:底层是Spring框架,Spring框架默认是用JCL(commons-logging): SpringBoot选用SLF4j和logback ...
- Hibernate学习笔记二:Hibernate缓存策略详解
一:为什么使用Hibernate缓存: Hibernate是一个持久层框架,经常访问物理数据库. 为了降低应用程序访问物理数据库的频次,从而提高应用程序的性能. 缓存内的数据是对物理数据源的复制,应用 ...
- Hibernate学习笔记二:常用映射配置
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6760895.html 一:单向一对一 常用唯一外键的方法来配置单向一对一关系. 1:实体关系 类A中有类B对象 ...
随机推荐
- 如何在Linux上使用VIM进行.Net Core开发
对于在Linux上开发.Net Core的程序员来说, 似乎都缺少一个好的IDE. Windows上有Visual Studio, Mac上有Visual Studio for Mac, 难道Linu ...
- (1)xcode基本设置和控制器等介绍
1.在IOS应用程序中,如果没有对storyBoard进和设置它的界面是非常大,有时候如果把元素放在右边会出现运行程序时超出显示界面而不显示的问题.为了解决这个问题我们通常会在用模拟器设置调试界面的时 ...
- ARP与RARP协议及arp脚本
1.什么是ARP与RARP协议 地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议. 在⽹络通讯时,源主机的应⽤程序知道 ...
- git入门大全
前言 以前写个一个git小结,但是实际上并不够用.于是结合实际工作上碰到的一些情况,参考了一些资料,重新总结了一下.目标是在日常工作中不用再去查阅其他的资料了,如果有什么遗漏或者错误的地方,请评论指出 ...
- Spyder项目创建,打开与使用
1.Spyder项目的创建 新建一个Spyder项目需要点击Spyder上方标签栏中的Projects中的New Project 2.Spyder项目的打开 Spyder项目文件夹必须 存在.spyp ...
- react入门之使用webpack搭配环境(一)
react入门之搭配环境(一) 如果你想直接上手开发,而跳过这些搭配环境的繁琐过程,推荐你使用官方的create-react-app命令 npm install -g create-react-app ...
- 一步一步学MySQL-一致性非锁定读和锁定读
一致性非锁定读(consistent nonlocking read) 一致性非锁定读是值InnoDB存储引擎通过多版本控制(multi versioning)的方式来读取当前执行时间数据库中的数据. ...
- 《Java从入门到放弃》入门篇:hibernate中的多表对应关系
hibernate中的对应关系其实就是数据库中表的对应关系, 就跟某些电影中的某些场景是一样一样滴. 比如可以是一男一女,还可以是一男多女, 更可以是多男一女,最后最后最后还可以是多男多女!!! 有些 ...
- 1>MSBUILD : cordova-build error BLD401: 错误: BLD00401: 找不到模块“C:\Users\z-pc\AppData\Roaming\npm\node_modules\vs-tac\app.js”。请转到“工具”-->“选项”-->“Apache Cordova 工具”-->“Cordova 工具”-->“清除 Cordova 缓存”,然后尝试重新生成
1>------ 已启动全部重新生成: 项目: BlankCordovaApp2, 配置: Debug Android ------1> Your environment has bee ...
- C# 实例练习——字符串处理(第三天)
1. 编写程序将IP地址分解后输出(将IP地址中的点(.)去掉,替换成空格符),如:132.123.4替换后为132 123 4. Console.WriteLine("请输入您电脑 ...