一、前言
发下牢骚,这段时间要做项目,又要学框架,搞得都没时间写笔记,但是觉得这知识学过还是要记录下。进入主题了
1.1、Hibernate简介
什么是Hibernate?Hibernate有什么用?
Hibernate是开放源代码的对象关系映射框架,用来把java的对象映射到数据库中的关系数据中,以便永久保存数据。
(简单说来,我们都知道Java语言是面向对象的语言,数据库是面向关系的,我们每次要往数据库中添加数据的时候,是不是每次都需要写SQL语句,进行CRUD,而优秀的开发人员
他们想出了一个非常好的映射框架,对象关系映射,也就是Hibernate,再透彻点说,就是你往对象添加数据的时候,数据库中的表就自动添加了数据了。是不是很神奇!)
Hibernate的作用:
1、管理Java类的对象到数据库的映射
2、提供数据查询
3、提高效率,减少开发人员使用SQL和jdbc处理数据的时间
4、Hibernate能实现数据持久化和对象关系的映射
1.2、理解Hibernate
笔者在前面有说过,学一个东西,首先要理解它是什么?有什么用?为何存在?
我们要了解Hibernate,首先要先去了解三层结构,三层结构我们都听过,但是,它和Hibernate有什么关系呢?
这里简要说明下三层结构
三层结构分为: 表示层,业务逻辑层,数据库层
表示层: 提供与用户进行交互的界面
业务逻辑层: 负责各种业务逻辑,提供对业务数据的保存,更新,删除和查询操作等
数据库层: 存放管理应用的持久化业务数据
而Hibernate,其实就是在业务逻辑层和数据库层中间,添加一个持久化层,这个持久化层是业务逻辑中分离出来的;这样,业务逻辑层通过持久化层,持久化层通过数据库层。
这里说了持久化,那么什么是持久化呢?
将数据(如内存中的对象)永久的保存到存储设备中,就是持久化,持久化的作用是将内存中的数据存储到关系型的数据库中。
说到底其实数据存放分为两种,一种是短期存放,就是存放在内存中,当你重新运行项目的时候,内存中的数据就消失,而另外一种就是永久存放。
理论就到这里。
1.2、简单例子——增删改查
1.2.1、搭建环境
新建java property,这里笔者的环境是Eclipse+Tomcat8.0,下载所需要的jar包,打包在这里,注意还得添加mysql的jar包,将包导入到项目中,具体操作
右键项目名——Properties——Java Build Path——Libraries——Add Library——User Library——User Libraryies——New,接下来就添加jar,然后起个名字,之后将导入到你的项目就可以了。
效果图:
1.2.2、新建配置文件
这里需要注意一点就是:在Hibernate中,默认配置文件的命名为hibernate.cfg.xml,所以我们配置文件命名一般就是这个,如果说你想要重新命名的话,那么在读取配置文件的时候就要指定相对路径。
在src下新建hibernate.cfg.xml
内容有连接数据库,指定读取实体类的配置信息,还有在控制台输出SQL语句等数据;配置文件中的dtd文件,在hibernate-core-4.2.4.Final.jar中的org.hibernate中的最后就能看到hibernate-configuration-3.0.dtd,打开该文件,然后将下面的dtd文件限制加到xml配置文件中即可。注意:笔者这里使用的是hibernate 4.2的版本。但是一般都在核心包里面的。
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
新建实体类:Student.java
package com.hibernate.hellos; public class Student { private int sid; private String sname; private int sage; public int getSid() { return sid; } public void setSid(int sid) { this.sid = sid; } public String getSname() { return sname; } public void setSname(String sname) { this.sname = sname; } public int getSage() { return sage; } public void setSage(int sage) { this.sage = sage; } }