예제 #1
0
  /**
   * Clob 데이타를 수행한다.
   *
   * @param sql String
   * @param data String
   * @return int
   * @throws SQLException
   */
  public int executeClob(String sql, String data) throws SQLException {
    KJFLog.sql(sql);

    Connection conn = null;
    PreparedStatement ps = null;
    ResultSet rs = null;

    int result = 0;

    try {
      conn = this.getConnection();
      ps = conn.prepareStatement(sql);

      CLOB cb = null;

      rs = ps.executeQuery();
      ;

      if (rs.next()) {
        cb = ((OracleResultSet) rs).getCLOB(1);
      }

      long pos = 0; // CLOB 데이타가 insert되는 위치의 offset값을 나타낸다.

      if (cb == null) {
        pos = 1;
      } else {
        pos = cb.length() + 1;
      }

      // CLOB.putString이 buf에 담긴 데이타를 해당 CLOB 컬럼에 update하는
      // 작업을 하게 된다.
      cb.putString(pos, data);

    } catch (SQLException e) {
      System.out.println(e);
      throw e;

    } finally {
      if (rs != null) rs.close();
      if (ps != null) ps.close();
      this.release(conn);
    }

    return result; // Update나 Insert된  row 수
  }
예제 #2
0
파일: Deal.java 프로젝트: dalinhuang/lgdzjc
 /**
  * 处理增加
  *
  * @param actionForm ActionForm 表单From
  * @param request HttpServletRequest Web请求
  * @param response HttpServletResponse Web结果
  * @throws CDealException 处理异常
  */
 public static long doAdd(
     AddForm pWebForm, HttpServletRequest request, HttpServletResponse response)
     throws CDealException, SQLException {
   long chapterid;
   Connection mconn = null;
   PreparedStatement pstmt = null;
   try {
     CUserBean loginUser =
         (CUserBean) request.getSession().getAttribute(CConstants.USER_BEAN); // 用户BEAN
     /*TPubFlfggl aPoBean = webForm2PoForm(pWebForm);  // 将页面的Form的数据拷内到实体对象
     aPoBean.setId(CTools.getNewNumID());
     aPoBean.setCreateperson(loginUser.getId());  // 用户 ID
     aPoBean.setCreatetime(CTools.getCurrentTimestamp());  // 当前时间
     CHibernateUtil.saveObject(aPoBean);  // 调用 PO 层进行增加 */
     chapterid = CTools.getNewNumID();
     mconn = CDBManager.getConn();
     mconn.setAutoCommit(false); // 将自动提交设置为否
     String sql =
         "insert into t_pub_law (id,createperson,createtime,title,classification,issuedate,orderno,spare1,spare2,spare3,spare4,businesstype,bigcontent) values(?,?,?,?,?,?,?,?,?,?,?,?,?)";
     pstmt = mconn.prepareStatement(sql);
     pstmt.setLong(1, chapterid);
     pstmt.setLong(2, loginUser.getId());
     pstmt.setTimestamp(3, CTools.getCurrentTimestamp());
     pstmt.setString(4, pWebForm.getTPubFlfggl().getTitle());
     CLog.println("4====title=" + pWebForm.getTPubFlfggl().getTitle());
     pstmt.setInt(5, pWebForm.getTPubFlfggl().getClassification());
     CLog.println("5====classification=" + pWebForm.getTPubFlfggl().getClassification());
     pstmt.setTimestamp(
         6,
         CTools.convertStringToTimestamp(
             pWebForm.getTPubFlfggl().getIssueTime_str(), "yyyy-mm-dd"));
     pstmt.setLong(7, pWebForm.getTPubFlfggl().getOrderno());
     pstmt.setString(8, pWebForm.getTPubFlfggl().getSpare1());
     pstmt.setString(9, pWebForm.getTPubFlfggl().getSpare2());
     pstmt.setString(10, pWebForm.getTPubFlfggl().getSpare3());
     pstmt.setString(11, pWebForm.getTPubFlfggl().getSpare4());
     pstmt.setInt(12, pWebForm.getTPubFlfggl().getBusinesstype());
     pstmt.setClob(13, CLOB.empty_lob()); // 构造空CLOB对象
     pstmt.executeUpdate();
     pstmt.close();
     // =======================再次从库表中读出,获得CLOB句柄
     pstmt =
         mconn.prepareStatement("select a.bigcontent from t_pub_law a where a.id = ? for update");
     pstmt.setLong(1, chapterid);
     ResultSet rs = pstmt.executeQuery();
     rs.next();
     CLOB textClob = (CLOB) rs.getClob(1);
     textClob.putString(
         1,
         pWebForm
             .getTPubFlfggl()
             .getBigContent_str()
             .replaceAll("\n", "<br>")); // 将页面的法律法规内容写入Clob
     pstmt = mconn.prepareStatement("update t_pub_law set bigcontent=? where id=?");
     pstmt.setClob(1, textClob);
     pstmt.setLong(2, chapterid);
     pstmt.executeUpdate();
     return chapterid;
   } catch (Exception e) {
     throw new CDealException("执行增加" + mModuleName + "时失败。", e);
   } finally {
     if (pstmt != null) {
       pstmt.close();
     }
     mconn.commit();
     if (mconn != null) {
       mconn.close();
     }
   }
 }
