深藍色心情

          過來聊聊~~~~

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            31 Posts :: 0 Stories :: 46 Comments :: 0 Trackbacks
           
          數據庫驅動更新為classes12-9i.jar
          修改hibernate的配置如下
          代碼
          <bean id="nativeJdbcExtractor" class="org.springframework.jdbc.support.nativejdbc.SimpleNativeJdbcExtractor"/>

          <bean id="oracleLobHandle" class="org.springframework.jdbc.support.lob.OracleLobHandler" Lazy-init="true">
           
          <property name="nativeJdbcExtractor">
             
          <ref local="nativejdbcExtractor"/>
           
          </property>
          </bean>


          在有clob類型sessionFactory(org.springframework.com.hibernate.LocalSessionFractoryBean)中加入
          <property name="lobHandler"><ref bean="oracleLobHandle"/></property>

          在需要clob的JavaBean對應的hbm.xml中,改對應的clob類型的字段

          代碼
          <property
           
          name=""
           type
          ="org.springframework.orm.hibernate.support.ClobStringType"
           clumn
          =""
           length
          ="XXXXXX" <!--定義clob字段大小(以字節為單位,最大2GB)-->
          >

          JavaBean的對應的屬性類型為String

          ------------------------------------------------------------------------------
          ----hibernate3 使用blob 和 clob 演例代碼-----

          hibernate3 使用blob 和 clob 演例代碼:

           1import java.io.File;
           2import java.io.FileInputStream;
           3import java.io.OutputStream;
           4import java.io.Writer;
           5import java.sql.Clob;
           6import oracle.sql.CLOB;
           7import org.hibernate.LockMode;
           8import org.hibernate.Transaction;
           9import org.hibernate.Session;
          10import org.hibernate.Hibernate;
          11import org.hibernate.lob.SerializableBlob;
          12import org.hibernate.lob.SerializableClob;
          13
          14
          15public class test1 {
          16
          17        /**
          18         * @param args
          19         */

          20        static Session session = HibernateSessionFactory.currentSession();
          21        
          22        public boolean inserted(TStu obj){
          23                
          24                Transaction tran = session.beginTransaction();
          25                session.save(obj);
          26                session.flush();
          27                session.refresh(obj,LockMode.UPGRADE);
          28                try
          29                {
          30                SerializableBlob sb = (SerializableBlob)obj.getImg();
          31                java.sql.Blob wrapblob = sb.getWrappedBlob();
          32                if(wrapblob instanceof oracle.sql.BLOB){
          33                         oracle.sql.BLOB blob = (oracle.sql.BLOB) wrapblob;
          34                OutputStream bout = blob.getBinaryOutputStream();
          35                FileInputStream fin = new FileInputStream("d:\\a.jpg");//修改你要存入的圖片
          36                byte [] buf = new byte[10240];//做為10K的緩存寫入
          37                int len;
          38                while((len = fin.read(buf))>0){
          39                        bout.write(buf,0,len);
          40                }

          41                bout.close();
          42                fin.close();
          43                }

          44                
          45                SerializableClob  sc = (SerializableClob)obj.getResu();
          46                Clob wrapclob = sc.getWrappedClob();
          47                if(wrapclob instanceof CLOB){
          48                        CLOB clob = (CLOB)wrapclob; 
          49                        Writer cout = clob.getCharacterOutputStream();
          50                        File file = new File("C:\\log_2005_8.txt");//修改你要存如的文本
          51                        FileInputStream fin = new FileInputStream(file);
          52                        int read;
          53                        while((read = fin.read())!= -1){
          54                                cout.write(read);
          55                        }

          56                        fin.close();
          57                        cout.close();
          58                }

          59                
          60                tran.commit();
          61                return true;
          62                }
          catch(Exception ex){
          63                        ex.printStackTrace();
          64                        tran.rollback();
          65                        return false;
          66                }

          67        }

          68        
          69        public static void main(String[] args) {
          70                // TODO Auto-generated method stub         
          71                test1 t = new test1();
          72                 TStu stu = new TStu();
          73                 stu.setAge(new Integer("23"));
          74                 stu.setName("lilei");
          75                 stu.setImg(Hibernate.createBlob(new byte[1]));
          76                 stu.setResu(Hibernate.createClob(" "));
          77                 t.inserted(stu);        
          78        }

          79}

          80
          81



          org link: http://www.matrix.org.cn/thread.shtml?topicId=27138&forumId=23
          posted on 2005-11-18 10:42 深藍色心情 閱讀(2552) 評論(2)  編輯  收藏 所屬分類: Java

          Feedback

          # re: spring+hibernate+oracle9i用clob 2006-07-08 13:02 jjs
          SerializableClob sc = (SerializableClob)obj.getResu();
          這一句提示,不能哆強行轉化,這是怎么回事 resu為string,  回復  更多評論
            

          # re: spring+hibernate+oracle9i用clob 2006-07-08 13:04 jjs
          像得用這種方式插入clob是否要直接跟操作String 一樣的,這個我試了一下,報錯,但網上有人說在這種配置下,可以直接操作clob  回復  更多評論
            

          主站蜘蛛池模板: 河西区| 宝鸡市| 太原市| 吴桥县| 镇坪县| 郁南县| 潞西市| 滨海县| 竹北市| 那曲县| 惠东县| 沐川县| 澜沧| 日照市| 卓尼县| 沁水县| 稷山县| 宝山区| 集安市| 崇明县| 温泉县| 安陆市| 萝北县| 永善县| 桂东县| 四子王旗| 琼中| 古蔺县| 苏州市| 固原市| 苍梧县| 玛曲县| 怀来县| 桐梓县| 延边| 长泰县| 广昌县| 尚义县| 汽车| 桦南县| 隆化县|