Hibernata

Hibernate入门这一篇就够了

前言

本博文主要讲解介绍Hibernate框架,ORM的概念和Hibernate入门,相信你们看了就会使用Hibernate了!

什么是Hibernate框架?

Hibernate是一种ORM框架,全称为 Object_Relative DateBase-Mapping,在Java对象与关系数据库之间建立某种映射,以实现直接存取Java对象

为什么要使用Hibernate?

既然Hibernate是关于Java对象和关系数据库之间的联系的话,也就是我们MVC中的数据持久层->在编写程序中的DAO层...

首先,我们来回顾一下我们在DAO层写程序的历程吧:

  1. 在DAO层操作XML,将数据封装到XML文件上,读写XML文件数据实现CRUD
  2. 在DAO层使用原生JDBC连接数据库,实现CRUD
  3. 嫌弃JDBC的Connection\Statement\ResultSet等对象太繁琐,使用对原生JDBC的封装组件-->DbUtils组件

我们来看看使用DbUtils之后,程序的代码是怎么样的:

public class CategoryDAOImpl implements zhongfucheng.dao.CategoryDao{ @Override publicvoidaddCategory(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关注是对象与数据库中的列的关系

这里写图片描述


Hibernate快速入门

学习一个框架无非就是三个步骤:

  • 引入jar开发包
  • 配置相关的XML文件
  • 熟悉API

引入相关jar包

我们使用的是Hibernate3.6的版本

hibernate3.jar核心 + required 必须引入的(6个) + jpa 目录 + 数据库驱动包

这里写图片描述

编写对象和对象映射

编写一个User对象->User.java

public class User { private int id; private String username; private String password; private String cellphone; //各种setter和getter }

编写对象映射->User.hbm.xml。一般它和JavaBean对象放在同一目录下

我们是不知道该XML是怎么写的,可以搜索一下Hibernate文件夹中后缀为.hbm.xml。看看它们是怎么写的。然后复制一份过来

这里写图片描述


<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <!--  This mapping demonstrates content-based discrimination for the table-per-hierarchy mapping strategy, using a formula discriminator.--> <hibernate-mapping package="org.hibernate.test.array"> <class name="A" lazy="true" table="aaa"> <id name="id"> <generator class="native"/> </id> <array name="bs" cascade="all" fetch="join"> <key column="a_id"/> <list-index column="idx"/> <one-to-many class="B"/> </array> </class> <class name

转载于:https://www.cnblogs.com/Silencewj/p/11441189.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值