Rumah pangkalan data tutorial mysql 使用Hibernate处理Oracle中的Blob字段

使用Hibernate处理Oracle中的Blob字段

Jun 07, 2016 pm 05:35 PM
hibernate

写入Blob字段和写入其它类型字段的方式非常不同,因为Blob自身有一个cursor,你必须使用cursor对blob进行操作,因而你在写入Blob

1. Bolb类型字段说明:

写入Blob字段和写入其它类型字段的方式非常不同,因为Blob自身有一个cursor,你必须使用cursor对blob进行操作,因而你在写入Blob之前,必须获得cursor才能进行写入,那么如何获得Blob的cursor呢?

这需要你先插入一个empty的blob,这将创建一个blob的cursor,然后你再把这个empty的blob的cursor用select查询出来,这样通过两步操作,你就获得了blob的cursor,,可以真正的写入blob数据了。

2. Bolb类型字段保存:

Hibernate的配置文件就不写了 ,需要将Blob字段了类型设为java.sql.Blob,下面直接上代码

 public void save(ZyglBlxx bean, InputStream ins) throws WebServiceException {
  // TODO Auto-generated method stub
  Session session = this.getHibernateTemplate().getSessionFactory().openSession();
  //ins.
  //out.write(b)
  try {
   bean.setDoccontent(BLOB.getEmptyBLOB());
   
   Transaction tr = session.beginTransaction();
   bean.setVId(WebServiceEditUtils.getPk());
   session.save(bean);
   session.flush();
   session.refresh(bean, LockMode.UPGRADE);
   if(ins!=null){
    SerializableBlob sb = (SerializableBlob)bean.getDoccontent();
    BLOB b = (BLOB)sb.getWrappedBlob();
   
    OutputStream out = b.getBinaryOutputStream();
   
    int len=-1;
    byte[] bt = new byte[2048];        //可以根据实际情况调整,建议使用1024,即每次读1KB
    while((len=(ins.read(bt))) != -1)      {
     out.write(bt,0,len);                    //建议不要直接用os.write(bt)
    }
    out.flush();
    ins.close();
    out.close();
   }
   session.flush();
   tr.commit();
   session.close();
  } catch (IOException e) {
   e.printStackTrace();
   throw ExceptionManager.getExcption("18");
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
   throw ExceptionManager.getExcption("19");
  }
 }

为了保存文件时比较方便我这里的参数直接接收为InputStream,其他类型类似

Hibernate 的详细介绍:请点这里
Hibernate 的下载地址:请点这里

Hibernate 中文手册 PDF

linux

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk mengintegrasikan Hibernate dalam projek SpringBoot Bagaimana untuk mengintegrasikan Hibernate dalam projek SpringBoot May 18, 2023 am 09:49 AM

Mengintegrasikan Hibernate dalam SpringBoot Project Preface Hibernate ialah rangka kerja ORM (Object Relational Mapping) yang popular yang boleh memetakan objek Java ke jadual pangkalan data untuk memudahkan operasi kegigihan. Dalam projek SpringBoot, menyepadukan Hibernate boleh membantu kami melaksanakan operasi pangkalan data dengan lebih mudah Artikel ini akan memperkenalkan cara untuk menyepadukan Hibernate dalam projek SpringBoot dan memberikan contoh yang sepadan. 1.Perkenalkan dependenciesPerkenalkan dependencies berikut dalam fail pom.xml: org.springframework.bootspring-boot-starter-data-jpam

Ralat Java: Ralat Hibernate, Cara Mengendalikan dan Mengelak Ralat Java: Ralat Hibernate, Cara Mengendalikan dan Mengelak Jun 25, 2023 am 09:09 AM

Java ialah bahasa pengaturcaraan berorientasikan objek yang digunakan secara meluas dalam bidang pembangunan perisian. Hibernate ialah rangka kerja kegigihan Java yang popular yang menyediakan cara yang mudah dan cekap untuk mengurus kegigihan objek Java. Walau bagaimanapun, ralat Hibernate sering ditemui semasa proses pembangunan, dan ralat ini boleh menyebabkan atur cara ditamatkan secara tidak normal atau menjadi tidak stabil. Cara mengendalikan dan mengelakkan ralat Hibernate telah menjadi kemahiran yang mesti dikuasai oleh pembangun Java. Artikel ini akan memperkenalkan beberapa Hib biasa

Apakah perbezaan antara hibernate dan mybatis Apakah perbezaan antara hibernate dan mybatis Jan 03, 2024 pm 03:35 PM

Perbezaan antara hibernate dan mybatis: 1. Kaedah pelaksanaan 2. Prestasi 3. Perbandingan pengurusan objek; Pengenalan terperinci: 1. Kaedah pelaksanaan, Hibernate ialah penyelesaian pemetaan objek/hubungan yang lengkap yang memetakan objek ke jadual pangkalan data, manakala MyBatis memerlukan pembangun menulis pernyataan SQL dan ResultMap secara manual 2. Prestasi, Hibernate adalah mungkin dari segi kelajuan pembangunan Lebih cepat daripada MyBatis kerana Hibernate memudahkan lapisan DAO dan sebagainya.

