JSP Addressbook app for VIP Express (circa Jun 2002)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.
 
 
 

152 lines
3.6 KiB

// DataQueryBean.java
// JavaBean that will generate an SQL query for the collection of data from the
// specified schema. The JDBC connection parameters and SQL strings are loaded
// from property files.
package com.bullseyecomputing.beans;
// import the essentials
import java.io.*;
import java.sql.*;
import java.util.*;
public class DataQueryBean {
private ClassLoader loader;
private Connection dbConnection;
private Statement dbTransaction;
private String jdbcProperties = "jdbc.properties";
private String schema;
private String sqlProperties;
private String sqlListSelect, sqlDetailSelect;
private String filter, orderBy, limit;
// Constructor
public DataQueryBean() throws Exception {
Properties props = new Properties();
// Grab our ClassLoader
loader = this.getClass().getClassLoader();
// Use the ClassLoader to locate and load the property file.
try {
props.load(loader.getResourceAsStream(jdbcProperties));
}
// Handle the exception if the file is unavailable
catch(IOException ioException) {
ioException.printStackTrace();
}
// Get the JDBC parameters
String jdbcDriver = props.getProperty("jdbcDriver");
String jdbcURL = props.getProperty("jdbcURL");
// Get the User parameters
String jdbcUser = props.getProperty("jdbcUser");
String jdbcPassword = props.getProperty("jdbcPassword");
// Create a JDBC connection
Class.forName(jdbcDriver);
dbConnection = DriverManager.getConnection(jdbcURL, jdbcUser, jdbcPassword);
}
// Constructor
// Schema
public void setSchema(String schema) {
Properties props = new Properties();
this.schema = schema;
sqlProperties = schema + "Query.properties";
// Load the SQL Properties
try {
props.load(loader.getResourceAsStream(sqlProperties));
}
catch(IOException ioException) {
ioException.printStackTrace();
}
// Get the SQL strings
sqlListSelect = props.getProperty("sqlListSelect");
sqlDetailSelect = props.getProperty("sqlDetailSelect");
}
// Schema
// Filter
public void setFilter(String filterString) {
filter = filterString;
sqlListSelect += " where " + filter;
}
public String getFilter() {
return filter;
}
// Filter
// OrderBy
public void setOrderBy(String orderByString) {
orderBy = orderByString;
sqlListSelect += " order by " + orderBy;
}
public String getOrderBy() {
return orderBy;
}
// OrderBy
// Limit
public void setLimit(String limit) {
this.limit = limit;
sqlListSelect += " limit " + limit;
}
public String getLimit() {
return limit;
}
// Limit
// getDataList
public ArrayList getDataList() throws SQLException {
ArrayList dataList = new ArrayList();
dbTransaction = dbConnection.createStatement();
ResultSet results = dbTransaction.executeQuery(sqlListSelect);
while(results.next()) {
ListDataBean data = new ListDataBean();
// Set the Bean values
data.setId(Integer.toString(results.getInt(1)));
data.setName(results.getString(2));
data.setStreet(results.getString(3));
data.setCity(results.getString(4));
data.setState(results.getString(5));
data.setZip(results.getString(6));
// handle empty values
String plus4 = results.getString(7).trim();
data.setPlus4(plus4.equals("") ? "&nbsp" : plus4);
dataList.add(data);
}
dbTransaction.close();
return dataList;
}
// getDataList
// Finalize
protected void finalize() {
try {
dbConnection.close();
}
catch(SQLException sqlException) {
sqlException.printStackTrace();
}
}
// Finalize
}
// class