###### tags: `JDBC` # BLOB&CLOB與ORM、DAO ## BLOB與CLOB * BLOB(Binary Lager Object) : 將<font color ="red">檔案</font>(如圖片、影音資料等)存入資料庫欄位裡,最高大小為4GB。 * CLOB(Character Lager Object) : 儲存大量的<font color ="red">文字</font>資料,最高大小也可4GB。 CLOB在MYSQL裡,CLOB對應的資料類型為TEXT ### 操作BLOB * getBytes/setBytes 任何Java版本都可以使用,適合位元資料量不大的情況 * getBlob/setBlob JDBC4.0(JDK 6)以後才能使用,以資料流的方式操作 * getBinaryStream/setBinaryStream 任何Java版本都可使用,以資料流方式操作,適合位元資料較大的情況(例如100MB以上) ### 操作CLOB * getCharacterStream/seCharacterStream 任何Java版本都可以使用,適合位元資料量不大的情況 * getClob/setClob JDBC4.0(JDK 6)以後才能使用,以資料流的方式操作 * getString/setString 任何Java版本都可使用,以資料流方式操作,適合位元資料較大的情況(例如100MB以上) ## ORM設計模式 ### ORM設計介紹 * 物件-關聯式資料庫對映(Object-Relational Mapping) * 簡稱ORM或是O/R Mapping * <font color ="red"> 一個資料庫Table對應一個Java類別(Class),Table欄位對應到類別的實體變數</font> * 此Java類別稱為Value Object(VO)或Data Transfer Object(DTO),<font color ="red">用在Client端與Server端間傳遞資料</font> * 以<font color ="red">Java Bean</font>來實作 <font color ="red">-- 對每一個private欄位分別設計一組getter/setter -- 此類別實作Serializable介面 -- 此類別擁有一個不帶參數的建構子 </font> 以上三項為JavaBean的最根本 ``` Java Bean用途:包裝資料,重複使用 ``` ## DAO設計模式 ### DAO設計 * 針對資料庫表格存取會設計一個Data Access Object(DAO)類別來對應 * <font color ="red">針對每一個DAO類別設一個DAO介面來對應(降低程式碼相依性)</font> --此DAO介面負責定義方法(<font color ="red">這些方法就是對該表格資料的各種操作</font>)