Hibbernate详解

这里先做一个简单的入门,后面有详解

记住图解原理:

这里只是没有整合spring等项目使用的hibernate的使用详解。

一、Hibernate简介

 

1、Hibernate在开发中所处的位置

 

2、ORM映射

 

Object :面向对象领域的

Relational:关系数据库领域的

Mapping:映射

 

mapping:就是将object和Relational联系起来。

 

二、搭建开发环境

1、下载Hibernate的资源包

 

前往官网下载:http://hibernate.org/

创建一个java项目。命名hibernate01

2、准备Hibernate运行的必备jar包

前提准备:数据库的驱动jar包

hibernate的必须jar包

共11个jar包

 

其中如何添加到项目中,有两种方法,这里将其一。可以在项目中建立一个lib文件夹。然后右键 build path 之后 add puild path 即可。

3、建立hibernate配置文件,配置数据源信息

 

在classpath下(根路径),建立一个默认名称为hibernate.cfg.xml配置文件(许多开发项目中未必见到hibernate.cfg.xml这个名称的xml文件,后期做详解)

 

 
  1. <?xml version="1.0" encoding="UTF-8"?>

  2. <!-- 拷贝要引入的dtd约束。该dtd文件在hibernate的核心jar包的 org/hibernate/hibernate-configuration-3.0.dtd-->

  3. <!DOCTYPE hibernate-configuration PUBLIC

  4. "-//Hibernate/Hibernate Configuration DTD 3.0//EN"

  5. "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

  6. <hibernate-configuration>

  7. <!-- 配置一个Session的工厂。 负责生产Session对象

  8. Session对象就相当于JDBC中的Connection和Statement的组合体-->

  9. <session-factory>

  10. <!-- 这些key value 的位置在:hibernate-distribution-3.6.10.Final\project\etc\hibernate.properties中定义着-->

  11. <!-- 配置连接数据库的基本信息。细节:他们都是以hibernate开头的。hibernate写不写都行。 -->

  12. <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>

  13. <property name="connection.url">jdbc:mysql://localhost:3306/student_database</property>

  14. <property name="connection.username">root</property>

  15. <property name="hibernate.connection.password">123456</property>

  16. <!-- 配置数据库的方言 -->

  17. <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>

  18. <!-- 配置显示SQL语句 -->

  19. <property name="hibernate.show_sql">true</property>

  20. <!-- 格式化输出SQL语句 -->

  21. <property name="hibernate.format_sql">true</property>

  22. <!-- 自动生成ddl语句

  23. SQL:DDL数据定义语言 DML数据操作语言 DQL数据查询语言 Transaction PL事务处理语言 DCL数据控制语言 Cursor CL指针控制语言

  24. create-drop:创建表结构,只要SessionFactory工厂一结束,表结构没了

  25. create:创建表结构,每次执行都重新创建

  26. update:每次检查表结构的变化,如果不一致,更新表结构

  27. validate:检查表结构

  28. -->

  29. <property name="hibernate.hbm2ddl.auto">update</property>

  30. </session-factory>

  31. </hibernate-configuration>

 

其中hibernate-distribution-3.6.10.Final是下载下来的hibernate压缩包解压缩后的目录。(注意这里的url后面的/student是数据库名称,下面我用的是student_database数据库做的案例。若要重复我的操作请注意这点)

基本数据源连接的配置要根据你安装的mysql 数据库,或者其它数据库的定义而进行相关的配置。如果还是不懂,请学习jdbc相关内容。

到这环境已经准备完毕。开始入门案例。

 

三、第一个入门案例(把学生信息保存到数据库)

1、建立数据模型(实体类)

前提:数据库已经创建表好表结构了。sql语句见下图

注意:要根据数据库的设计存储结构一一对应。

 

2、建立实体类和数据库表的对应关系

 

在实体类所在的包中,建立一个“类名.hbm.xml”名称(不是必须的后期详解)的映射文件。

 

 

3、编写保存学生信息的代码

然后运行发现抛出错误

注意运行需要用log4j.properties。因为hibernate需要此文件

原因:我们虽然写了mapping映射文件,我们并没有告诉hibernate,实体javabean和表的映射 ,hibernate不知道,如何让他知道呢?那就是将他们联系起来。

 

配置映射关系:就是将主配置文件和映射文件建立关系

 

 

 
  1. <?xml version="1.0" encoding="UTF-8"?>

  2. <!-- 拷贝要引入的dtd约束。该dtd文件在hibernate的核心jar包的 org/hibernate/hibernate-configuration-3.0.dtd-->

  3. <!DOCTYPE hibernate-configuration PUBLIC

  4. "-//Hibernate/Hibernate Configuration DTD 3.0//EN"

  5. "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

  6. <hibernate-configuration>

  7. <!-- 配置一个Session的工厂。 负责生产Session对象

  8. Session对象就相当于JDBC中的Connection和Statement的组合体-->

  9. <session-factory>

  10. <!-- 这些key value 的位置在:hibernate-distribution-3.6.10.Final\project\etc\hibernate.properties中定义着-->

  11. <!-- 配置连接数据库的基本信息。细节:他们都是以hibernate开头的。hibernate写不写都行。 -->

  12. <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>

  13. <property name="connection.url">jdbc:mysql://localhost:3306/student_database</property>

  14. <property name="connection.username">root</property>

  15. <property name="hibernate.connection.password">123456</property>

  16. <!-- 配置数据库的方言 -->

  17. <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>

  18. <!-- 配置显示SQL语句 -->

  19. <property name="hibernate.show_sql">true</property>

  20. <!-- 格式化输出SQL语句 -->

  21. <property name="hibernate.format_sql">true</property>

  22. <!-- 自动生成ddl语句

  23. SQL:DDL数据定义语言 DML数据操作语言 DQL数据查询语言 Transaction PL事务处理语言 DCL数据控制语言 Cursor CL指针控制语言

  24. create-drop:创建表结构,只要SessionFactory工厂一结束,表结构没了

  25. create:创建表结构,每次执行都重新创建

  26. update:每次检查表结构的变化,如果不一致,更新表结构

  27. validate:检查表结构

  28. -->

  29. <property name="hibernate.hbm2ddl.auto">update</property>

  30. <!-- 请注意:配置映射关系 -->

  31. <mapping resource="net/gbicc/domain/Student.hbm.xml" />

  32. </session-factory>

  33. </hibernate-configuration>


 

 

然后再次执行结果成功了(数据库中对应的表有内容了)

 

4、案例的执行过程

 

其它问题详见下一章

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值