예제 #3
0
파일: Deal.java 프로젝트: dalinhuang/lgdzjc
  /**
   * 处理修改
   *
   * @param actionForm ActionForm 表单From
   * @param request HttpServletRequest Web请求
   * @param response HttpServletResponse Web结果
   * @throws CDealException 处理异常
   */
  public static void doEdit(
      EditForm pWebForm, HttpServletRequest request, HttpServletResponse response)
      throws CDealException, SQLException {
    CUserBean loginUser =
        (CUserBean) request.getSession().getAttribute(CConstants.USER_BEAN); // 用户BEAN
    long chapterid = pWebForm.getTPubFlfggl().getId();
    Connection mconn = null;
    PreparedStatement pstmt = null;
    try {
      /*TPubFlfggl aPoBean = webForm2PoForm(pWebForm);  // 将页面的Form的数据拷内到实体对象
      aPoBean.setModperson(loginUser.getId());  // 用户 ID
      aPoBean.setModtime(CTools.getCurrentTimestamp());  // 当前时间
      CHibernateUtil.updateObject(aPoBean);  // 调用 PO 层进行修改 */
      mconn = CDBManager.getConn();
      mconn.setAutoCommit(false); // 将自动提交设置为否
      String sql =
          "update t_pub_law a set a.modperson=?,a.modtime=?,a.title=?,a.classification=?,a.businesstype=?,a.issuedate=?,a.orderno=?,a.bigcontent = ? where a.id = ? ";
      pstmt = mconn.prepareStatement(sql);
      pstmt.setLong(1, loginUser.getId());
      pstmt.setTimestamp(2, CTools.getCurrentTimestamp());
      pstmt.setString(3, pWebForm.getTPubFlfggl().getTitle());
      pstmt.setInt(4, pWebForm.getTPubFlfggl().getClassification());
      pstmt.setInt(5, pWebForm.getTPubFlfggl().getBusinesstype());
      pstmt.setTimestamp(
          6,
          CTools.convertStringToTimestamp(
              pWebForm.getTPubFlfggl().getIssueTime_str(), "yyyy-MM-dd"));
      pstmt.setLong(7, pWebForm.getTPubFlfggl().getOrderno());
      pstmt.setClob(8, CLOB.empty_lob());
      pstmt.setLong(9, chapterid);
      pstmt.executeUpdate();
      pstmt.close();

      // =======================再次从库表中读出,获得CLOB句柄
      pstmt =
          mconn.prepareStatement("select a.bigcontent from t_pub_law a where a.id = ? for update");
      pstmt.setLong(1, chapterid);
      ResultSet rs = pstmt.executeQuery();
      rs.next();
      CLOB textClob = (CLOB) rs.getClob(1);
      if (textClob == null) {
        CLog.println("340========textClob is null");
      }
      if (pWebForm.getTPubFlfggl().getBigContent_str() == null) {
        CLog.println("343========BigContent_str is null");
      }
      textClob.putString(
          1,
          pWebForm
              .getTPubFlfggl()
              .getBigContent_str()
              .replaceAll("\n", "<br>")); // 将页面的法律法规内容写入Clob
      pstmt = mconn.prepareStatement("update t_pub_law set bigcontent=? where id=?");
      pstmt.setClob(1, textClob);
      pstmt.setLong(2, chapterid);
      pstmt.executeUpdate();
    } catch (Exception e) {
      throw new CDealException("执行修改" + mModuleName + "时失败。", e);
    } finally {
      if (pstmt != null) {
        pstmt.close();
      }
      mconn.commit();
      if (mconn != null) {
        mconn.close();
      }
    }
  }