<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    eric-1001c

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      3 隨筆 :: 45 文章 :: 12 評論 :: 0 Trackbacks
        Hibernate映射類型分為兩種:內置的映射類型和客戶化映射類型。內置映射類型負責把一些常見的Java類型映射到相應的SQL類型;此外,Hibernate還允許用戶實現UserType或CompositeUserType接口,來靈活地定制客戶化映射類型

    1.內置映射類型
       1).Java基本類型的Hibernate映射類型
    Java類型 Hibernate映射類型 標準SQL類型 大小和取值范圍
    int/Integer int/integer INTEGER 4Byte
    long/Long    long BIGINT 8Byte
    short/Short short SAMLLINT 2Byte
    byte/Byte byte TINYINT 1Byte
    float/Float float FLOAT 4Byte
    double/Double double DOUBLE 8Byte
    BigDecimal big_decimal NUMBERIC Numeric(8,2)
    char/Character/String character CHAR(1) 定長字符
    String string VARCHAR 變長字符
    boolean/Boolean boolean BIT 布爾類型
    boolean/Boolean yes/no CHAR(1)('Y'/'N') 布爾類型
    boolean/Boolean true/false CHAR(1)('T'/'F') 布爾類型


        2). Java時間和日期類型的Hibernate映射類型
    Java類型 Hibernate映射類型 標準SQL類型 描述
    java.util.Date/java.sql.Date date DATE 日期,yyyy-mm-dd
    java.util.Date/java.sql.TIme time TIME 時間,hh:mm:ss
    java.util.Date/java.sql.Timestamp timestamp TIMESTAMP 時間戳,yyyymmddhhmmss
    java.util.Calendar calendar TIMESTAMP 同上
    java.util.Calendar calendar_date DATE 日期,yyyy-mm-dd

    * 當程序類型為java.sql.Timestamp, 數據庫中表屬性類型為timestamp的情況下,即使用戶以空值插入數據,數據庫系統仍然會自動填充timestamp的值

        3). Java 大對象類型的Hibernate映射類型
    Java類型 Hibernate映射類型 標準SQL類型 MySql類型 Oracle類型
    byte[] binary VARBINARY/BLOB BLOB BLOB
    String text CLOB TEXT CLOB
    serializable 實現serializable接口的一個java類 VARBINARY/BLOB BLOB BLOB
    java.sql.Clob clob CLOB TEXT CLOB
    java.sql.Blob blob BLOB BLOB BLOB
    *  在應用程序中通過Hibernate來保存java.sql.Clob或者java.sql.Blob實例時,必須包含兩個步驟:
            a. 在一個數據庫事務中先保存一個空的Blob或Clob實例;b. 接著鎖定這條記錄,更新在步驟(1)中保存的Blob或Clob實例,把二進制數據或長文本數據寫到Blob或Clob實例中。
     1
     2Session session = sessionFactory.openSession();
     3Transaction tx = session.beginTransaction();
     4Customer customer = new Customer();
     5customer.setDescription(Hibernate.createClob("")); //先保存一個空的clob
     6session.save(customer);
     7session.flush();
     8//鎖定這條記錄
     9session.refresh(customer,LockMode.UPGRADE);
    10oracle.sql.CLOB clob = (oracle.sql.CLOB) customer.getDescription();
    11java.io.Writer pw = clob.getCharacterOutStream();
    12pw.write(longText);//longText是一個長度超過255的字符串
    13pw.close();
    14tx.commit();
    15session.close();

    *  一個java類型對應多個Hibernate映射類型的場合。例如,如果持久化類的屬性為java.util.Date類型,對應的Hibernate映射類型可以是date,time
    或timestamp。此時必須根據對應的數據庫表的字段的SQL類型,來確定Hibernate映射類型。如果字段為Date類型,則hibernate映射為datge,如果為TIME則為time,如果為TIMESTAMP則為timestamp。


    2.客戶化映射類型
         (很麻煩的一個東西,稍微看了看,日后需要再研究并總結)
    posted on 2008-01-24 15:57 Eric-1001c 閱讀(3412) 評論(0)  編輯  收藏 所屬分類: Hibernate
    主站蜘蛛池模板: 亚洲va久久久噜噜噜久久天堂 | 韩日电影在线播放免费版| 夭天干天天做天天免费看| 亚洲成年人电影网站| 99久久国产热无码精品免费| 亚洲精品一区二区三区四区乱码| 日韩插啊免费视频在线观看| 亚洲天天做日日做天天看 | 亚洲AV无码AV日韩AV网站| 成人人观看的免费毛片| 亚洲av永久中文无码精品综合| 国产精品国产免费无码专区不卡| 亚洲av日韩综合一区二区三区| 日本免费网站在线观看| 高潮内射免费看片| 久久夜色精品国产亚洲| 99精品视频在线观看免费专区 | 国产AV无码专区亚洲AV手机麻豆| 香蕉视频在线免费看| 亚洲尹人九九大色香蕉网站 | 国产成人免费A在线视频| 有色视频在线观看免费高清在线直播| 亚洲日韩精品一区二区三区| 蜜桃成人无码区免费视频网站| 亚洲人成在线精品| 免费大学生国产在线观看p| 国产免费黄色无码视频| 亚洲高清免费在线观看| 日本免费观看网站| 免费看一区二区三区四区| 久久久久se色偷偷亚洲精品av| 国产又黄又爽又刺激的免费网址| 久久免费香蕉视频| 亚洲乱码日产精品BD在线观看| 国产在线观看免费视频播放器| 视频免费在线观看| 亚洲乱理伦片在线观看中字| 亚洲桃色AV无码| 女性无套免费网站在线看| 在线免费观看h片| 亚洲日韩一区二区三区|