Hibernate 框架基本知识
QTP:Quick Test Pressional
1,Hibernate是一个优秀的java持久化层解决方案,是当今主流的对象-关系映射(ORM,ObjectRelationalMapping)工具;就是能实现ORM(对象-关系映射)的框架;有时也简称框架,技术,解决方案等
2,瞬时状态:程序运行时,有些数据保存在内存中,当程序退出后,数据就不存在了,这些数据称为瞬时的;
持久状态:在使用软件时,有些数据,在程序退出后,还以文件的形式保存在硬盘中,则这些数据的状态就是持久的;数据存在数据库中,也是持久的;
持久化:将程序中的数据在瞬时状态和持久状态间转换的机制;
JDBC就是一种持久化机制,将程序数据直接保存成文件也是持久化机制的一种实现;
持久化通常是将程序数据保存在数据库中或是将数据库中的数据读取出来;
3,ORM简介:
ORM(对象关系映射):能在对象和关系型数据库间进行数据转换的机制
瞬时数据,也就是程序运行时放在内存中的数据,是以对象的形式存在的;
持久的数据,多是保存在数据库中,或是从数据看库中读取出来以对象的形式封装,
持久化工作:以面向对象的形式处理数据,以关系型数据的形式存到数据库中;所以需要一种能在两者之间进行数据转换的机制称为ORM(对象-关系映射机制);
Hibernate框架:能实现ORM的框架;
Hibernate:是一个优秀的Java持久化层解决方案,是当今主流的对象-关系映射工具;
Hibernate:框架对JDBC进行了封装,简化了数据访问层;
Hibernate:可以用到任何JDBC的场合中,既可以在java客户端程序中使用,也可以在Servlet或JSP的web应用中使用;使用XML配置文件来存储映射信息;
HIbernate的框架下载:官方主页是www.hibernate.org;需要的jar包可以到官网下载;
使用IDE(Integrated Development Environment)集成开发环境myeclipse/eclipse;
首先下载:hibernate-distribution-3.3.2.GA-dist.zip;解压之后,用到的是hibernate3.jar文件和lib文件夹里的所有jar文件;
但是有些要用的jar包文件是开源的需要单独下载如下:放到WEB-INF目录下的lib目录里面;
common-lang-2.3.jar ;
slf4j-api-1.5.8jar ;
log4j-1.2.16.jar ;
ojdbc14.jar ; (如果连接Oracle数据库还要用到的,但是不用下载,可以在Oracle数据库的安装目录下找到);
创建一个Java项目,项目名称是hibernate,项目下的目录结构有:
1)src:源文件的存放目录;(根目录)
2)WebRoot下的WEB-INF目录(classes和lib两个目录)是存放编译后的文件和第三方jar包的目录;classes里放的是编译后的文件,lib里放的是第三方jar包;创建好项目后,将所有需要的jar包都放到lib目录下;四个单独下载的jar包也放到lib里面,除了这4个,其他的就是hibernate自动获取的;
配置hibernate:
1)首先加载jar包:将lib目录下的jar包都加载到项目中,右键点击-build path然后configuration build path ;
2)项目的根目录src下创建一个名为hibernate.cfg.xml的文件,是hibernate的配置文件,其主要存放连接数据库 的配置信息,主要包括数据库的用户名,密码,jdbc驱动程序的位置,还可以根据需要添加其他的配置信息;
4,eclipse是开源的,myeclipse是商业版本,是eclipse的一个插件,内部集成了主流框架的内在支持,但占用空间大;
5,搭建Hibernate项目环境:
1)加载hibernate类库和依赖库
2)创建hibernate.cfg.xml配置文件(配置文件要放在src目录下),指定数据库连接信息及其映射文件路径;
driver:oracle.jdbc.driver.OracleDriver
url:jdbc.oracle.thin@10.0.0.63:1521.orcllib
3)创建持久化类和映射文件
Login.java Login.hbm.xml
在hibernate.cfg.xml中指定映射文件路径,<mapping resource="com/test/Login.hbm.xml"/>
4)创建Hibernate连接工具类
Hibernate主要接口和类:Hibernate最核心的jar包是hibernate3.jar
Configruration
SessionFactory (会话工厂类): DriverManager
Session:Connection
Transaction
Query :Statement 和 PrepareStatement
在配置(2)中的hibernate配置文件时,不需要一步一步的去写,而是到已有项目中复制一份hibernate.cfg.xml到本项目中,然后加以修改,如果没有已有项目,就到网上下载一份,然后粘贴到项目中,加以修改;复制到目录是src目录;
配置文件中的相关信息:
<property name="connection.pool_size">2</property> //代表是关于数据库连接的配置,数据库连接池的连接数是2
<property name="dialect" >org.hibernate.dialect.HSQLDialect</property> //数据库方言,针对不同的数据库版本将指令转换为对应的sql语句
<property name="show_sql">true</property> //是否是在控制台显示sql语句;
<property name="hbm2ddm.auto">create</property> //由持久化类得到数据库表
<mapping resource="">//指定了映射文件的路径;
根据需要,有时只需要将基础的信息设置好即可:
<property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="connection.url">jdbc.oracle.thin@10.0.0.63:1521.orcllib</property>
<property name="connection.username">admin</property>
<property name="connection.password">admin</property>
Hibernate 框架基本知识的更多相关文章
- Hibernate框架(未完待续······)
作为SSH三大框架之一的Hibernate,是用来把程序的Dao层和数据库打交道用的,它封装了JDBC的步骤,是我们对数据库的操作更加简单,更加快捷.利用Hibernate框架我们就可以不再编 ...
- Hibernate框架(一)——总体介绍
作为SSH三大框架之一的Hibernate,是用来把程序的Dao层和数据库打交道用的,它封装了JDBC的步骤,是我们对数据库的操作更加简单,更加快捷.利用Hibernate框架我们就可以不再编写重复的 ...
- Hibernate框架(一)总结介绍
作为SSH三大框架之一的Hibernate,是用来把程序的Dao层和数据库打交道用的,它封装了JDBC的步骤,是我们对数据库的操作更加简单,更加快捷.利用Hibernate框架我们就可以不再编写重复的 ...
- Hibernate框架之Criteria查询 和注解(重点☆☆☆☆☆,难点☆☆☆)
写好一篇博客,不是容易的事.原因是:你要给自己以后看的时候,还能看懂,最重要的是当别人看到你的博客文章的时候,也一样很清楚的明白你自己写的东西.其实这也是一种成就感!! 对于每一个知识点,要有必要的解 ...
- 深入浅出学习Hibernate框架(一):从实例入手初识Hibernate框架
这篇博客是hibernate学习的第一篇,主要简介hibernate框架,之后简单说一下hibernate的文件夹结构,最后写一个简单的hibernate实例.通过这三步来简单的认识一下hiberna ...
- Hibernate框架进阶(下篇)之查询
导读 Hibernate进阶篇分为上中下三篇,本文为最后一篇,主要内容是Hibernate框架的查询,主要包括hql语句查询,criteria查询以及查询策略的选择. 知识框架 Hibernate查询 ...
- 深入浅出学习Hibernate框架(二):JDBC基础操作
上篇博客<深入浅出学习Hibernate框架(一):从实例入手初识Hibernate框架>简单介绍了一下Hibernate框架,并且举了一个实例来了解Hibernate.这篇博客将介绍JD ...
- 基于Maven的S2SH(Struts2+Spring+Hibernate)框架搭建
1. 前言 基于Maven的开发方式开发项目已经成为主流.Maven能很好的对项目的层次及依赖关系进行管理.方便的解决大型项目中复杂的依赖关系.S2SH(Struts2+Spring+Hibernat ...
- Sword框架解析——知识采集流程页面初始化
Sword框架解析——知识采集流程页面初始化 Sword框架解析知识采集流程页面初始化 问题解答流程采集新增页面初始化 1后台t_xt_gnzy表和BLH类 2BLH类的写法前台目录树代码 3登录系统 ...
随机推荐
- IOS学习之路二十三(EGOImageLoading异步加载图片开源框架使用)
EGOImageLoading 是一个用的比较多的异步加载图片的第三方类库,简化开发过程,我们直接传入图片的url,这个类库就会自动帮我们异步加载和缓存工作:当从网上获取图片时,如果网速慢图片短时间内 ...
- 对象池化技术 org.apache.commons.pool
恰当地使用对象池化技术,可以有效地减少对象生成和初始化时的消耗,提高系统的运行效率.Jakarta Commons Pool组件提供了一整套用于实现对象池化的框架,以及若干种各具特色的对象池实现,可以 ...
- 基于支持向量机的车牌识别-- opencv2.4.7+vs2012环境搭建
环境说明: 环境: OS:win7 sp1 opencv:2.4.7 vs2012 搭建过程: PS:机器上原本已安装vs2012 1.opencv 1.1 下载,直接双击安装即可. 此处我的安装位置 ...
- 简单实现TCP下的大文件高效传输
简单实现TCP下的大文件高效传输 在TCP下进行大文件传输不象小文件那样直接打包个BUFFER发送出去,因为文件比较大所以不可能把文件读到一个BUFFER发送出去.主要有些文件的大小可能是1G,2G或 ...
- PostgreSQL数据的导出导入 save your data!
PostgreSQL数据的导出导入 导出PostgreSQL数据库中的数据: $ pg_dump -U postgres -f mydatabase.sql mydatabase 导入数据时首先创 ...
- hdu 1671 Phone List(字典树)
知道bug的时候我眼泪掉下来... 我的第一道字典树,看了字典树的注意事项和实现方式,我写这道题的时候格外认真,就是奔着1A去的.结果这是几A来着? 第一遍写的时候提交MLA,我看了一下,是因为我释放 ...
- phper談談最近重構代碼的感受(3)
这篇文章本来该和同一系列的文章一起写的,因为最近换工作的缘故滞后了.重构是非常细碎的叠加,有很多值得注意的地方. 1.消灭过多的临时变量. 有时候过多的无意义的临时变量,真心让人抓狂,特别是过了比较长 ...
- js获取菲波那契数列的第N个元素
菲波那契数列,大致可以描叙为a(n) = a(n-1) + a(n-2) (a >=2).类似于这样[1, 1, 2, 3, 5, 8, 13 ...]. 具体大家可以百度一下.下面我们来用js ...
- 结构-行为-样式-Css Div 居中的一个最佳实践
最近在做项目的时候,经常会有需要各种居中的情况,现在分享一个最佳实践. <div class="success-bottom"> <div class=" ...
- ORACLE查询语句
--建表FAMILYINF CREATE TABLE FAMILYINFO( FNO NUMBER CONSTRAINT FC001 PRIMARY KEY,--把字段fno约束为主键 ...