1.Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装

2.是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。

3.起源:2001年,澳大利亚墨尔本一位名为Gavin King的27岁的程序员,上街买了一本SQL编程的书,他厌倦了实体bean,认为自己可以开发出一个符合对象关系映射理论,并且真正好用的Java持久化层框架,因此他需要先学习一下SQL。这一年的11月,Hibernate的第一个版本发布了。

3.hibernate是完全的orm框架的一种(使用hql)...

4.创建maven工程,添加需要的依赖,在maven工程的pom.xml中添加两个依赖

<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.3.11.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-ehcache</artifactId>
<version>4.3.11.Final</version>
</dependency>

5.在src/main/java下创建:hibernate.cfg.xml主配置文件配置如下

  

<session-factory>

  <!--配置数据库相关参数-->
  <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
  <property name="hibernate.connection.url">jdbc:mysql:///hibernate?characterEncoding=UTF-8</property>
  <property name="hibernate.connection.username">root</property>
  <property name="hibernate.connection.password">ou134568</property>

  <!-- 方言选择,根据不同的数据库 -->
  <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
  <property name="show_sql">true</property><!-- 打印sql语句 -->

  <!-- 加入映射文件,javabean的映射配置文件 -->
  <!-- <mapping resource="po/User.hbm.xml"></mapping> -->
  <mapping resource="onetomany/Clazz.hbm.xml"></mapping>
  <mapping resource="onetomany/Students.hbm.xml"></mapping>
</session-factory>

6.在测试类中,首先读取主配置文件/生成服务注册器/生成sessionfactory

  我们可以写成一个工具类,这样我们只要调用openSession()就可以了...

  org.hibernate.Session本质上是对java.sql.Connection的封装

  

  public class DBUtils {
     private static Configuration CGF;
     private static SessionFactory FACTORY;
      static{
      //读取主配置hibernate.cfg.xml文件
      CGF = new Configuration().configure();
      //生成服务注册器
      ServiceRegistry sr = new StandardServiceRegistryBuilder()
      .applySettings(CGF.getProperties()).build();
      //由服务注册器来生成sessionfactory
      FACTORY = CGF.buildSessionFactory(sr);
      }

      public static Session openSession(){
      return FACTORY.openSession();
      }
      }

7.测试方法--根据主配置文件和映射文件生成对应的表,把所有的有映射配置文件的实体类生成对应的表,如果已经存在则不生成

    public void test01(){

    //读取hibernate.cfg.xml配置文件
    Configuration cfg = new Configuration().configure();
    //根据主配置文件--映射文件生成对应的表
    SchemaExport export = new SchemaExport(cfg);
    //生成表
    export.create(true,true);

     }

8.测试方法,将一个对象持久化(存入数据库)

    public void test02(){

    Session session = DBUtils.openSession();

    session.beginTransaction();
    Clazz clazz = new Clazz();
    clazz.setClazzName("一年级");

    Students student01=new Students();
    student01.setStudentName("王五");
    student01.setClazz(clazz);

    Students student02=new Students();
    student01.setStudentName("张三");
    student01.setClazz(clazz);
    

    //保存,要先保存clazz.否则会异常

    session.save(clazz);
    session.save(student01);
    session.save(student02);
    

    //提交事务并关闭session
    session.getTransaction().commit();
    session.close();

    }

转载于:https://www.cnblogs.com/ou134568/p/6859673.html

