Revised Bean:
(config file started commented out)
/*
* Database.java
*
* Created on April 14, 2003, 11:23 PM
*/
import java.beans.*;
import java.sql.*;
import javax.xml.parsers.*;
import org.w3c.dom.*;
/**
*
* @author default
*/
public class DatabaseData extends Object implements java.io.Serializable,
PropertyChangeListener {
// private static final String PROP_SAMPLE_PROPERTY
= "SampleProperty";
// private String sampleProperty;
private static final String PROP_DRIVER_NAME
= "DriverName";
private static final String PROP_CONNECTION_URL
= "ConnectionURL";
private static final String PROP_QUERY_STATEMENT
= "QueryStatement";
private PropertyChangeSupport propertySupport;
private String driverName;
private String connectionURL;
private String queryStatement;
java.sql.Connection conn;
/** Creates new Database */
public DatabaseData() {
propertySupport = new
PropertyChangeSupport ( this );
}
public DatabaseData(DatabaseGUI gui) {
propertySupport = new
PropertyChangeSupport ( this );
gui.addPropertyChangeListener(this);
}
public String getQueryStatement () {
return queryStatement;
}
public void setQueryStatement(String value) {
String oldValue = queryStatement;
queryStatement = value;
propertySupport.firePropertyChange
(PROP_QUERY_STATEMENT, oldValue, queryStatement);
System.out.println("Query
statement changed in Database class. " + value);
}
public String getConnectionURL () {
return connectionURL;
}
public void setConnectionURL (String value) {
String oldValue = connectionURL;
connectionURL = value;
propertySupport.firePropertyChange
(PROP_CONNECTION_URL, oldValue, connectionURL);
System.out.println("Connection
changed in Database class. " + value);
}
public String getDriverName () {
return driverName;
}
public void setDriverName (String value) {
String oldValue = driverName;
driverName = value;
propertySupport.firePropertyChange
(PROP_DRIVER_NAME, oldValue, driverName);
System.out.println("Driver
name changed in Database class. " + value);
}
/*
public String getSampleProperty () {
return sampleProperty;
}
public void setSampleProperty (String value)
{
String oldValue = sampleProperty;
sampleProperty = value;
propertySupport.firePropertyChange
(PROP_SAMPLE_PROPERTY, oldValue, sampleProperty);
}
*/
public void addPropertyChangeListener (PropertyChangeListener
listener) {
propertySupport.addPropertyChangeListener
(listener);
}
public void removePropertyChangeListener (PropertyChangeListener
listener) {
propertySupport.removePropertyChangeListener
(listener);
}
// Initialize the varibles based on our properties.
public void initialize() {
try {
// First, read in data from XML file.
// We'll hardcode the filename now, but change it to an attribute later.
/*
File f = new File(datasource.xml);
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(f);
Element root = doc.getRootElement();
*/
Class.forName(driverName).newInstance();
conn = DriverManager.getConnection(connectionURL);
} catch (Exception e)
{
System.out.println("Exception while attempting to set up database.
Message: " + e.getMessage());
}
}
// run some query.
public void runQuery() {
try {
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(queryStatement);
while(rs.next()) {
ResultSetMetaData rsmd = rs.getMetaData();
for (int i = 0; i < rsmd.getColumnCount(); i++) {
System.out.print(rs.getString(i+1));
}
// new line for new record.
System.out.println(" ");
}
} catch (Exception e)
{
System.out.println("Exception while attempting to make database call.
Message: " + e.getMessage());
}
}
public void propertyChange(java.beans.PropertyChangeEvent
propertyChangeEvent) {
System.out.println("PropertyChange
caught.");
if (propertyChangeEvent.getPropertyName().equals("DriverName"))
{
setDriverName(propertyChangeEvent.getNewValue().toString());
}
if (propertyChangeEvent.getPropertyName().equals("DatabaseURL"))
{
setConnectionURL(propertyChangeEvent.getNewValue().toString());
}
if (propertyChangeEvent.getPropertyName().equals("QueryString"))
{
setQueryStatement(propertyChangeEvent.getNewValue().toString());
}
}
}
|