1. 程式人生 > >hibernate pojo類 實現serializable介面

hibernate pojo類 實現serializable介面

Object serialization的定義:
Object serialization 允許你將實現了Serializable介面的物件轉換為位元組序列,這些位元組序列可以被完全儲存以備以後重新生成原來的物件。  其實實現不實現要根據你的需求而定,有些時候主要是為了能夠讓程式碼有更好的適應性。hibernate雖然不需要序列化,但是可能在其他環境下是需要的

serialization 不但可以在本機做,而且可以經由網路操作(就是貓小說的RMI,
Remote Method Invocation,遠端方法呼叫 )。這個好處是很大的----因為它自動遮蔽了作業系統的差異,位元組順序(用Unix下的c 開發過網路程式設計的人應該知道這個概念,我就容易在這上面犯錯)等。比如,在Window平臺生成一個物件並序列化之,然後通過網路傳到一臺Unix機器 上,然後可以在這臺Unix機器上正確地重構這個物件。


Object serialization主要用來支援2種主要的特性:
1。Java的RMI(remote method invocation).RMI允許象在本機上一樣操作遠端機器上的物件。當傳送訊息給遠端物件時,就需要用到serializaiton機制來發送引數和接收返回直。

2。Java的JavaBeans.   Bean的狀態資訊通常是在設計時配置的。Bean的狀態資訊必須被存起來,以便當程式執行時能恢復這些狀態資訊。這也需要serializaiton機制。

補充一下。
分散式環境主要是要將Object轉成binary然後在中介軟體中傳輸。如:
DB - Hibernate - Application Server - Application。
舉個簡單例子,要在EJB裡用hibernate就必須Serialization,否則傳不過去。
但如果沒有Application Server就不需要Serialization了。如:
DB - Hibernate - Application。
但要澄清一下:
A   DB - Hibernate - Servlet 用到AS,但Object直接傳POJO物件,不需要 序列化

其實Hibernate本身跟序列化沒有什麼關係的。序列化重要是為了將Object轉成binary。如果你用ObjectInputStream做個例子就知道了。

相關推薦

hibernate pojo 實現serializable介面

Object serialization的定義: Object serialization 允許你將實現了Serializable介面的物件轉換為位元組序列,這些位元組序列可以被完全儲存以備以後重新生成原來的物件。  其實實現不實現要根據你的需求而定,有些時候主要是為了能

Java Bean實現Serializable介面的原因

為了儲存在記憶體中的各種物件的狀態(也就是例項變數,不是方法),並且可以把儲存的物件狀態再讀出來。雖然你可以用你自己的各種各樣的方法來儲存object states,但是Java為我們提供一種很好儲存物件狀態的機制,那就是序列化。   簡單來說序列化就是一種用來處理物件流的

GreenDao實體實現Serializable介面報錯,自動生成 serialVersionUID

解決辦法: 在類中新增如下語句:static final long serialVersionUID = -15515456L; 選上以後,在你的class中:Alt+Enter就會提示自動建

為什麼實體實現serializable介面 序列化

最重要的兩個原因是:  1、將物件的狀態儲存在儲存媒體中以便可以在以後重新創建出完全相同的副本;  2、按值將物件從一個應用程式域傳送至另一個應用程式域。  實現serializable介面的作用是就是可以把物件存到位元組流,然後可以恢復。所以你想如果你的物件沒實現序列化怎

32-多執行緒--概述+Thread+多執行緒的建立方式(繼承Thread+實現Runnable介面)+Runnable介面+執行緒的名稱+執行緒的狀態

一、概述 1、程序:對應的是一個應用程式在記憶體中的所屬空間。程序是不直接執行的,它只是在分配該應用程式的記憶體空間 注:如果一個程式在記憶體中開闢了空間,就代表它在執行。不執行要釋放空間 2、執行緒:程序中的一個負責程式執行的控制單元,也叫執行路徑。一個程序中可以有多個執行路徑,稱之為

