⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 attachmentpersistentbase.java

📁 OA典型例子
💻 JAVA
字号:

/*
 * attachmentPersistentBase.java
 * Generated using xgen and texen from beanpersistentbase.vm
 * Thu Mar 04 20:02:34 CST 2004
 */

package com.sure.oa.attachment;

import java.sql.Connection;
import java.sql.Statement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.DatabaseMetaData;
import java.sql.BatchUpdateException;
import java.math.BigDecimal;
import com.sure.businessmodel.Page;
import java.io.*;
import java.util.*;
import com.sure.util.database.*;

/**
 * 将正文或附件存入数据库
 * @author datonghuiren@sohu.com
 */
public abstract class attachmentPersistentBase {

  /** class attributes */
  transient protected boolean recordExists = false;
  transient protected boolean handleConcurrency = false;
  transient protected boolean handleAutoIncrement = true;
  protected attachment bean;

  public attachmentPersistentBase(attachment bean) { setBean(bean); }
  public attachmentPersistentBase(attachment bean, boolean recordExists) { setBean(bean); setRecordExists(recordExists); }


  public attachment getBean() { return bean; }
  public void setBean(attachment bean) { this.bean = bean; }
  public boolean getRecordExists() { return recordExists; }
  public void setRecordExists(boolean recordExists) { this.recordExists = recordExists; }

  /**
   * Load this object from a result set
   * If null fields are present in the table, catch the NullPointerException
   */
  public static attachment load(ResultSet rs) throws SQLException {
    attachment theBean = new attachment ();
    try{ theBean.setFileId ( rs.getInt("fileID") ); } catch(NullPointerException e){}
    try{ theBean.setTitle ( rs.getString("title") ); } catch(NullPointerException e){}
    try{ theBean.setPath ( rs.getString("path") ); } catch(NullPointerException e){}
    try{ theBean.setSite ( rs.getString("site") ); } catch(NullPointerException e){}
    try{ theBean.setFileName ( rs.getString("fileName") ); } catch(NullPointerException e){}
    try{ theBean.setFileSize ( rs.getInt("fileSize") ); } catch(NullPointerException e){}
    try{ theBean.setMimeType ( rs.getString("mimeType") ); } catch(NullPointerException e){}
    try{ theBean.setDocId ( rs.getString("docId") ); } catch(NullPointerException e){}
    try{ theBean.setTableName ( rs.getString("tableName") ); } catch(NullPointerException e){}
    try{ theBean.setOrderBy ( rs.getInt("orderBy") ); } catch(NullPointerException e){}
    try{ theBean.setStatus ( rs.getString("status") ); } catch(NullPointerException e){}
    return theBean;
  }

  /**
   * Load a range of records from a connection, according to the where clause.
   * Returns a map of records accessible by a column value. (ie: foreign key)
   */
  public static Map loadByKey(Connection conn, String where, String colname)
    throws SQLException{

    HashMap map = new HashMap();
    Statement s = conn.createStatement();
    String sql = "SELECT fileID,title,path,site,fileName,fileSize,mimeType,docId,tableName,orderBy,status FROM attachment " + where;
    ResultSet rs = s.executeQuery( sql );
    while(rs.next()){
      attachment theBean = new attachment ();
      int col = rs.findColumn(colname);
      String key = rs.getString(col);
      theBean = load(rs);
      map.put(key, theBean);
    }
    rs.close();
    s.close();
    return map;
  }

  /**
   * Load a range of records from a connection, according to the where clause
   */
  public static Vector load(Connection conn, String where) throws SQLException{
    Vector beans = new Vector();
    Statement s = conn.createStatement();
    String sql = "SELECT fileID,title,path,site,fileName,fileSize,mimeType,docId,tableName,orderBy,status FROM attachment " + where;
    ResultSet rs = s.executeQuery( sql );
    while(rs.next()){
      attachment theBean = new attachment ();
      theBean = load(rs);
      beans.addElement(theBean);
    }
    rs.close();
    s.close();
    return beans;
  }

  /**
   * Load a range of records using a scrollable resultset and absolute cursor
   */
  public static Vector load(Connection conn, String where,
      int startRow, int rowCount) throws SQLException {
    Vector beans = new Vector();

    String sql = "SELECT fileID,title,path,site,fileName,fileSize,mimeType,docId,tableName,orderBy,status FROM attachment ";
    if(where.length() > 0)
      sql = sql + where;
    Statement s = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
                                       ResultSet.CONCUR_READ_ONLY);
    s.setMaxRows(startRow + rowCount - 1);
    ResultSet rs = s.executeQuery( sql );
    rs.absolute(startRow);

