您的位置:首页 > 其它

maven构建hibernate项目及其详解

2017-07-20 19:45 495 查看

一、WEB的三层结构

1.1 JavaEE 三层结构

Web层:struts 框架

Service层:spring 框架

Dao层:hibernate 框架,对数据库进行 crud 操作

1.2 MVC思想

M:模型

V:视图

C:控制器

二、Hibernate概述

2.1 框架

原先框架是建筑学上的一个概念,而在程序上,是为了减少一部分代码来实现相同的功能而提出来的构想。

2.2 Hibernate

是属于javaEE中的dao 层框架, 具有简单易学、灵活性强、拓展性强等特点,能够大大简化程序的代码量,提供工作效率。

他是一个开放源代码的ORM(对象关系映射)框架,对JDBC进行了轻量级的对象封装,使得Java开发人员可以使用面向对象的思想来操作数据库。不需要写复杂的JDBC代码,不需要写SQL语句来实现。

2.2.1 hibernate版本:

1)3.X版本:原来版本

2)4.X版本:过渡版本

3)5.X版本:现在大量使用的版本



2.3 ORM思想

全称是Object Relational Mapping:对象关系映射。

2.3.1文字描述:

在实体类与表进行对应,让实体类中的属性与字段进行对应,不需要直接操作数据表,而只需要操作对对应的实体类的对象就能够达到操作数据表的目的

2.3.2 图解描述



我们将使用配置文件的方式来构建如上的对应关系

三、HIbernate入门

3.1 开发环境搭建

安装和当前Eclipse版本匹配的Hibernate插件或者JBoss插件:

  在Eclipse中点击Help —> Eclipse Marketplace,搜索JBoss Tools,点击install,选择要安装的JBoss插件,一路默认即可,安装完后重启Eclipse。

  重启Eclipse后,右键New -> Other,输入hibernate提示如下信息表明插件安装成功



第一步:导入jar包







我们从官方download的jar包,lib文件夹下required文件夹中所有的jar包都必须导入。同时我们还需要导入下面的包



同时,因为使用hibernate的时候有日志信息输出,但是hibernate本身是没有日志信息输出的相关jar包的,所以我们还需要导入其他的相关jar包



本人使用maven进行项目的构建,其jar包的导入使用maven来管理依赖,可以省去麻烦的jar包寻找和导入过程。



第二步:创建实体类(包括set和get方法)



第三步:创建是数据库并配置实体类和数据库表的对应关系

Hibernate在使用的时候,我们不需要创建手动创建表,hibernate自动完成。配置实体类和数据库表的映射关系的时候,使用配置文件来实现 创建xml格式的配置文件映射配置文件的格式没有固定的要求,但是我们通常建议在实体类所在的包里面来创建。本人使用eclipse插件来创建对应的hbm.xml文件。



使用插件创建完成之后得到的映射文件为:



我们可以注意到,id下面有一个<generator class = "主键生成策略">其主键生成策略包括以下几种:

1) assigned

主键由外部程序负责生成,在 save() 之前指定。

2) hilo

通过hi/lo 算法实现的主键生成机制,需要额外的数据库表或字段提供高位值来源。

3) seqhilo

与hilo 类似,通过hi/lo 算法实现的主键生成机制,需要数据库中的 Sequence,适用于支持 Sequence 的数据库,如Oracle。

4) increment

主键按数值顺序递增。此方式的实现机制为在当前应用实例中维持一个变量,以保存着当前的最大值,之后每次需要生成主键的时候将此值加1作为主键。这种方式可能产生的问题是:不能在集群下使用。

5) identity

采用数据库提供的主键生成机制。如DB2、SQL Server、MySQL 中的主键生成机制。

6) sequence

采用数据库提供的 sequence 机制生成主键。如 Oralce 中的Sequence。

7) native

由 Hibernate 根据使用的数据库自行判断采用 identity、hilo、sequence 其中一种作为主键生成方式。

8) uuid.hex

由 Hibernate 基于128 位 UUID 算法 生成16 进制数值(编码后以长度32 的字符串表示)作为主键。

9) uuid.string

与uuid.hex 类似,只是生成的主键未进行编码(长度16),不能应用在 PostgreSQL 数据库中。

10) foreign

使用另外一个相关联的对象的标识符作为主键。

第四步:创建hibernate的核心配置文件

核心配置文件格式:名称和位置是固定的 (使用插件)

配置数据库信息



3、配置hibernate信息



注:请严格按照这样的步骤进行项目的构建,因为这样能够保证你在写配置文件的时候可以直接使用 Alt + / 快捷调出想要的各个属性名及其值,如果没按照这样的步骤进行,那么很有可能你不能直接生成配置文件或者使得你必须花费大量的时间输入配置信息很影响效率

3.2 添加功能实现(运行调试)

第一步:创建session工厂



第二步:编写运行测试类



第三步:查看结果



由此可见,程序运行是成功的,mysql中成功生生了对应的数据表(没有提前创建表,程序自动生成的)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: