天天看點

Hibernate操作Clob類型完整版!

最近,使用Hibernate操作Clob。上網看了不少資料,感覺五花八門,實作起來的方法都各不相同。

有的是Hibernate2.0上的。有的是加入了spring的支援,把clob當成string做處理(的确很好,但是不适合新手)

........

而且,某些代碼根本都執行不了~浪費我們的時間,55555555。

于是,法老參考了一些官網的方法加以修改,幹脆重新寫一個完整元操作版本。

包含:insert,update,delete,select 四大基本方法!

供大家參考!

-------------------------------------------

測試環境介紹:

WINDWOS XP SP2;Eclipse 3.2;JDK 1.4.2

Hibernate-Version: 3.0.5  ; oracle 9i ;

=====================

重點說明:

1。配置檔案hbm.xml裡把clob的type="clob"

片段如下

<property name="bsznContent" type="clob">

            <column name="BSZN_CONTENT" not-null="true" />

</property>

2。實體bean中,導入java.sql.Clob包 (注意不是oracle.sql.CLOB  個人習慣用血統純點的.這裡鄙視一下oracle。嘿嘿)

   在該字段對應的實體檔案裡面,增加以下兩個變量及其相應的get/set方法

import java.sql.Clob;

...

private Clob bsznContent;

private String bsznContentString;

...

    public Clob getBsznContent() {

        return this.bsznContent;

    }

    public void setBsznContent(Clob bsznContent) {

        this.bsznContent = bsznContent;

    }

    public String getBsznContentString() {

        return bsznContentString;

    }

    public void setBsznContentString(String bsznContentString) {

        this.bsznContentString = bsznContentString;

    }

bsznContent 屬性是預設的clob,bsznContentString 屬性是對bsznContent做轉換時候用的

----------------------------------------

好了廢話不多說,把代碼寫下來吧~

建表SQL

=================

Hibernate操作Clob類型完整版!
create table "cmp_bszn"  (
Hibernate操作Clob類型完整版!
   "id"                 INTEGER                         not null,
Hibernate操作Clob類型完整版!
   "kind"               CHAR(2)                         not null,
Hibernate操作Clob類型完整版!
   "bszn_title1"        VARCHAR2(200)                   not null,
Hibernate操作Clob類型完整版!
   "bszn_title2"        VARCHAR2(200),
Hibernate操作Clob類型完整版!
   "bszn_code"          VARCHAR2(50),
Hibernate操作Clob類型完整版!
   "bszn_bumen"         VARCHAR2(50),
Hibernate操作Clob類型完整版!
   "bszn_date"          VARCHAR2(50),
Hibernate操作Clob類型完整版!
   "bszn_content"       CLOB                            not null,
Hibernate操作Clob類型完整版!
   "sys_date"           DATE                           default SYSDATE not null,
Hibernate操作Clob類型完整版!
   constraint PK_CMP_BSZN primary key ("id")
Hibernate操作Clob類型完整版!
);

hibernate.cfg.xml 由于調試用,用的是JDBC連接配接方法,要使用連接配接池,請自行修改.

記得自己把資料庫位址和使用者名,秘密改下

Hibernate操作Clob類型完整版!
<?xml version='1.0' encoding='UTF-8'?>
Hibernate操作Clob類型完整版!
<!DOCTYPE hibernate-configuration PUBLIC
Hibernate操作Clob類型完整版!
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
Hibernate操作Clob類型完整版!
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
<!-- Generated by MyEclipse Hibernate Tools.                   -->
Hibernate操作Clob類型完整版!
<hibernate-configuration>
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
<session-factory>
Hibernate操作Clob類型完整版!
    <property name="connection.username">sa</property>
Hibernate操作Clob類型完整版!
    <property name="connection.url">
Hibernate操作Clob類型完整版!
        jdbc:oracle:thin:@127.0.0.1:1521:web
Hibernate操作Clob類型完整版!
    </property>
Hibernate操作Clob類型完整版!
    <property name="dialect">
Hibernate操作Clob類型完整版!
        org.hibernate.dialect.Oracle9Dialect
Hibernate操作Clob類型完整版!
    </property>
Hibernate操作Clob類型完整版!
    <property name="connection.password">saweb</property>
Hibernate操作Clob類型完整版!
    <property name="connection.driver_class">
