深藍(lán)色心情

          過來聊聊~~~~

            BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
            31 Posts :: 0 Stories :: 46 Comments :: 0 Trackbacks
           
          數(shù)據(jù)庫(kù)驅(qū)動(dòng)更新為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對(duì)應(yīng)的hbm.xml中,改對(duì)應(yīng)的clob類型的字段

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

          JavaBean的對(duì)應(yīng)的屬性類型為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 深藍(lán)色心情 閱讀(2552) 評(píng)論(2)  編輯  收藏 所屬分類: Java

          Feedback

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

          # re: spring+hibernate+oracle9i用clob 2006-07-08 13:04 jjs
          像得用這種方式插入clob是否要直接跟操作String 一樣的,這個(gè)我試了一下,報(bào)錯(cuò),但網(wǎng)上有人說在這種配置下,可以直接操作clob  回復(fù)  更多評(píng)論
            

          主站蜘蛛池模板: 饶阳县| 西吉县| 临漳县| 巫溪县| 昭平县| 新闻| 营山县| 永春县| 凤山县| 特克斯县| 大冶市| 乌鲁木齐县| 安塞县| 历史| 武邑县| 古交市| 仙居县| 漳州市| 太谷县| 海兴县| 平塘县| 鄄城县| 怀来县| 新津县| 德化县| 普定县| 青田县| 富顺县| 双城市| 白玉县| 鄂伦春自治旗| 霍林郭勒市| 从江县| 长乐市| 皋兰县| 唐海县| 旌德县| 苏州市| 许昌县| 临沂市| 罗江县|