Hibernate框架入门(一)

                                  第一章 hibernate框架是什么

框架是用来提升开发效率的,封装好了一些功能,我们需要使用这些功能时调用即可,不需要再手动实现,所以框架可以理解为一个半成品的项目,只需要懂得如何驾驭这些功能即可。

使用hibernate数据库可以以面向对象的方式来完成,不需要书写sql语句。hibernate是一个对象关系映射。orm分成四级,hibernate属于四级,也就是完全面向数据库操作的框架,mybatis属于二级,dbutils属于第一级。

                                    第二章 hibernate框架的配置

2.1 导包

首先是数据库驱动包,然后是hibernate所需的包。

2.2创建数据库准备表

随便搞个表即可。

2.3书写orm元数据(对象与表的映射配置文件)

首先导入约束

然后配置表与实体对象的关系

首先是hibernate-mapping根元素,在根元素中有一属性为package,若将包名写上后,在其下的内容即可不写包名前缀。

类名customer即可不写前缀。

class元素用来配置与表的对应关系,name是完整类名,table是数据库表名。

id元素用来配置主键映射的属性,name填写主键对应属性名,column(可选)填写表中的主键列名,默认是使用属性名。

generator元素是主键生成策略。

property元素是除id之外的普通属性的映射,name填写属性名,column填写列名。type(可选):填写列(属性)的类型,hibernate会自动检测实体的属性类型,但是自己写也可以,每个类型有三种填法,java类型、hibernate类型、数据库类型。

java类型的填写:

hibernate类型的填写:

数据库类型的填写:

自动指定挺好,建议不写。not-null(可选):配置该属性(列)是否不能为空.默认值:false。length(可选):配置数据库中列的长度,默认值是数据库类型的最大长度。

2.4书写主配置文件

主配置文件的位置只能在src下,并且必须命名为hibernate.cfg.xml。

依次打开文件,找到etc下的hibernate.properties文件

必选属性配置(5个):

因为用的是mysql数据库所以在文件中搜索mysql,将其粘贴到主配置文件中进行配置。

url中的三条斜杠代表的是本地的意思。

分别是数据库驱动,数据库url,数据库连接用户名,数据库连接密码,数据库方言。

数据库方言:比如之前分页用的limit就是方言,在Oracle中将不能使用,在不同的数据库中,sql语法略有区别,指定方言可以让hibernate框架在生成sql语句时,针对数据库的方言生成。

sql99标准:DDL :定义语言(库表的增删改查)      DML :操纵语言(增删改查)   DCL:控制语言 (事物权限)

注意:mysql在选择方言时要选择最短的方言,因为其针对不同的引擎,所以有几个不同的。

可选配置:

在文件中搜索show,并将下图内容复制到主配置文件中。

表示将使用的sql语句格式化(语法缩进)打印出来。

在文件中搜索hbm2,并将下图内容复制到主配置文件中。

表示自动导出表结构,自动建表,当数据库没表时会自动创建。

create:是自动建立表,每次框架运行都会创建新的表,原有的表将会被覆盖,表数据丢失。(开发环境中测试使用)

drop:自动创建表,每次框架运行结束后都会自动删除。

update(推荐使用):自动创建表,如果有将不会在自动生成,如果表有变动,自动更新表(不会删任何数据)。

validate:校验,不自动生成表,每次启动会校验数据库表是否正确,校验失败会抛出异常。

元数据引入配置:

引用orm元数据,注意填写src下的路径。

2.5书写代码测试

运行结果:

                                   第三章 hibernate框架的API

3.1 Configuration对象

Configuration功能:配置加载类,用于加载主配置,orm元数据(orm元数据是对象与数据库表的那个映射文件)加载。

3.2 SessionFactory对象

SessionFactory对象:用于创建操作数据库核心对象session对象的工厂,简单说功能就是创建session对象。

注意:1.sessionfactory 负责保存和使用所有配置信息,消耗内存较大。

2.sessionfactory属于线程安全的对象设计。

结论:保证在web项目中只创建一个sessionfactory

3.3 Session对象

session对象的功能:session往往是一次会话,在这里表达hibernate框架与数据库之间的连接(会话).session类似于jdbc年的connection对象。还可以完成数据库中数据的增删改查。session是hibernate操作数据库的核心对象。

3.4 Transaction对象

transaction对象用来操作事务

3.5 书写代码进行测试

3.5.1 增

运行结果:

3.5.2 查

3.5.3 改

3.5.4 删

检查发现数据已删

3.6 抽取工具类进行操作

猜你喜欢

转载自blog.csdn.net/q610376681/article/details/80905914