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

📄 abstractdbgentablemodel.java

📁 一个OR Mapping 工具
💻 JAVA
字号:
package org.dbgen.support;/** *	This class inherits from Swing's AbstractTableModel for JTable.  See main() for *	sample use. * *	Function for working with database: *		_addDbData( org.dbgen.support.Data data ) *		_insertDbDataAt( int row, org.dbgen.support.Data data ) *		_changeDbDataAt( int row ) *		_deleteDbDataAt( int row ) *		_commitDbData( ) */import javax.swing.event.*;public abstract class AbstractDbGenTableModel extends javax.swing.table.AbstractTableModel {  protected transient java.beans.PropertyChangeSupport propertyChange;  private static java.lang.String[] fieldColumnNames = new String[0];  private org.dbgen.support.Driver fieldDbGenDriver = new org.dbgen.support.Driver();  private java.util.Vector fieldDbDataVector = new java.util.Vector();  private java.util.Vector fieldDeletedDbDataVector = new java.util.Vector();  private java.util.Vector fieldNewDbDataVector = new java.util.Vector();  private java.util.Vector fieldChangedDbDataVector = new java.util.Vector();  /**   * Constructs a default table modal   */  public AbstractDbGenTableModel() {    super();  }  /**   * Add a data object to the bottom.   * @return result, true = ok, false = failed   * @param data org.dbgen.support.Data   * @see #_changeDbDataAt   * @see #_deleteDbDataAt   * @see #_insertDbDataAt   * @see #_retrieveDbData   * @see #_commitDbData   */  public boolean _addDbData( org.dbgen.support.Data data ) {    try {      getDbDataVector().addElement( data );      getNewDbDataVector().addElement(data);      fireTableChanged(new TableModelEvent(this, getRowCount()-1, getRowCount()-1,          TableModelEvent.ALL_COLUMNS, TableModelEvent.INSERT));      return true;    } catch ( Exception ex ) {      System.out.println("remove db data error: " + ex.getMessage() );    }    return false;  }  /**   *   * Notify the table modal that the row has been changed.  When doing a _commitDbData,   * the row will be updated to database.   * @return boolean   * @param row int   * @see #_addDbData   * @see #_deleteDbDataAt   * @see #_insertDbDataAt   * @see #_retrieveDbData   * @see #_commitDbData   * @see #getDbDataAt   */  public boolean _changeDbDataAt( int row ) {    try {      if ( !getChangedDbDataVector().contains( getDbDataRowAt(row)) )        getChangedDbDataVector().addElement(getDbDataRowAt(row));      fireTableChanged(new TableModelEvent(this, row, row, TableModelEvent.ALL_COLUMNS));      return true;    } catch ( Exception ex ) {      System.out.println("remove db data error: " + ex.getMessage() );    }    return false;  }  /**   * All add/update/delete changes will be written to database.   * @return java.util.Vector   * @param row int   * @see #_addDbData   * @see #_deleteDbDataAt   * @see #_insertDbDataAt   * @see #_retrieveDbData   * @see #_commitDbData   * @see #getDbDataAt   */  public java.util.Vector _commitDbData() {    // update data to database if needed    org.dbgen.support.Driver driver = getDbGenDriver();    java.util.Vector errV = new java.util.Vector();    // update data to database    java.util.Vector dataV = getChangedDbDataVector();    for ( int i=dataV.size()-1; i>=0; i-- ) {      org.dbgen.support.Data data = (org.dbgen.support.Data) dataV.elementAt(i);      try {        if ( driver.update(data) <= 0 )          errV.addElement(data);        else          dataV.removeElementAt(i);      } catch ( Exception ex ) {        errV.addElement(data);        System.out.println( "Update data error: " + data);      }    }    // insert data to database    dataV = getNewDbDataVector();    for ( int i=dataV.size()-1; i>=0; i-- ) {      org.dbgen.support.Data data = (org.dbgen.support.Data) dataV.elementAt(i);      try {        if ( driver.insert(data) <= 0 )          errV.addElement(data);        else          dataV.removeElementAt(i);      } catch ( Exception ex ) {        errV.addElement(data);        System.out.println( "Insert data error: " + data);      }    }    // delete data to database    dataV = getDeletedDbDataVector();    for ( int i=dataV.size()-1; i>=0; i-- ) {      org.dbgen.support.Data data = (org.dbgen.support.Data) dataV.elementAt(i);      try {        if ( driver.delete(data) <= 0 )          errV.addElement(data);        else          dataV.removeElementAt(i);      } catch ( Exception ex ) {        errV.addElement(data);        System.out.println( "Delete data error: " + data);      }    }    return errV;  }  /**   * Delete the given row of data, use _commitDbData to commit the changes to database.   * @retuen boolean   * @param row int   * @see #_addDbData   * @see #_changeDbDataAt   * @see #_insertDbDataAt   * @see #_retrieveDbData   * @see #_commitDbData   * @see #getDbDataAt   */  public boolean _deleteDbDataAt( int row ) {    try {      Object obj = getDbDataVector().elementAt(row);      getDbDataVector().removeElementAt(row);      getDeletedDbDataVector().addElement(obj);      fireTableRowsDeleted(row, row);      return true;    } catch ( Exception ex ) {      System.out.println("remove db data error: " + ex.getMessage() );    }    return false;  }  /**   * Insert a org.dbgen.support.Data object to the row.   * @retuen boolean   * @param row int   * @param data org.dbgen.support.Data   * @see #_addDbData   * @see #_changeDbDataAt   * @see #_deleteDbDataAt   * @see #_retrieveDbData   * @see #_commitDbData   * @see #getDbDataAt   */  public boolean _insertDbDataAt( int row, org.dbgen.support.Data data ) {    try {      getDbDataVector().insertElementAt( data, row);      getNewDbDataVector().addElement(data);      fireTableChanged(new TableModelEvent(this, row, row,          TableModelEvent.ALL_COLUMNS, TableModelEvent.INSERT));      return true;    } catch ( Exception ex ) {      System.out.println("remove db data error: " + ex.getMessage() );    }    return false;  }  /**   * This will retrieve data from database by sending a SQL in format:   * SELECT * FROM THIS_TABLE WHERE <condi> ORDER <order>   * @return boolean   * @param condi java.lang.String   * @param order java.lang.String   * @see #_addDbData   * @see #_changeDbDataAt   * @see #_deleteDbDataAt   * @see #_insertDbDataAt   * @see #_commitDbData   * @see #getDbDataAt   */  public boolean _retrieveDbData( String condi, String order ) {    try {      setDbDataVector(getDbGenDriver().retrieve( createDbData(), condi, order ));      return true;    } catch ( Exception ex ) {      System.out.println( "Retrieve db data error: " + ex.getMessage());    }    return false;  }  /**   * The addPropertyChangeListener method was generated to support the propertyChange field.   */  public synchronized void addPropertyChangeListener(java.beans.PropertyChangeListener listener) {    getPropertyChange().addPropertyChangeListener(listener);  }  /**   * This method was created in VisualAge.   * @return org.dbgen.support.Data   */  public abstract Data createDbData();  /**   * The firePropertyChange method was generated to support the propertyChange field.   */  public void firePropertyChange(String propertyName, Object oldValue, Object newValue) {    getPropertyChange().firePropertyChange(propertyName, oldValue, newValue);  }  /**   * Gets the changedDbDataVector property (java.util.Vector) value.   * @return The changedDbDataVector property value.   * @see #setChangedDbDataVector   */  public java.util.Vector getChangedDbDataVector() {    return fieldChangedDbDataVector;  }  /**   * Overrides AbstractTableModel method   * @return int   */  public int getColumnCount() {    return getColumnNames().length;  }  /**   * Overrides AbstractTableModel method   * @return java.lang.String   * @param column int   */  public String getColumnName(int column) {    try {      return fieldColumnNames[column];    } catch ( Exception ex ) {      System.out.println("Column index out of bound");    }    return "";  }  /**   * @return The columnNames property value.   * @see #setColumnNames   */  public static java.lang.String[] getColumnNames() {    return fieldColumnNames;  }  /**   * This method was created in VisualAge.   * @return java.lang.Object   * @param row int   */  public Data getDbDataRowAt( int row ) {    try {      return (Data) getDbDataVector().elementAt(row);    } catch ( Exception ex ) {      ex.printStackTrace();    }    return null;  }  /**   * Gets the dbDataVector property (java.util.Vector) value.   * @return The dbDataVector property value.   * @see #setDbDataVector   */  public java.util.Vector getDbDataVector() {    return fieldDbDataVector;  }  /**   * Gets the dbGenDriver property (org.dbgen.support.Driver) value.   * @return The dbGenDriver property value.   * @see #setDbGenDriver   */  public org.dbgen.support.Driver getDbGenDriver() {    return fieldDbGenDriver;  }  /**   * Gets the deletedDbDataVector property (java.util.Vector) value.   * @return The deletedDbDataVector property value.   * @see #setDeletedDbDataVector   */  public java.util.Vector getDeletedDbDataVector() {    return fieldDeletedDbDataVector;  }  /**   * Gets the newDbDataVector property (java.util.Vector) value.   * @return The newDbDataVector property value.   * @see #setNewDbDataVector   */  public java.util.Vector getNewDbDataVector() {    return fieldNewDbDataVector;  }  /**   * Accessor for the propertyChange field.   */  protected java.beans.PropertyChangeSupport getPropertyChange() {    if (propertyChange == null) {      propertyChange = new java.beans.PropertyChangeSupport(this);    };    return propertyChange;  }  /**   * Overrides AbstractTableModel method   */  public int getRowCount() {    return fieldDbDataVector.size();    ;  }  /**   * Overrides AbstractTableModel method   */  public abstract Object getValueAt(int row, int column);  /**   * The removePropertyChangeListener method was generated to support the propertyChange field.   */  public synchronized void removePropertyChangeListener(java.beans.PropertyChangeListener listener) {    getPropertyChange().removePropertyChangeListener(listener);  }  /**   * Sets the changedDbDataVector property (java.util.Vector) value.   * @param changedDbDataVector The new value for the property.   * @see #getChangedDbDataVector   */  public void setChangedDbDataVector(java.util.Vector changedDbDataVector) {    java.util.Vector oldValue = fieldChangedDbDataVector;    fieldChangedDbDataVector = changedDbDataVector;    firePropertyChange("changedDbDataVector", oldValue, changedDbDataVector);  }  /**   * Sets the columnNames property (java.lang.String[]) value.   * @param columnNames The new value for the property.   * @see #getColumnNames   */  public static void setColumnNames(java.lang.String[] columnNames) {    fieldColumnNames = columnNames;  }  /**   * Sets the dbDataVector property (java.util.Vector) value.   * @param dbDataVector The new value for the property.   * @see #getDbDataVector   */  public void setDbDataVector(java.util.Vector dbDataVector) {    java.util.Vector oldValueVector = fieldDbDataVector;    if ( dbDataVector != null )      fieldDbDataVector = dbDataVector;    else      fieldDbDataVector = new java.util.Vector();    firePropertyChange("dbDataVector", oldValueVector, dbDataVector);    // remove all deleted vectors    getDeletedDbDataVector().removeAllElements();  }  /**   * @see #getDbGenDriver   */  public void setDbGenDriver(org.dbgen.support.Driver dbGenDriver) {    org.dbgen.support.Driver oldValue = fieldDbGenDriver;    fieldDbGenDriver = dbGenDriver;    firePropertyChange("dbGenDriver", oldValue, dbGenDriver);  }  /**   * @see #getDeletedDbDataVector   */  public void setDeletedDbDataVector(java.util.Vector deletedDbDataVector) {    java.util.Vector oldValue = fieldDeletedDbDataVector;    fieldDeletedDbDataVector = deletedDbDataVector;    firePropertyChange("deletedDbDataVector", oldValue, deletedDbDataVector);  }  /**   * Sets the newDbDataVector property (java.util.Vector) value.   * @param newDbDataVector The new value for the property.   * @see #getNewDbDataVector   */  public void setNewDbDataVector(java.util.Vector newDbDataVector) {    java.util.Vector oldValue = fieldNewDbDataVector;    fieldNewDbDataVector = newDbDataVector;    firePropertyChange("newDbDataVector", oldValue, newDbDataVector);  }  /**   * Overrides AbstractTableModel method   * @param aValue java.lang.Object   * @param row int   * @param column int   */  public abstract void setValueAt(Object aValue, int row, int column);}

⌨️ 快捷键说明

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