Hibernate操作Clob類型完整版!
        oracle.jdbc.driver.OracleDriver
Hibernate操作Clob類型完整版!
    </property>
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
    <property name="show_sql">true</property>
Hibernate操作Clob類型完整版!
    <property name="connection.useUnicode">true</property>
Hibernate操作Clob類型完整版!
    <property name="connection.characterEncoding">GBK</property>
Hibernate操作Clob類型完整版!
    <!-- 設定事務管理的工廠類  -->
Hibernate操作Clob類型完整版!
    <property name="hibernate.transaction.factory_class">
Hibernate操作Clob類型完整版!
        org.hibernate.transaction.JDBCTransactionFactory
Hibernate操作Clob類型完整版!
    </property>
Hibernate操作Clob類型完整版!
    <property name="hibernate.query.factory_class">
Hibernate操作Clob類型完整版!
        org.hibernate.hql.classic.ClassicQueryTranslatorFactory
Hibernate操作Clob類型完整版!
    </property>
Hibernate操作Clob類型完整版!
    <mapping resource="clob/cmpBszn.hbm.xml" />
Hibernate操作Clob類型完整版!
</session-factory>
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
</hibernate-configuration>
cmpBszn.hbm.xml
Hibernate操作Clob類型完整版!
<?xml version="1.0"?>
Hibernate操作Clob類型完整版!
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
Hibernate操作Clob類型完整版!
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
Hibernate操作Clob類型完整版!
<!-- 
Hibernate操作Clob類型完整版!
    Mapping file autogenerated by MyEclipse - Hibernate Tools
Hibernate操作Clob類型完整版!
-->
Hibernate操作Clob類型完整版!
<hibernate-mapping>
Hibernate操作Clob類型完整版!
    <class name="cmpBszn" table="CMP_BSZN" schema="SA">
Hibernate操作Clob類型完整版!
        <id name="id" type="java.lang.Long">
Hibernate操作Clob類型完整版!
            <column name="ID" precision="22" scale="0" />
Hibernate操作Clob類型完整版!
            <generator class="increment"></generator>
Hibernate操作Clob類型完整版!
        </id>
Hibernate操作Clob類型完整版!
        <property name="kind" type="java.lang.String">
Hibernate操作Clob類型完整版!
            <column name="KIND" length="2" not-null="true" />
Hibernate操作Clob類型完整版!
        </property>
Hibernate操作Clob類型完整版!
        <property name="bsznTitle1" type="java.lang.String">
Hibernate操作Clob類型完整版!
            <column name="BSZN_TITLE1" length="200" not-null="true" />
Hibernate操作Clob類型完整版!
        </property>
Hibernate操作Clob類型完整版!
        <property name="bsznTitle2" type="java.lang.String">
Hibernate操作Clob類型完整版!
            <column name="BSZN_TITLE2" length="200" />
Hibernate操作Clob類型完整版!
        </property>
Hibernate操作Clob類型完整版!
        <property name="bsznCode" type="java.lang.String">
Hibernate操作Clob類型完整版!
            <column name="BSZN_CODE" length="50" />
Hibernate操作Clob類型完整版!
        </property>
Hibernate操作Clob類型完整版!
        <property name="bsznBumen" type="java.lang.String">
Hibernate操作Clob類型完整版!
            <column name="BSZN_BUMEN" length="50" />
Hibernate操作Clob類型完整版!
        </property>
Hibernate操作Clob類型完整版!
        <property name="bsznDate" type="java.lang.String">
Hibernate操作Clob類型完整版!
            <column name="BSZN_DATE" length="50" />
Hibernate操作Clob類型完整版!
        </property>
Hibernate操作Clob類型完整版!
        <property name="bsznContent" type="clob">
Hibernate操作Clob類型完整版!
            <column name="BSZN_CONTENT" not-null="true" />
Hibernate操作Clob類型完整版!
        </property>
Hibernate操作Clob類型完整版!
        <property name="sysDate" type="java.util.Date">
Hibernate操作Clob類型完整版!
            <column name="SYS_DATE" length="7" not-null="true" />
Hibernate操作Clob類型完整版!
        </property>
Hibernate操作Clob類型完整版!
    </class>