Apakah kaedah pemetaan hubungan satu-ke-banyak dan banyak-ke-banyak dalam Java Hibernate Apakah kaedah pemetaan hubungan satu-ke-banyak dan banyak-ke-banyak dalam Java Hibernate May 27, 2023 pm 05:06 PM

Hibernate satu-ke-banyak dan banyak-ke-banyak Hibernate ialah rangka kerja ORM yang sangat baik yang memudahkan akses data antara aplikasi Java dan pangkalan data hubungan. Dalam Hibernate, kita boleh menggunakan perhubungan satu-ke-banyak dan banyak-ke-banyak untuk mengendalikan model data yang kompleks. Satu-ke-banyak Hibernate Dalam Hibernate, hubungan satu-dengan-banyak bermakna satu kelas entiti sepadan dengan berbilang kelas entiti lain. Sebagai contoh, pesanan boleh sepadan dengan berbilang item pesanan (OrderItem), dan pengguna (Pengguna) boleh sepadan dengan berbilang pesanan (Pesanan). Untuk melaksanakan perhubungan satu-ke-banyak dalam Hibernate, anda perlu menentukan atribut koleksi dalam kelas entiti untuk disimpan

Pengenalan kepada rangka kerja Hibernate dalam bahasa Java Pengenalan kepada rangka kerja Hibernate dalam bahasa Java Jun 10, 2023 am 11:35 AM

Hibernate ialah rangka kerja ORM sumber terbuka yang mengikat pemetaan data antara pangkalan data hubungan dan program Java antara satu sama lain, menjadikannya lebih mudah untuk pembangun mengakses data dalam pangkalan data. Menggunakan rangka kerja Hibernate boleh mengurangkan kerja menulis pernyataan SQL dan meningkatkan kecekapan pembangunan dan kebolehgunaan semula aplikasi. Mari perkenalkan rangka kerja Hibernate dari aspek berikut. 1. Kelebihan rangka kerja Hibernate: pemetaan hubungan objek, menyembunyikan butiran akses pangkalan data, membuat pembangunan

Bagaimanakah cache tahap kedua Hibernate berfungsi? Bagaimanakah cache tahap kedua Hibernate berfungsi? Sep 14, 2023 pm 07:45 PM

Caching membantu mengurangkan panggilan rangkaian pangkalan data apabila melaksanakan pertanyaan. Cache tahap 1 dan pemautan sesi. Ia dilaksanakan secara tersirat. Cache tahap pertama wujud sehingga objek sesi wujud. Setelah objek sesi ditamatkan/ditutup, tidak akan ada objek cache. Cache tahap kedua berfungsi untuk berbilang objek sesi. Ia dikaitkan dengan kilang sesi. Objek cache tahap kedua tersedia untuk semua sesi menggunakan kilang sesi tunggal. Objek cache ini akan ditamatkan apabila kilang sesi tertentu ditutup. Untuk melaksanakan cache tahap kedua kita perlu menambah kebergantungan berikut untuk menggunakan cache tahap kedua. <!--https://mvnrepository.com/artifact/net.sf.ehcache/ehcache--><de

Bagaimana untuk mengkonfigurasi persekitaran Hibernate dalam Java Bagaimana untuk mengkonfigurasi persekitaran Hibernate dalam Java Apr 26, 2023 am 11:55 AM

1. pemetaan hibernate mengkonfigurasi teg kelas, yang digunakan untuk mewujudkan hubungan antara kelas dan nama jadual: nama kelas, jadual: teg id nama jadual, hubungan yang sepadan antara atribut yang diwujudkan dan kunci utama dalam jadual. harta, dan penubuhan atribut biasa dalam kelas Hubungan yang sepadan dengan medan jadual (1) Pertama sekali, kita mesti belajar cara menulis fail konfigurasi pemetaan Semua orang mesti tahu bahawa fail konfigurasi pemetaan harus dalam pakej yang sama dengan kelas entiti, dan namanya hendaklah nama kelas.hbm.xml Jadi kita perlu mencipta fail Customer.hbm.xml di bawah pakej com.meimeixia.hibernate.demo01, tetapi bagaimanakah kekangannya. tertulis? Tersedia dalam Hiberna

Bagaimana untuk melaksanakan operasi kemas kini sisipan pukal dalam Hibernate? Bagaimana untuk melaksanakan operasi kemas kini sisipan pukal dalam Hibernate? Aug 27, 2023 pm 11:17 PM

Dalam artikel ini, kita akan melihat cara melakukan sisipan/kemas kini pukal dalam Hibernate. Setiap kali kami melaksanakan pernyataan sql, kami melakukannya dengan membuat panggilan rangkaian ke pangkalan data. Sekarang, jika kita perlu memasukkan 10 entri ke dalam jadual pangkalan data, maka kita perlu membuat 10 panggilan rangkaian. Sebaliknya, kami boleh mengoptimumkan panggilan rangkaian dengan menggunakan pemprosesan kelompok. Pemprosesan kelompok membolehkan kami melaksanakan satu set pernyataan SQL dalam satu panggilan rangkaian. Untuk memahami dan melaksanakan perkara ini, mari kita tentukan entiti kita − @EntitypublicclassParent{@Id@GeneratedValue(strategy=GenerationType.AUTO)

See all articles