原创 hibernate繼承映射策略之每個子類一張表

以文章《hibernate單表繼承映射》中的幾個類爲例,我們來看下“每個子類一張表”的映射策略。 與之不同的是Person.hbm.xml配置文件,代碼如下: <hibernate-mapping package="com.test.po

原创 hibernate加載策略之lazy

一、hibernate的加載策略有兩種: 1)即時加載--get加載數據 使用get獲取數據,會立即查詢,先到緩存中查找,找不到再到數據庫中查找。 2)延遲加載(懶加載lazy)--load加載 不會立即查找,當需要的時候纔會查找。 容易

原创 hibernate的N+1條SQL查詢問題--Iterate和list

hibernate使用session.createQuery(hql)查詢數據的時候,有兩種查詢方式 1、session.createQuery(hql).list() 2、session.createQuery(hql).iterate

原创 spring容器管理對象

IOC是一種編程思想,由主動編程變爲被動接收。 spring的IOC思想:對象由spring來創建、管理、裝配。 現在我們將文章《spring簡介》中的示例,替換成用spring管理的。 1、在原項目中添加jar包支持 參考文章《spri

原创 hibernate查詢語言--hql

hql(hibernate query language)是一種查詢語言。hql是完全面向對象的查詢語言,可以理解如繼承,多態,關聯等概念。hql區分大小寫,但是對應sql關鍵字(select、from、where)不區分。 新建一個ja

原创 Hibernate的悲觀鎖、樂觀鎖

多個用戶同時訪問一個數據庫,則當他們的事務同時使用相 同的數據時可能會發生問題。由於併發操作帶來的數據不一致性包括:丟失數據 修改、讀 ” 髒 ” 數據(髒讀)、不可重複讀、產生幽靈數據 多個用戶同時訪問一個數據庫,當他們的事務同時使用

原创 Hibernate,悲觀鎖,樂觀鎖(二)

1.悲觀鎖 它指的是對數據被外界修改持保守態度。假定任何時刻存取數據時,都可能有另一個客戶也正在存取同一筆數據,爲了保持數據被操作的一致性,於是對數據採取了數據庫層次的鎖定狀態,依靠數據庫提供的鎖機制來實現。 基於jdbc實現的數據庫

原创 hibernate註解annotation入門

前面的文章示例中我們寫了實體類之後,都會寫一個對應的*.hbm.xml配置文件,這種方式比較複雜,今天我們就來簡單瞭解下使用註解annotation來替代配置文件的方法。 新建一個java項目,結構如下: Book實體類,在實體類中使用

原创 hibernate單表繼承映射

hibernate支持三種基本的繼承映射策略: 1、每個類分層結構一張表映射 2、每個子類一張表映射 3、每個具體類一張表映射 我們先來分析第一種策略,假設有一個父類Person,它有兩個子類Teacher和Student,都繼承了Per

原创 hibernate多對多關聯--單雙向

前幾篇文章分別介紹了一對一、一對多的關聯,下面我們來看下多對多的關聯。多對多關聯也分爲單向和雙向兩種。 單向關聯示例 Role類 public class Role { private int id; private String n

原创 hibernate註解之單/雙向多對一映射

簡單瞭解了hibernate註解annotation後,我們來看下怎樣用註解實現單/雙向的多對一映射。 新建一個java項目,結構如下: 單向多對一映射 Book類 package com.test.pojo; import java.

原创 spring官網下載開發包

今天學習spring需要用到開發包,去spring官網下載,發現官網又改版了。在網上找了好多下載步驟發現都不是很方便,步驟也比較複雜,而且有些步驟操作完了也沒找到。現在告訴大家一個簡單的方法,直接下載完整的-dist.zip 直接複製

原创 spring簡介

spring是一個開源的控制反轉(Inversion of Control,IOC)和麪向切面(AOP)的容器框架,它的主要目的是簡化企業開發。 spring框架的優點: 輕量級  的容器框架,沒有侵入性IOC更加容易組合對象之間的關係

原创 hibernate繼承映射策略之每個具體類一張表

對於“每個具體類一張表”的映射策略,可以採用兩種方式。第一種方式是使用<union-subclass>。另一種方法時採用隱式多態。 以上一篇博客《hibernate單表繼承映射》所述案列爲例,我們主要學習第一種方式。 與上篇文章不同的Pe

原创 hibernate的list映射和map映射

List映射 Grade類 public class Grade { private int id; private String name; private List<Student> students=new ArrayList