Hibernate操作Clob類型完整版!
</hibernate-mapping>
Hibernate操作Clob類型完整版!
抽象類AbstractcmpBszn.java
Hibernate操作Clob類型完整版!
// default package
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
import java.sql.Clob;
Hibernate操作Clob類型完整版!
import java.util.Date;
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
public abstract class AbstractcmpBszn  implements java.io.Serializable ...{
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
    // Fields    
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
     private Long id;
Hibernate操作Clob類型完整版!
     private String kind;
Hibernate操作Clob類型完整版!
     private String bsznTitle1;
Hibernate操作Clob類型完整版!
     private String bsznTitle2;
Hibernate操作Clob類型完整版!
     private String bsznCode;
Hibernate操作Clob類型完整版!
     private String bsznBumen;
Hibernate操作Clob類型完整版!
     private String bsznDate;
Hibernate操作Clob類型完整版!
     private Clob bsznContent;
Hibernate操作Clob類型完整版!
     private String bsznContentString;
Hibernate操作Clob類型完整版!
     private Date sysDate;
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
    // Constructors
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
    public AbstractcmpBszn() ...{
Hibernate操作Clob類型完整版!
    }
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
    public AbstractcmpBszn(String kind, String bsznTitle1, Clob bsznContent, Date sysDate) ...{
Hibernate操作Clob類型完整版!
        this.kind = kind;
Hibernate操作Clob類型完整版!
        this.bsznTitle1 = bsznTitle1;
Hibernate操作Clob類型完整版!
        this.bsznContent = bsznContent;
Hibernate操作Clob類型完整版!
        this.sysDate = sysDate;
Hibernate操作Clob類型完整版!
    }
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
    public AbstractcmpBszn(String kind, String bsznTitle1, String bsznTitle2, String bsznCode, String bsznBumen, String bsznDate, Clob bsznContent, Date sysDate) ...{
Hibernate操作Clob類型完整版!
        this.kind = kind;
Hibernate操作Clob類型完整版!
        this.bsznTitle1 = bsznTitle1;
Hibernate操作Clob類型完整版!
        this.bsznTitle2 = bsznTitle2;
Hibernate操作Clob類型完整版!
        this.bsznCode = bsznCode;
Hibernate操作Clob類型完整版!
        this.bsznBumen = bsznBumen;
Hibernate操作Clob類型完整版!
        this.bsznDate = bsznDate;
Hibernate操作Clob類型完整版!
        this.bsznContent = bsznContent;
Hibernate操作Clob類型完整版!
        this.sysDate = sysDate;
Hibernate操作Clob類型完整版!
    }
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
    // Property accessors
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
    public Long getId() ...{
Hibernate操作Clob類型完整版!
        return this.id;
Hibernate操作Clob類型完整版!
    }
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
    public void setId(Long id) ...{
Hibernate操作Clob類型完整版!
        this.id = id;
Hibernate操作Clob類型完整版!
    }
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
    public String getKind() ...{
Hibernate操作Clob類型完整版!
        return this.kind;
Hibernate操作Clob類型完整版!
    }
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
    public void setKind(String kind) ...{
Hibernate操作Clob類型完整版!
        this.kind = kind;
Hibernate操作Clob類型完整版!
    }
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
    public String getBsznTitle1() ...{
Hibernate操作Clob類型完整版!
        return this.bsznTitle1;
Hibernate操作Clob類型完整版!
    }
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
    public void setBsznTitle1(String bsznTitle1) ...{
Hibernate操作Clob類型完整版!
        this.bsznTitle1 = bsznTitle1;
Hibernate操作Clob類型完整版!
    }
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
    public String getBsznTitle2() ...{
Hibernate操作Clob類型完整版!
        return this.bsznTitle2;
Hibernate操作Clob類型完整版!
    }
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
    public void setBsznTitle2(String bsznTitle2) ...{
Hibernate操作Clob類型完整版!
        this.bsznTitle2 = bsznTitle2;
Hibernate操作Clob類型完整版!
    }
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
    public String getBsznCode() ...{
Hibernate操作Clob類型完整版!
        return this.bsznCode;
Hibernate操作Clob類型完整版!
    }
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
    public void setBsznCode(String bsznCode) ...{
Hibernate操作Clob類型完整版!
        this.bsznCode = bsznCode;
Hibernate操作Clob類型完整版!
    }
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
    public String getBsznBumen() ...{
Hibernate操作Clob類型完整版!
        return this.bsznBumen;
Hibernate操作Clob類型完整版!
    }
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
    public void setBsznBumen(String bsznBumen) ...{
Hibernate操作Clob類型完整版!
        this.bsznBumen = bsznBumen;
Hibernate操作Clob類型完整版!
    }
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
    public String getBsznDate() ...{
Hibernate操作Clob類型完整版!
        return this.bsznDate;
Hibernate操作Clob類型完整版!
    }
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
    public void setBsznDate(String bsznDate) ...{
Hibernate操作Clob類型完整版!
        this.bsznDate = bsznDate;
Hibernate操作Clob類型完整版!
    }
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
    public Clob getBsznContent() ...{
Hibernate操作Clob類型完整版!
        return this.bsznContent;
Hibernate操作Clob類型完整版!
    }
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
    public void setBsznContent(Clob bsznContent) ...{
Hibernate操作Clob類型完整版!
        this.bsznContent = bsznContent;
Hibernate操作Clob類型完整版!
    }
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
    public Date getSysDate() ...{
Hibernate操作Clob類型完整版!
        return this.sysDate;
Hibernate操作Clob類型完整版!
    }
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
    public void setSysDate(Date sysDate) ...{
Hibernate操作Clob類型完整版!
        this.sysDate = sysDate;
Hibernate操作Clob類型完整版!
    }
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
    public String getBsznContentString() ...{
Hibernate操作Clob類型完整版!
        return bsznContentString;
Hibernate操作Clob類型完整版!
    }
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
    public void setBsznContentString(String bsznContentString) ...{
Hibernate操作Clob類型完整版!
        this.bsznContentString = bsznContentString;
Hibernate操作Clob類型完整版!
    }
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
}
實體類cmpBszn
Hibernate操作Clob類型完整版!
// default package
Hibernate操作Clob類型完整版!
// Generated by MyEclipse - Hibernate Tools
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
import java.sql.Clob;
Hibernate操作Clob類型完整版!
import java.util.Date;
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
public class cmpBszn extends AbstractcmpBszn implements java.io.Serializable ...{
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
    // Constructors
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
    public cmpBszn() ...{
Hibernate操作Clob類型完整版!
    }
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
    public cmpBszn(String kind, String bsznTitle1, Clob bsznContent, Date sysDate) ...{
Hibernate操作Clob類型完整版!
        super(kind, bsznTitle1, bsznContent, sysDate);        
Hibernate操作Clob類型完整版!
    }
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
    public cmpBszn(String kind, String bsznTitle1, String bsznTitle2, String bsznCode, String bsznBumen, String bsznDate, Clob bsznContent, Date sysDate) ...{
Hibernate操作Clob類型完整版!
        super(kind, bsznTitle1, bsznTitle2, bsznCode, bsznBumen, bsznDate, bsznContent, sysDate);        
Hibernate操作Clob類型完整版!
    }
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
}
Hibernate操作Clob類型完整版!
SessionManager管理類(這個是通用的,如果你要自己寫也可以)
Hibernate操作Clob類型完整版!
package Hib_DB;
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
import org.hibernate.HibernateException;
Hibernate操作Clob類型完整版!
import org.hibernate.Session;
Hibernate操作Clob類型完整版!
import org.hibernate.cfg.Configuration;
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
public class SessionManager ...{
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
    private static String CONFIG_FILE_LOCATION = "/hibernate.cfg.xml";
Hibernate操作Clob類型完整版!
    private static final ThreadLocal threadLocal = new ThreadLocal();
Hibernate操作Clob類型完整版!
    private  static Configuration configuration = new Configuration();
Hibernate操作Clob類型完整版!
    private static org.hibernate.SessionFactory sessionFactory;
Hibernate操作Clob類型完整版!
    private static String configFile = CONFIG_FILE_LOCATION;
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
    private SessionManager() ...{
Hibernate操作Clob類型完整版!
    }
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
    public static Session getSession() throws HibernateException ...{
Hibernate操作Clob類型完整版!
        Session session = (Session) threadLocal.get();
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
        if (session == null || !session.isOpen()) ...{
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
            if (sessionFactory == null) ...{
Hibernate操作Clob類型完整版!
                rebuildSessionFactory();
Hibernate操作Clob類型完整版!
            }
Hibernate操作Clob類型完整版!
            session = (sessionFactory != null) ? sessionFactory.openSession()
Hibernate操作Clob類型完整版!
                    : null;
Hibernate操作Clob類型完整版!
            threadLocal.set(session);
Hibernate操作Clob類型完整版!
        }
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
        return session;
Hibernate操作Clob類型完整版!
    }
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
    public static void rebuildSessionFactory() ...{
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
        try ...{
Hibernate操作Clob類型完整版!
            configuration.configure(configFile);
Hibernate操作Clob類型完整版!
            sessionFactory = configuration.buildSessionFactory();
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
        } catch (Exception e) ...{
Hibernate操作Clob類型完整版!
            System.err
Hibernate操作Clob類型完整版!
                    .println("%%%% Error Creating SessionFactory %%%%");
Hibernate操作Clob類型完整版!
            e.printStackTrace();
Hibernate操作Clob類型完整版!
        }
Hibernate操作Clob類型完整版!
    }
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
    public static void closeSession() throws HibernateException ...{
Hibernate操作Clob類型完整版!
        Session session = (Session) threadLocal.get();
Hibernate操作Clob類型完整版!
        threadLocal.set(null);
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
        if (session != null) ...{
Hibernate操作Clob類型完整版!
            session.close();
Hibernate操作Clob類型完整版!
        }
Hibernate操作Clob類型完整版!
    }
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
    public static org.hibernate.SessionFactory getSessionFactory() ...{
Hibernate操作Clob類型完整版!
        return sessionFactory;
Hibernate操作Clob類型完整版!
    }
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
    public static void setConfigFile(String configFile) ...{
Hibernate操作Clob類型完整版!
        SessionManager.configFile = configFile;
Hibernate操作Clob類型完整版!
        sessionFactory = null;
Hibernate操作Clob類型完整版!
    }
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
    public static Configuration getConfiguration() ...{
Hibernate操作Clob類型完整版!
        return configuration;
Hibernate操作Clob類型完整版!
    }
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
}
Test_Work實際測試類
Hibernate操作Clob類型完整版!
import java.sql.SQLException;
Hibernate操作Clob類型完整版!
import java.util.Date;
Hibernate操作Clob類型完整版!
import java.util.Iterator;
Hibernate操作Clob類型完整版!
import java.util.List;
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
import org.hibernate.Hibernate;
Hibernate操作Clob類型完整版!
import org.hibernate.HibernateException;
Hibernate操作Clob類型完整版!
import org.hibernate.Query;
Hibernate操作Clob類型完整版!
import org.hibernate.Session;
Hibernate操作Clob類型完整版!
import org.hibernate.Transaction;
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
import Hib_DB.SessionManager;
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
public class Test_Work ...{
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
    public static void main(String[] args) throws SQLException ...{
Hibernate操作Clob類型完整版!
        Test_Work exam = new Test_Work();
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
         exam.InsertRecords();
Hibernate操作Clob類型完整版!
         exam.QueryRecords();
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
         exam.Demo_Update(new Long(5));
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
         exam.DeleteRecords(new Long(3));
Hibernate操作Clob類型完整版!
    }
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
    private void QueryRecords() throws SQLException ...{
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
        try ...{
Hibernate操作Clob類型完整版!
            Session session = SessionManager.getSession();
Hibernate操作Clob類型完整版!
            Query records = session.createQuery("from cmpBszn order by id");
Hibernate操作Clob類型完整版!
            List record = records.list();
Hibernate操作Clob類型完整版!
            Iterator iterator = record.iterator();
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
            while (iterator.hasNext()) ...{
Hibernate操作Clob類型完整版!
                cmpBszn obj = (cmpBszn) iterator.next();
Hibernate操作Clob類型完整版!
                System.out.println(obj.getId() + "" + obj.getKind());
Hibernate操作Clob類型完整版!
                java.sql.Clob clob = obj.getBsznContent();
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
                if (clob != null) ...{
Hibernate操作Clob類型完整版!
                    String b1 = clob.getSubString(1, (int) clob.length());
Hibernate操作Clob類型完整版!
                    obj.setBsznContentString(b1);
Hibernate操作Clob類型完整版!
                }
Hibernate操作Clob類型完整版!
                System.out.println(obj.getBsznContentString());
Hibernate操作Clob類型完整版!
                System.out.println("----------------------------------");
Hibernate操作Clob類型完整版!
            }
Hibernate操作Clob類型完整版!
            System.out.println(record.size());
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
        } catch (HibernateException e) ...{
Hibernate操作Clob類型完整版!
            System.out.println("error");
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
        } finally ...{
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
            try ...{
Hibernate操作Clob類型完整版!
                // Step 5 - close the session
Hibernate操作Clob類型完整版!
                SessionManager.closeSession();
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
            } catch (HibernateException e1) ...{
Hibernate操作Clob類型完整版!
                // do nothing
Hibernate操作Clob類型完整版!
            }
Hibernate操作Clob類型完整版!
        }
Hibernate操作Clob類型完整版!
    }
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
    private void QueryRecords(Long id) throws SQLException ...{
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
        try ...{
Hibernate操作Clob類型完整版!
            Session session = SessionManager.getSession();
Hibernate操作Clob類型完整版!
            Query records = session
Hibernate操作Clob類型完整版!
                    .createQuery("from cmpBszn order by id where id = " + id);
Hibernate操作Clob類型完整版!
            List record = records.list();
Hibernate操作Clob類型完整版!
            Iterator iterator = record.iterator();
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
            while (iterator.hasNext()) ...{
Hibernate操作Clob類型完整版!
                cmpBszn obj = (cmpBszn) iterator.next();
Hibernate操作Clob類型完整版!
                java.sql.Clob clob = obj.getBsznContent();
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
                if (clob != null) ...{
Hibernate操作Clob類型完整版!
                    String b1 = clob.getSubString(1, (int) clob.length());
Hibernate操作Clob類型完整版!
                    obj.setBsznContentString(b1);
Hibernate操作Clob類型完整版!
                }
Hibernate操作Clob類型完整版!
                System.out.println(obj.getId() + "" + obj.getKind() + ""
Hibernate操作Clob類型完整版!
                        + obj.getBsznTitle1());
Hibernate操作Clob類型完整版!
                System.out.println("内容:" + obj.getBsznContentString());
Hibernate操作Clob類型完整版!
                System.out.println("----------------------------------");
Hibernate操作Clob類型完整版!
            }
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
        } catch (HibernateException e) ...{
Hibernate操作Clob類型完整版!
            System.out.println("error");
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
        } finally ...{
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
            try ...{
Hibernate操作Clob類型完整版!
                // Step 5 - close the session
Hibernate操作Clob類型完整版!
                SessionManager.closeSession();
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
            } catch (HibernateException e1) ...{
Hibernate操作Clob類型完整版!
                // do nothing
Hibernate操作Clob類型完整版!
            }
Hibernate操作Clob類型完整版!
        }
Hibernate操作Clob類型完整版!
    }
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
    private void InsertRecords() ...{
Hibernate操作Clob類型完整版!
        String kind = "03";
Hibernate操作Clob類型完整版!
        String bsznTitle1 = "ttttttttt";
Hibernate操作Clob類型完整版!
        String bsznContentString = "哈哈成功了";
Hibernate操作Clob類型完整版!
        Date sysDate = new Date();
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
        try ...{
Hibernate操作Clob類型完整版!
            Session session = SessionManager.getSession();
Hibernate操作Clob類型完整版!
            Transaction tx = session.beginTransaction();
Hibernate操作Clob類型完整版!
            cmpBszn obj = new cmpBszn();
Hibernate操作Clob類型完整版!
            obj.setKind(kind);
Hibernate操作Clob類型完整版!
            obj.setBsznTitle1(bsznTitle1);
Hibernate操作Clob類型完整版!
            obj.setSysDate(sysDate);
Hibernate操作Clob類型完整版!
            obj.setBsznContent(Hibernate.createClob(bsznContentString));//關鍵createClob方法
Hibernate操作Clob類型完整版!
            session.save(obj);
Hibernate操作Clob類型完整版!
            tx.commit();
Hibernate操作Clob類型完整版!
            System.out.println("Save Success.");
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
        } catch (Exception e) ...{
Hibernate操作Clob類型完整版!
            System.out.println("Save failed.");
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
        } finally ...{
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
            try ...{
Hibernate操作Clob類型完整版!
                SessionManager.closeSession();
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
            } catch (HibernateException e1) ...{
Hibernate操作Clob類型完整版!
            }
Hibernate操作Clob類型完整版!
        }
Hibernate操作Clob類型完整版!
    }
Hibernate操作Clob類型完整版!
//修改
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
    private void UpdateRecords(Long id) ...{
Hibernate操作Clob類型完整版!
        String kind = "03";
Hibernate操作Clob類型完整版!
        String bsznTitle1 = "update_test";
Hibernate操作Clob類型完整版!
        String bsznContentString = "修改更新";
Hibernate操作Clob類型完整版!
        Date sysDate = new Date();
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
        try ...{
Hibernate操作Clob類型完整版!
            Session session = SessionManager.getSession();
Hibernate操作Clob類型完整版!
            Transaction tx = session.beginTransaction();
Hibernate操作Clob類型完整版!
            cmpBszn obj = (cmpBszn) session.load(cmpBszn.class, id);
Hibernate操作Clob類型完整版!
            obj.setKind(kind);
Hibernate操作Clob類型完整版!
            obj.setBsznTitle1(bsznTitle1);
Hibernate操作Clob類型完整版!
            obj.setSysDate(sysDate);
Hibernate操作Clob類型完整版!
            obj.setBsznContent(Hibernate.createClob(bsznContentString));// 關鍵
Hibernate操作Clob類型完整版!
            session.update(obj);
Hibernate操作Clob類型完整版!
            tx.commit();
Hibernate操作Clob類型完整版!
            System.out.println("Save Success.");
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
        } catch (Exception e) ...{
Hibernate操作Clob類型完整版!
            System.out.println("Save failed.");
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
        } finally ...{
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
            try ...{
Hibernate操作Clob類型完整版!
                SessionManager.closeSession();
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
            } catch (HibernateException e1) ...{
Hibernate操作Clob類型完整版!
            }
Hibernate操作Clob類型完整版!
        }
Hibernate操作Clob類型完整版!
    }
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
    private void DeleteRecords(Long id) ...{
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
        try ...{
Hibernate操作Clob類型完整版!
            Session session = SessionManager.getSession();
Hibernate操作Clob類型完整版!
            cmpBszn message = (cmpBszn) session.load(cmpBszn.class, id);
Hibernate操作Clob類型完整版!
            Transaction tx = session.beginTransaction();
Hibernate操作Clob類型完整版!
            session.delete(message);
Hibernate操作Clob類型完整版!
            tx.commit();
Hibernate操作Clob類型完整版!
            System.out.println("Delete successful.");
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
        } catch (HibernateException e) ...{
Hibernate操作Clob類型完整版!
            // TODO 自動生成 catch 塊
Hibernate操作Clob類型完整版!
            e.printStackTrace();
Hibernate操作Clob類型完整版!
            System.out.println("删除失敗!");
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
        } finally ...{
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
            try ...{
Hibernate操作Clob類型完整版!
                // Step 5 - close the session
Hibernate操作Clob類型完整版!
                SessionManager.closeSession();
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
            } catch (HibernateException e1) ...{
Hibernate操作Clob類型完整版!
                // do nothing
Hibernate操作Clob類型完整版!
            }
Hibernate操作Clob類型完整版!
        }
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
    }
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
Hibernate操作Clob類型完整版!
    private void Demo_Update(Long id) throws SQLException ...{
Hibernate操作Clob類型完整版!
        System.out.println("修改前:");
Hibernate操作Clob類型完整版!
        this.QueryRecords(id);
Hibernate操作Clob類型完整版!
        this.UpdateRecords(id);
Hibernate操作Clob類型完整版!
        System.out.println("修改後:");
Hibernate操作Clob類型完整版!
        this.QueryRecords(id);
Hibernate操作Clob類型完整版!
    }
Hibernate操作Clob類型完整版!
}
Hibernate操作Clob類型完整版!

--------------------------------------------

好了~基本的核心代碼都在這裡了~

寫完後才發現QueryRecords(Long id)這個方法寫的比較呆~效率不高~大家可以自己改寫~

參考文章:

關于Clob類型在Hibernate中的應用小結 找不到原始位址了

Mapping a Clob to a Stringhttp://www.hibernate.org/76.html

Using Clobs with Oracle and Hibernate 1.2