自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Hibernate Blob數(shù)據(jù)類型映射的一個例子

開發(fā) 后端
本文講的是Hibernate Blob數(shù)據(jù)類型映射的一個例子,通過例子來把握Hibernate Blob數(shù)據(jù)類型映射。文中給出了相應的代碼。

以下為Hibernate Blob數(shù)據(jù)類型映射的一個例子,通過例子來把握Hibernate Blob數(shù)據(jù)類型映射。

Hibernate Blob:Java 代碼:

  1. public class User  implements   
  2. Java.io.Serializable {         
  3.        // Fields             
  4.      private long id;      
  5.      private String name;      
  6.      private String email;      
  7.      private String addr;      
  8.      //定義Blob的pthto      
  9.      private Blob photo;   

Hibernate Blob:xml 代碼:

  1. <Hibernate-mapping>     
  2.     <class name="org.tie.User" table="user" catalog="tie">     
  3.         <id name="id" type="long">     
  4.             <column name="id" />     
  5.             <generator class="identity" />     
  6.         </id>     
  7.         <property name="name" type="string">     
  8.             <column name="name" length="45" not-null="true" />     
  9.         </property>     
  10.         <property name="email" type="string">     
  11.             <column name="email" length="45" />     
  12.         </property>     
  13.         <property name="addr" type="string">     
  14.             <column name="addr" length="45" />     
  15.         </property>     
  16.         <!-- 映射blob類型 -->     
  17.         <property name="photo" type="blob">     
  18.             <column name="photo" />     
  19.         </property>     
  20.     </class>     
  21. </Hibernate-mapping>  

兩個測試方法:

Java 代碼:

  1.     public void testCreate(){                  
  2.     User user = new User();      
  3.     user.setName("linweiyang");      
  4.     user.setAddr("beijing");      
  5.     user.setEmail("linweiyang@163.com");      
  6.     Blob photo = null;              
  7.     try {      
  8.         //將圖片讀進輸入流      
  9.         FileInputStream fis = new FileInputStream("c:\\a.jpg");      
  10.         //轉(zhuǎn)成Blob類型      
  11.         photo = Hibernate.createBlob(fis);                      
  12.     } catch (FileNotFoundException e) {      
  13.         e.printStackTrace();      
  14.     } catch (IOException e) {      
  15.         e.printStackTrace();      
  16.     }                      
  17.     user.setPhoto(photo);                 
  18.     Session session = factory.openSession();      
  19.     Transaction tr = session.beginTransaction();      
  20.     session.save(user);      
  21.     tr.commit();      
  22.     session.close();         
  23. }              
  24. public void testRerieve(){                  
  25.     Session session = factory.openSession();      
  26.     User user = (User)session.load(User.classnew Long(3));      
  27.     try {      
  28.         //從數(shù)據(jù)庫中要讀取出來      
  29.         InputStream is = user.getPhoto().getBinaryStream();      
  30.         //在把寫到一個圖片格式的文件里      
  31.         FileOutputStream fos = new FileOutputStream("c:\\linweihan.jpg");                  
  32.         byte[] buffer = new byte[1024];      
  33.         int len = 0;      
  34.         //從數(shù)據(jù)庫中讀取到指定的字節(jié)數(shù)組中      
  35.         while((len = is.read(buffer) )!= -1){      
  36.             //從指定的數(shù)組中讀取,然后輸出來,  
  37.            所以這里buffer好象是連接inputStream和outputStream的一個東西      
  38.             fos.write(buffer,0,len);      
  39.         }      
  40.     } catch (FileNotFoundException e) {      
  41.         e.printStackTrace();      
  42.     } catch (SQLException e) {      
  43.         e.printStackTrace();      
  44.     } catch (IOException  e){      
  45.         e.printStackTrace();      
  46.     }                 
  47.     session.close();      
  48. }    

這么理解輸入輸出流,讀入流自然要有讀入的源頭,輸出也要輸出到某個地方,輸出一般是先要輸讀入,這里連接輸入和輸出的是一個在內(nèi)存中的字節(jié)數(shù)組buffer.這樣從數(shù)據(jù)庫中讀到這個數(shù)組里,輸出流在從這個數(shù)組中輸出到特定的文件格式里。以上便是Hibernate Blob數(shù)據(jù)類型映射的一個例子。

 

【編輯推薦】

  1. 初學者適用的Hibernate學習方法
  2. Hibernate實戰(zhàn)(第2版)讀書筆記
  3. Hibernate一對多關(guān)系的處理
  4. 十五道Hibernate面試題及答案
  5. Hibernate的性能優(yōu)化
責任編輯:仲衡 來源: JavaEye技術(shù)博客
相關(guān)推薦

2023-03-14 08:02:14

靜態(tài)路由動態(tài)路由設(shè)備

2009-06-11 14:48:48

jbpm工作流引擎jbpm例子

2024-01-08 13:40:00

并發(fā)安全? 數(shù)量

2024-01-25 11:41:00

Python開發(fā)前端

2021-04-20 11:40:47

指針類型CPU

2009-09-25 12:31:13

Hibernate映射

2023-11-06 13:55:59

聯(lián)合索引MySQ

2021-12-31 10:32:26

MySQL數(shù)據(jù)類型

2009-06-24 08:04:18

Hibernate基礎(chǔ)核心接口數(shù)據(jù)類型

2024-05-27 00:30:00

NumPyPython開源庫

2021-07-09 06:11:37

Java泛型Object類型

2009-08-26 15:53:42

C#數(shù)據(jù)訪問XML

2022-10-08 13:29:19

Pandasgroupby

2016-09-30 01:01:36

美國聯(lián)邦機構(gòu)大數(shù)據(jù)

2012-02-08 11:15:38

HibernateJava

2018-01-02 09:44:37

2020-12-25 11:11:48

鴻蒙HarmonyOS應用開發(fā)

2009-10-13 14:33:00

2022-08-01 10:44:37

人工智能AI

2018-04-02 10:37:10

Linux命令size
點贊
收藏

51CTO技術(shù)棧公眾號