package jdbc;
import java.io.PrintStream;
import java.sql.*;
import java.util.Vector;
public final class DataBaseQuery {
private static DataBaseQuery dbq
= new DataBaseQuery();
String dsn = "addBk.addressBook";
String url = "jdbc:odbc:" + dsn;
Connection connection = null;
Statement statement = null;
DatabaseMetaData dmd = null;
PrintStream out = System.out;
String sqlQuery =
"SELECT Addresses.FirstName, Addresses.LastName, "
+ "Addresses.Address, "
+ "Addresses.EmailAddress FROM Addresses;";
ResultSet rs = null;
ResultSetMetaData rsmd = null;
int colCount = 0;
private DataBaseQuery() {
try {
init();
} catch (Exception e) {
}
}
public void setOutputStream(PrintStream _out) {
out = _out;
}
public static DataBaseQuery getDataBaseQuery() {
return dbq;
}
public void init() throws Exception {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
connection = DriverManager.getConnection(url);
statement = connection.createStatement();
dmd = connection.getMetaData();
rs = statement.executeQuery(sqlQuery);
freshenMetaData();
}
public void freshenMetaData() throws Exception {
rsmd = rs.getMetaData();
colCount = rsmd.getColumnCount();
}
public void printMetaData() throws Exception {
out.println(
"Connected to:" + dmd.getURL());
}
public Vector getQuery() throws Exception {
Vector v = new Vector();
while (rs.next()) {
freshenMetaData();
String s[] = new String[colCount];
for (int i = 1; i <= colCount; i++) {
s[i - 1] = rs.getString(i);
}
v.addElement(s);
}
return v;
}
public String[][] getStringArray(Vector v) {
String sa[][] = new String[v.size()][colCount];
for (int x = 0; x < v.size(); x++) {
String s[] = (String[]) (v.elementAt(x));
for (int y = 0; y < s.length; y++)
sa[x][y] = s[y];
}
return sa;
}
public void print(Vector v) {
for (int i = 0; i < v.size(); i++)
print((String[]) v.elementAt(i));
}
public void print(String a[]) {
for (int i = 0; i < a.length; i++)
out.print(a[i] + " ");
out.println();
}
public void print(String a[][]) {
for (int x = 0; x < a.length; x++) {
for (int y = 0; y < a[0].length; y++)
out.print(a[x][y] + " ");
out.println();
}
}
public String[][] get2DArray() {
try {
return getStringArray(
getQuery()
);
} catch (Exception e) {
}
return null;
}
public void loadDriver() {
try {
printMetaData();
print(
getStringArray(
getQuery()));
} catch (Exception e) {
e.printStackTrace();
}
}
public void print() {
print(get2DArray());
}
public static void main(String[] args) {
jdbc.DataBaseQuery dbq =
jdbc.DataBaseQuery.getDataBaseQuery();
System.out.println("this is a test from main");
dbq.setOutputStream(System.out);
dbq.print();
}
}