    do {
      attachment theBean = new attachment ();
      theBean = load(rs);
      beans.addElement(theBean);
    } while(rs.next());
    rs.close();
    s.close();
    return beans;
  }

  /**
   * Load a Page of records using a scrollable resultset and absolute cursor
   */
  public static Page load(Connection conn, int startRow, int pageSize,
       String where) throws SQLException {

    int count = getCount(conn, where);
    if (count == 0) return new Page(pageSize);
    startRow = Page.getValidStart(startRow, count, pageSize);
    Vector beans = load(conn, where, startRow, pageSize);
    return new Page(beans, startRow, count, pageSize);
  }

  /**
   * Persist the record. Performs a sql update or insert.
   * The primary key will be "set" upon insert.
   * If autocommit is on, turn it off to make a transactional
   * check of the tcn field.
   */
  public void persist(Connection conn) throws SQLException{
    if(recordExists){
      if(handleConcurrency){
        //regenerate source if you want the bean to handle concurrency
      }else{
        update(conn);
      }
    }else{
      if(handleAutoIncrement){
        setPrimaryKey(conn);
      }
      insert(conn);
    }
  }



  /**
    * Set the primary key field using the MAX value of the column
    * If the primary key is a string, check for existence and return
    * If the primary key is already set (in a new bean its 0) return
    */
    public void setPrimaryKey(Connection conn) throws SQLException{
            try{
      IDGeneratorManager idGeneratorManager = new IDGeneratorManager();
	  bean.setFileId( idGeneratorManager.setNextValue("attachment"));
    }
    catch(SQLException se){
      se.printStackTrace();
    }
    }


  /**
    * Insert a new record
    */
  public void insert(Connection conn) throws SQLException {
    PreparedStatement pstmt = null;
    pstmt = conn.prepareStatement("INSERT INTO attachment ( fileID,title,path,site,fileName,fileSize,mimeType,docId,tableName,orderBy,status ) VALUES ( ?,?,?,?,?,?,?,?,?,?,? )");
    pstmt.setInt ( 1, bean.getFileId().intValue() );
    pstmt.setString ( 2, bean.getTitle() );
    pstmt.setString ( 3, bean.getPath() );
    pstmt.setString ( 4, bean.getSite() );
    pstmt.setString ( 5, bean.getFileName() );
    pstmt.setInt ( 6, bean.getFileSize().intValue() );
    pstmt.setString ( 7, bean.getMimeType() );
    pstmt.setString ( 8, bean.getDocId() );
    pstmt.setString ( 9, bean.getTableName() );
    pstmt.setInt ( 10, bean.getOrderBy().intValue() );
    pstmt.setString ( 11, bean.getStatus() );
    pstmt.executeUpdate();
    pstmt.close();
    recordExists = true;
  }

  /**
    * Update an existing record
    * (including the primary key)
    */
  public void update(Connection conn) throws SQLException{
    PreparedStatement pstmt = null;
    pstmt = conn.prepareStatement("UPDATE attachment SET " +
             "fileID = ?," +
             "title = ?," +
             "path = ?," +
             "site = ?," +
             "fileName = ?," +
             "fileSize = ?," +
             "mimeType = ?," +
             "docId = ?," +
             "tableName = ?," +
             "orderBy = ?," +
             "status = ? " +
             "WHERE fileId = ?" );
    pstmt.setInt ( 1, bean.getFileId ().intValue() );
    pstmt.setString ( 2, bean.getTitle () );
    pstmt.setString ( 3, bean.getPath () );
    pstmt.setString ( 4, bean.getSite () );
    pstmt.setString ( 5, bean.getFileName () );
    pstmt.setInt ( 6, bean.getFileSize ().intValue() );
    pstmt.setString ( 7, bean.getMimeType () );
    pstmt.setString ( 8, bean.getDocId () );
    pstmt.setString ( 9, bean.getTableName () );
    pstmt.setInt ( 10, bean.getOrderBy ().intValue() );
    pstmt.setString ( 11, bean.getStatus () );
    pstmt.setInt ( 12, bean.getFileId ().intValue() );
    pstmt.executeUpdate();
    pstmt.close();
  }

  /**
    * Delete an existing record
    */
  public static void delete(Connection conn, String where) throws SQLException{
    Statement stmt = conn.createStatement();
    String sql = "DELETE FROM attachment " + where;
    stmt.execute(sql);
    stmt.close();
  }

  /**
    * Delete an existing record using a prepared statement
    */
  public void delete(Connection conn) throws SQLException{
    PreparedStatement pstmt = null;
    pstmt = conn.prepareStatement("DELETE FROM attachment WHERE fileId = ?");
    pstmt.setInt( 1, bean.getFileId ().intValue() );
    pstmt.executeUpdate();
    pstmt.close();
  }

  /**
    * get total count of a range of records from a connection, according to the where clause
    */
  protected static int getCount(Connection conn, String where) throws SQLException{
    Statement s = conn.createStatement();

    String sql = "SELECT count(fileID) FROM attachment ";
    if(where.length() > 0) {
      where = where.toLowerCase();
      if (where.indexOf("order") > 0) {
	where = where.substring(0,where.lastIndexOf("order"));
      }
      sql = sql + where;
    }

    ResultSet rs = s.executeQuery( sql );

    int count = 0;
    if( rs.next()){
      count = rs.getInt(1);
    }
    rs.close();
    s.close();
    return count;
  }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -