隨筆-204  評(píng)論-90  文章-8  trackbacks-0
          1.在HBM里對(duì)應(yīng)CLOB型的字段為:java.sql.Clob,用MyEclipse DataExplorer生成后手動(dòng)改一下即可,當(dāng)然POJO也一樣啊,如:
          HBM:
          <
          hibernate-mapping>?
          <class?name="com.chinacars.filterdata.beans.TblWapNews2"?table="TBL_WAP_NEWS2">
          ????????
          <id?name="id"?type="java.lang.Long">
          ????????????
          <column?name="ID"?precision="22"?scale="0"?/>
          ????????
          </id>
          ??????
          <property?name="content"?type="java.sql.Clob">
          ????????????
          <column?name="CONTENT"?/>
          ????????
          </property>

          </class>
          </hibernate-mapping>
          POJO:
          import?java.sql.Clob;
          public?class?test?{
          ???
          private?Clob?content;
          ???
          }

          2.首先要給Clob里寫一個(gè)值,如:注意看一下有底色的地方就明白了吧
          package?com.chinacars.filterdata.modidata;

          import?java.lang.reflect.InvocationTargetException;
          import?java.sql.Clob;
          import?java.sql.SQLException;
          import?java.util.List;

          import?org.apache.commons.beanutils.PropertyUtils;
          import?org.apache.commons.logging.Log;
          import?org.apache.commons.logging.LogFactory;
          import?org.hibernate.Hibernate;

          import?com.chinacars.filterdata.beans.TblWapNews1;
          import?com.chinacars.filterdata.beans.TblWapNews2;
          import?com.chinacars.filterdata.dao.WapNews1DAO;
          import?com.chinacars.filterdata.dao.WapNews2DAO;
          import?com.chinacars.filterdata.util.StringProcess;

          public?class?ModiData2?{
          ????
          private?static?final?Log?logger?=?LogFactory.getLog(ModiData2.class);

          ????
          public?static?void?main(String[]?args)?{

          ????????WapNews1DAO?wapNews1DAO?
          =?new?WapNews1DAO();
          ????????WapNews2DAO?wapNews2DAO?
          =?new?WapNews2DAO();

          ????????TblWapNews1?news1?
          =?new?TblWapNews1();
          ????????TblWapNews2?news2?
          =?new?TblWapNews2();

          ????????List?list?
          =?wapNews1DAO.getWapNews();
          ????????Clob?contentClob?
          =?null;
          ????????String?cStr?
          =?"1";
          ????????String?title;
          ????????
          ????????
          for?(int?i?=?0;?i?<?list.size();?i++)?{
          ????????????logger.info(
          "============The?number?:?"?+?i);
          ????????????news1?
          =?(TblWapNews1)?list.get(i);
          ????????????contentClob?
          =?news1.getContent();
          ????????????
          try?{
          ????????????????PropertyUtils.copyProperties(news2,?news1);
          ????????????}
          ?catch?(IllegalAccessException?e)?{
          ????????????????logger.error(e);
          ????????????????e.printStackTrace();
          ????????????}
          ?catch?(InvocationTargetException?e)?{
          ????????????????logger.error(e);
          ????????????????e.printStackTrace();
          ????????????}
          ?catch?(NoSuchMethodException?e)?{
          ????????????????logger.error(e);
          ????????????????e.printStackTrace();
          ????????????}

          ????????????title?
          =?news1.getTitle();
          ????????????
          if(title?!=?null)?{
          ????????????????title?
          =?title.replaceAll("",?"");
          ????????????????news2.setTitle(title);
          ????????????}

          ????????????news2.setContent(Hibernate.createClob(cStr));
          ????????????
          try?{
          ????????????????wapNews2DAO.saveWapNews(news2,?StringProcess
          ????????????????????????.delInvalidChar(contentClob.getSubString(
          1,
          ????????????????????????????????(
          int)?contentClob.length())));
          ????????????????
          ????????????}
          ?catch?(SQLException?e)?{
          ????????????????logger.error(e);
          ????????????????e.printStackTrace();
          ????????????}

          ????????}


          ????}


          }

          3.開始寫入這內(nèi)容,最主要的是這里,我在這里卡了好久……
          ?? 主是下面紅色的部分,其它的有色部分都能搜到:看下面的代碼吧:^_^
          package?com.chinacars.filterdata.dao;

          import?java.io.Writer;
          import?java.sql.Clob;

          import?oracle.sql.CLOB;

          import?org.apache.commons.logging.Log;
          import?org.apache.commons.logging.LogFactory;
          import?org.hibernate.LockMode;
          import?org.hibernate.Session;
          import?org.hibernate.Transaction;
          import?org.hibernate.lob.SerializableClob;

          import?com.chinacars.filterdata.beans.TblWapNews2;

          public?class?WapNews2DAO?{
          ????
          ????
          private?static?final?Log?logger?=?LogFactory.getLog(WapNews2DAO.class);

          ????
          private?Session?oraSession;

          ????
          private?Transaction?tx;

          ????
          public?boolean?saveWapNews(TblWapNews2?news,?String?content)?{
          ????????
          try?{
          ????????????oraSession?
          =?SessionFactory.currentORASession();
          ????????????tx?
          =?oraSession.beginTransaction();
          ????????????oraSession.save(news);
          ????????????oraSession.flush();
          ????????????oraSession.refresh(news,?LockMode.UPGRADE);
          ????????????
          ????????????
          SerializableClob?clob?
          =?(SerializableClob)?news.getContent();
          ????????????Clob?jClob?
          =?clob.getWrappedClob();
          ????????????CLOB?oClob?
          =
          ?(CLOB)jClob;
          ????????????Writer?wt?
          =
          ?oClob.getCharacterOutputStream();????????????
          ????????????
          //byte[]?bData?=?content.getBytes();

          ????????????wt.write(content);
          ????????????wt.close();
          ????????????oraSession.flush();
          ????????????tx.commit();
          ????????????logger.info(
          "===================??INSERT?OK?");
          ????????}
          ?catch?(Exception?e)?{
          ????????????
          if?(tx?!=?null)
          ????????????????tx.rollback();
          ????????????logger.info(
          "===================??NOT?INSERT?");
          ????????????logger.info(e);
          ????????????e.printStackTrace();
          ????????}
          ?finally?{
          ????????????oraSession.close();
          ????????}

          ????????
          return?true;
          ????}


          }


          哈哈,就寫到這里了,快沒(méi)車了……
          有不懂的朋友,發(fā)e-mail吧!
          erdosqiao@163.com
          posted on 2006-05-11 18:40 一凡 閱讀(2157) 評(píng)論(0)  編輯  收藏 所屬分類: JAVA FRAMEWORK
          主站蜘蛛池模板: 定南县| 高阳县| 民乐县| 横峰县| 荣昌县| 佳木斯市| 新和县| 梅河口市| 普定县| 海门市| 仁化县| 宁强县| 阳高县| 栾城县| 五原县| 新乐市| 金平| 莫力| 山阴县| 凤城市| 云和县| 特克斯县| 年辖:市辖区| 宝丰县| 松江区| 沙雅县| 嘉鱼县| 睢宁县| 德昌县| 博兴县| 锡林郭勒盟| 柘荣县| 新营市| 九江县| 泾阳县| 乌兰浩特市| 青海省| 宁化县| 启东市| 嘉鱼县| 通江县|