大三筆記(摘抄--為什麼某些需要Serializable介面

因為最近埋頭苦幹於ssm框架,自然也就接觸到了將伺服器響應封裝為泛型類的知識點。 而這個類,需要實現Serializable。 什麼是Serializable介面?一個物件序列化的介面,一個類只有實現了Serializable介面,它的物件才能被序列化什麼是序列化?將物件的狀態資訊轉換為可以

實體實現Serializable的作用

Serializable,之前一直有使用,預設的實體類就會實現Serializable介面,對具體原因一直不是很瞭解,同時如果沒有實現序列化,同樣沒什麼影響,什麼時候應該進行序列化操作呢?今天查了下資料,大致總結一下。 1、其實序列化,它是完整的儲存了某一狀態下的物件資訊,

【修真院java小課堂】什麼是序列化和反序列化,在RMI中是否要實現 SERIALIZABLE 介面, SERIALVERSIONUID的用處是什麼?

8.更多討論 1、serialVersionUID實際作用 假設本地資料庫中儲存了大量的user物件,後來由於需求,要修改User類中的屬性;如果不設定SerialVersionUID,根據屬性方法等自動生成,就會出現程式碼演示中的錯誤,造

內部類實現多繼承(內部類的優勢)及內部類實現一個介面與外圍實現這個介面的區別

在java中一個類可以多重實現,但不能多重繼承,也就是說一個類能夠同時實現多個介面,但不能同時繼承多個類。但有時候我們確實需要繼承多個類,比如希望擁有兩個類的行為功能,就很難使用單繼承來解決問題了(當然多層繼承是可以解決的),那麼我們還可以用什麼辦法來解決多重繼承的問題呢?沒

內部類實現一個介面與外圍實現這個介面的區別

在java中,外圍類只能繼承一個基類,要實現多繼承,只有繼承多個介面型別。有時,你需要與介面的實現進行互動,所以使用內部類最重要的一個原因是:每個內部類都能獨立的繼承自一個(介面的)實現,內部類允許你繼承多個非介面型別。正是因為內部類的這種能力,有效的實現了“多重繼承”。

多執行緒 繼承Thread 實現Runnable介面 多執行緒安全 synchronized 單例設計懶漢 鎖死

程序 是一個正在執行中的程式。 每個程序執行都有一個執行順序,該順序是一個執行路徑,或者叫一個控制單元。 舉例子:一個程序,就是一個正在執行的程式。 執行緒 就是程序中的一個獨立的控制單元。 執行緒在

域模型一定要實現Serializable介面嗎?

在Web應用的開發中,尤其實在前後端分離的情況下,伺服器端多半會將域模型以REST介面的方式提供給客戶端,於是我在很多WEB應用中,都看到這樣的程式碼: public class ActionStatus implements Serializable {

java中,一個實現某個介面,必須重寫介面中的所有方法嗎?拓展介面而不重寫相當於抽象

不一定,關鍵要看子類是否是抽象類。 如果子類是非抽象類,則必須實現介面中的所有方法;  如果子類是抽象類,則可以不實現介面中的所有方法,因為抽象類中允許有抽象方法的存在! 1、抽象類定義 抽象類往往用來表徵對問題領域進行分析、設計中得出的抽象概念,是對一系列看上去不同,但

Java 物件序列化和反序列化 (實現 Serializable 介面

序列化和反序列化的概念 把物件轉換為位元組序列的過程稱為物件的序列化。 把位元組序列恢復為物件的過程稱為物件的反序列化。 物件的序列化主要有兩種用途: 把物件的位元組序列永久地儲存到硬碟上,通常存放在一個檔案中; 在網路上傳送物件的位元組序列。 JDK

java實現serializable介面的作用

一個物件序列化的介面,一個類只有實現了Serializable介面,它的物件才是可序列化的。因此如果要序列化某些類的物件,這些類就必須實現Serializable介面。而實際上,Serializable是一個空介面,沒有什麼具體內容,它的目的只是簡單的標識一個類的物件可以被

Java實現某個介面後,是否需要實現介面中的所有方法?

1.結論    並不是所有的類實現介面後都必須實現介面的所有方法!2.特殊情況    當Java抽象類實現某個介面後沒必要實現所有的方法。3.注意點    當Java普通類實現介面後必須實現介面中的所有方法。4.原因為什麼抽象類不需要實現所有方法?         因為抽象類

Java中,一個實現某個介面,必須重寫介面中的所有方法嗎

在這裡特別記錄一下,以防自己再次用錯~ “Java中,一個類實現了某介面,則必須實現該介面中的所有方法麼?”這句話其實是不準確的,因為我們還沒有考慮到抽象類。 抽象類實現某個介面,可以不實現所有介面的方法,可以由它的子類實現。而普通類即非抽象類則必須實現接口裡的全部方法。

java物件實現Serializable介面(整理)

 Serializable 在工作中很少用到 之前也懂一些 今天特意整理一下 在還沒有深入瞭解serializable介面之前,像很多程式設計師一樣,以為一個物件實現serializable介

java中,一個實現某個介面,必須重寫介面中的所有方法嗎?

java中,一個類實現某個介面,必須重寫介面中的所有方法嗎? 不一定,關鍵要看子類是否是抽象類。 如果子類是非抽象類,則必須實現介面中的所有方法;  如果子類是抽象類,則可以不實現介面中的所有方法,因為抽象類中允許有抽象方法的存在! 1、抽象類定義 抽象類往往用來表徵對問題領域進行分析

MyBatisGenerator生成資料庫註釋,實現分頁,繼承某一父,實現Serializable,資料庫列名前加上表名

最近做專案用到這個逆向工程,發現官方給出的配置並不符合本人要求,於是下載了原始碼經過分析,最終實現了本人想要的效果,現將程式碼及工程全貼出來,方便有需要的同志使用 帖子最後面有工本人修改後的工程原始碼下載地址,拿過去把配置檔案換成你的資料庫名稱跟帳號就可以直接用了, 整體