hibernate入门知识-01相关推荐

  1. JSP网站开发之HTML入门知识及常用标记符 (一)

    最近发生的事情很多,其中一件很重要的事情就是:学生生涯的结束,教学生涯的开始.我准备下个月写一篇总结研究生生涯的文章,包括自己放弃互联网选择回家教书.找工作经历.项目和毕业设计的各种感想.很荣幸XB七 ...

  2. C语言入门知识1(零基础新手适用)

    C语言入门知识1(零基础新手适用) #程序语言 1.机器语言 机器语言是低级语言,是用01码来编写的二进制代码语言 2.汇编语言 汇编语言也是低级语言,是用英文字母和符号串编写的 3.高级语言 由于汇 ...

  3. React 全家桶入门教程 01

    React 全家桶入门教程 01 前面是基础课程(难度小,略过),后面是案例 目的 巩固react基础知识,查漏补缺(熟悉的部分快进) 学习相关的库的使用 https://study.163.com/ ...

  4. SSH Chapter 04 Hibernate 入门

    SSH Chapter 04 Hibernate入门 笔记 Hibernate 知识体系图: 本章目标: 理解类和表的映射关系 掌握单表的增删改 掌握按主键查询 理解持久化对象的状态及其转换 技术内容 ...

  5. Hibernate入门4.核心技能

    Hibernate入门4.核心技能 20131128 代码下载 链接: http://pan.baidu.com/s/1Ccuup 密码: vqlv 前言: 前面学习了Hibernate3的基本知识, ...

  6. 入门篇-01什么是微服务?

    入门篇-01什么是微服务? 01 | 单体应用 1.应用技术栈 1)早期为:LAMP(Linux+Apache+MySQL+PHP)和 MVC(Spring+iBatis/Hibernate+Tomc ...

  7. hibernate入门干货

    @hibernate入门干货 一.Hibernate基础知识 纯干货,没有任何添加素 1.什么是Hibernate? Hibernate是一个开放源代码的对象关系映射框架,它对 JDBC进行了非常轻量 ...

  8. 敲代码时如何快速移动光标_数控加工中心编程入门知识,半小时快速入门!

    数控加工中心编程入门知识汇总,教你半小时快速入门!不管做哪一行,想要成为个中高手,必然要经得住时间的历练,自身要不断提高工作能力,要想成为一个数控高手,从大学毕业进工厂起,最起码需要6年以上的时间.既 ...

  9. 【车载开发系列】UDS诊断服务入门知识

    [车载开发系列]UDS诊断服务入门知识 [车载开发系列]UDS诊断服务入门知识 [车载开发系列]UDS诊断服务入门知识 一.UDS做什么用 二.为什么需要UDS 三.何时会使用到UDS 四.如何诊断汽 ...

最新文章

  1. 使用工具类创建一个线程池
  2. 固态+机械(uefi类型的bios),用easybcd安装win10+ubuntu16.04双系统
  3. java foreach 跳过本次循环_【Java】对foreach循环的思考
  4. [Vue.js] 路由 -- 基于vue-router的案例--后台管理
  5. 选择题:JAVA的类和对象
  6. mfc大观之三(创建对象)
  7. 用链表队列实现基数排序;
  8. golang mac 环境变量_Golang (Go语言) Mac OS X下环境搭建 环境变量配置 开发工具配置 Sublime Text 2...
  9. 美团、飞猪基础架构组实习经历分享
  10. UART 通用串行通信整理
  11. 论文Anonymous Zether实验复现(持续更)
  12. JAVA电影院售票网站计算机毕业设计Mybatis+系统+数据库+调试部署
  13. websocket系列:基于tio-websocket-spring-boot-starter实现
  14. Multisim14 安装包及安装教程
  15. 谷歌开源项目Chromium的源码获取与项目构建(Win7+vs10/vs13)
  16. Typora的下载和常用操作
  17. php加解密工具php_screw-1.5_php5.3支持php5.3以上版本
  18. 陶瓷电容—导致失效的七大原因解析
  19. 用AR发福利,与初音未来邂逅在咖啡馆
  20. Accelerating Video Object Segmentation with Compressed Video环境配置

热门文章

  1. Map与Set的经典OJ题
  2. 二叉树的基本概念以及基本操作
  3. java的方法什么时候加载,java – JVM什么时候加载类?
  4. java分行符号怎么打_Android string.xml如何输入空格、换行等符号——转义字符
  5. mysql的付费功能_MYSQL对游戏用户付费行为分析
  6. 【考试战报】ORACLE OCP 19C考试通过
  7. 面试常问的29个linux命令
  8. 云原生已来,只是分布不均
  9. 将 Sidecar 容器带入新的阶段
  10. 宁波大学计算机网络,宁波大学计算机网络TCP与UDP题目