13、Hibernate技术

原创 2016年08月29日 08:57:54

对应第16章
小结:
与数据库打交道都是通过Session操作的,而Session是由HibernateInitialize类(该类是自己写的)创立并操作

Hibernate是ORM(对象到关系数据库的映射)。
Hibernate通过 * .java、* .cfg.xml(配置文件)、* .hbm.xml(映射文件)操作关系数据库。
Hibernate中有重要的3个类:配置类(Configuration)、会话工厂类(SessionFactory)、会话类(Session)。
注意:会话类不是线程安全的,不要多个线程共享一个Session

配置文件:

在java resources/src 目录下有个 hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
 "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
 <hibernate-configuration>
    <session-factory>
        <!-- 数据库驱动 -->
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <!-- 数据库连接的URL -->
        <property name="connection.url">jdbc:mysql://localhost:3306/db_database10</property>
        <!-- 数据库连接用户名 -->
        <property name="connection.username">root</property>
        <!-- 数据库连接密码 -->
        <property name="connection.password">111</property>
        <!-- Hibernate方言 -->
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
        <!-- 打印SQL语句 -->
        <property name="show_sql">true</property>
        <!-- 多个类的映射文件  -->
        <mapping resource="com/mr/employee/Employee.hbm.xml"/>
    </session-factory>
 </hibernate-configuration>

持久化类

写法:
public class SomeClass{
   多个private属性;
   // 无参数构造函数
   public SomeClass(){
   }
   对应每个属性的setget方法
}

映射

一个类就对应一张表,需要写一个映射
比如 Employee.java类对应Employee.hbm.xml ,两者写在同一目录下。
具体的映射文件写法见p380

代码结构如下:
这里写图片描述

书上的对记录的增加、查看、修改、删除、延迟加载

Hibernate的缓存

有了缓存就不必时时去访问数据库了。

分为一级缓存(内部缓存)和二级缓存。
一级缓存
属于Session级缓存,生命周期与Session是相同的。每个Session都有自己对应的缓存,一个Session不能访问其他Session的对象缓存实例。
一级缓存不需要配置。

二级缓存:
从属于一个SessionFactory的都属于一个二级缓存。
Hibernate本身未提供二级缓存,需引入第三方插件实现二级缓存,比如EHCache。

二级缓存配置:
1、在hibernate.cfg.xml中加上:
<!-- 开启二级缓存 -->
<property name="hibernate.cache.use_second_level_cache">
true</property>
<!-- 指定缓存产品提供商 -->
<property name="hibernate.cache.provider_class">
org.hibernate.cache.EhCacheProvider</property>

2、在类对应的映射文件中加上
<cache usage="read-only"/>     -- 见书本p391

3、在java resources/src下新建 ehcache.xml,代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<ehcache>
    <diskStore path="java.io.tmpdir"/>
    <defaultCache
        maxElementsInMemory="10000"
        eternal="false"
        timeToIdleSeconds="120"
        timeToLiveSeconds="120"
        overflowToDisk="true"
        />
</ehcache>

结构如图:
这里写图片描述

版权声明:本文为博主原创文章,未经博主允许不得转载。

java 13个核心技术

java的大方向就是j2ee j2ee不仅仅是socket编程,具体包括13中核心技术。   J2EE的核心API与组件     J2EE平台由一整套服务(Services)、应用程序接口(...
  • Hollboy
  • Hollboy
  • 2012年11月22日 22:59
  • 1945

Hibernate框架(一)——总体介绍

作为SSH三大框架之一的Hibernate,是用来把程序的Dao层和数据库打交道用的,它封装了JDBC的步骤,是我们对数据库的操作更加简单,更加快捷。利用Hibernate框架我们就可以不再编写重复的...
  • liujiahan629629
  • liujiahan629629
  • 2014年03月18日 09:40
  • 20479

Hibernate底层技术简介 CGLIB

    从可以看到,基于ASM的开发很复杂,需要了解JVM的底层编码。CGLIB以ASM为基础, 对ASM的功能进行了扩展和封装,提供了更友好的API,部分通用的模版和高级的功能实现。CGLIB的具体...
  • nomad2
  • nomad2
  • 2007年01月21日 12:16
  • 3852

Hibernate创始人谈ORM、Java的发展

作为Hibernate的创始人,Gavin King身上充满着传奇,坊间流传着很多关于他过往的“英雄”事迹,比如他在设计Hibernate时对SQL知识竟然一点儿也不懂,比如他对Spring创始人Ro...
  • qq_20545159
  • qq_20545159
  • 2015年02月27日 20:09
  • 637

Hibernate ORM实现原理简述

1. 什么是ORM ORM的全称是Object Relational Mapping,即对象关系映射。它的实现思想就是将关系数据库中表的数据映射成为对象,以对象的形式展现,这样开发人员就可以把对数据库...
  • wtopps
  • wtopps
  • 2016年08月22日 09:49
  • 1636

精通Hibernate:Java对象持久化技术详解--学习心得--入门(1)

 在Java应用中使用Hibernate包含以下步骤:1.       创建Hibernate的配置文件。2.       创建持久化类。3.       创建对象-关系映射文件。4.       通...
  • Tom_Lee
  • Tom_Lee
  • 2006年12月26日 22:00
  • 1089

javaEE的13种技术

一、JDBC:Java Data Base Connectivity,数据库连接 二、JNDI:Java Naming and Directory Interfaces,Java的命名和目录接口...
  • zhaomengjie12
  • zhaomengjie12
  • 2016年10月18日 10:40
  • 96

J2EE平台的13种核心技术

JAVA最初是在浏览器和客户端机器中粉墨登场的。当时,很多人质疑它是否适合做服务器端的开发。现在,随着对JAVA2平台企业版(J2EE)第三方支持的增多,JAVA被广泛接纳为开发企业级服务器端解决方案...
  • u011225629
  • u011225629
  • 2015年09月10日 18:41
  • 3616

JavaEE 13个技术规范总结

小编忙里偷闲,软考期间开始学习J2ee,下面是J2ee13个规范,来认识一下javaee大家族~ JDBC   (Java Data Base Connectivity,java数据库...
  • u012904383
  • u012904383
  • 2015年10月28日 21:28
  • 6280

【Java】javaEE的13个技术规范

【前言】         这段时间小编在准备面试和面试之间奔波,javaEE也放了一段时间了,再次拿起来看发现根本不明白在讲些什么,差不多能听明白的是JDBC,和这个材料的共鸣很少,不过在后边的学习...
  • zh15732621679
  • zh15732621679
  • 2017年01月01日 17:41
  • 704
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:13、Hibernate技术
举报原因:
原因补充:

(最多只允许输入30个字)