前言
本博文主要讲解介绍Hibernate框架,ORM的概念和Hibernate入门,相信你们看了就会使用Hibernate了!
什么是Hibernate框架?
Hibernate是一种ORM框架,全称为 Object_Relative DateBase-Mapping,在Java对象与关系数据库之间建立某种映射,以实现直接存取Java对象!
为什么要使用Hibernate?
既然Hibernate是关于Java对象和关系数据库之间的联系的话,也就是我们MVC中的数据持久层->在编写程序中的DAO层…
首先,我们来回顾一下我们在DAO层写程序的历程吧:
- 在DAO层操作XML,将数据封装到XML文件上,读写XML文件数据实现CRUD
- 在DAO层使用原生JDBC连接数据库,实现CRUD
- 嫌弃JDBC的Connection\Statement\ResultSet等对象太繁琐,使用对原生JDBC的封装组件-->DbUtils组件
我们来看看使用DbUtils之后,程序的代码是怎么样的:
public class CategoryDAOImpl implements zhongfucheng.dao.CategoryDao { @Override public void addCategory(Category category) { QueryRunner queryRunner = new QueryRunner(Utils2DB.getDataSource()); String sql = "INSERT INTO category (id, name, description) VALUES(?,?,?)"; try { queryRunner.update(sql, new Object[]{category.getId(), category.getName(), category.getDescription()}); } catch (SQLException e) { throw new RuntimeException(e); } } @Override public Category findCategory(String id) { QueryRunner queryRunner = new QueryRunner(Utils2DB.getDataSource()); String sql = "SELECT * FROM category WHERE id=?"; try { Category category = (Category) queryRunner.query(sql, id, new BeanHandler(Category.class)); return category; } catch (SQLException e) { throw new RuntimeException(e); } } @Override public List<Category> getAllCategory() { QueryRunner queryRunner = new QueryRunner(Utils2DB.getDataSource()); String sql = "SELECT * FROM category"; try { List<Category> categories = (List<Category>) queryRunner.query(sql, new BeanListHandler(Category.class)); return categories; } catch (SQLException e) { throw new RuntimeException(e); } } }
其实使用DbUtils时,DAO层中的代码编写是很有规律的。
- 当插入数据的时候,就将JavaBean对象拆分,拼装成SQL语句
- 当查询数据的时候,用SQL把数据库表中的列组合,拼装成JavaBean对象
也就是说:javaBean对象和数据表中的列存在映射关系!如果程序能够自动生成SQL语句就好了….那么Hibernate就实现了这个功能!
简单来说:我们使用Hibernate框架就不用我们写很多繁琐的SQL语句,从而简化我们的开发!
ORM概述
在介绍Hibernate的时候,说了Hibernate是一种ORM的框架。那什么是ORM呢?ORM是一种思想
- O代表的是Objcet
- R代表的是Relative
- M代表的是Mapping
ORM->对象关系映射….ORM关注是对象与数据库中的列的关系
这里写图片描述