package HenkTk;
import java.sql.*;
import java.util.Vector;
import java.io.*;
import javax.servlet.jsp.*;
/**
Sisältää staattisia metodeita, joilla voi tehdä kyselyitä henkilötietokantaan.
Connection yhdista(JDBCajuri, url)
void kysely(con, sqlLause)
void kyselyHTML(con, sqlLause)
int paivita(con, sqlLause)
*/
public class HenkiloTietokanta {
/**
Metodi lataa ajurin ja ottaa yhteyden toisena parametrinä
annettuun url-osoitteeseen. url on joko DSN tai URL.
Palauttaa Connection-olion tai null, jos yhteyden muodostaminen
ei onnistunut.
*/
//*********************************************
public static Connection yhdista(String JDBCajuri, String url) {
try {
Class.forName(JDBCajuri).newInstance();
// avataan yhtetys
Connection conn = DriverManager.getConnection(url);
return conn;
}
catch (SQLException e) {
System.out.println("Yhteys ei muodostunut:" + e);
return null;
}
catch (ClassNotFoundException e) {
System.out.println("Ajuria ei löytynyt:" + e);
return null;
}
catch (InstantiationException e) {
System.out.println("Ajuria ei löytynyt:" + e);
return null;
}
catch (IllegalAccessException e) {
System.out.println("Ajuria ei löytynyt:" + e);
return null;
}
}
//*********************************************
//*********************************************
public static void kysely(ResultSet rs) throws SQLException {
// ResultSetMetaData sisältää tietoa kannan kentistä
ResultSetMetaData metaData = rs.getMetaData();
for (int i = 1; i <= metaData.getColumnCount(); ++i)
System.out.print(metaData.getColumnName(i) + " ");
System.out.println();
System.out.println("-------------------------------------------------------------");
/* ResultSet-olion tulostaminen */
while (rs.next()) {
for (int i = 1; i <= metaData.getColumnCount(); ++i) {
String data = rs.getString(i);
if (data == null) data = "null";
System.out.print(data.trim() + "\t");
}
System.out.println();
}
}
//*********************************************
public static void kyselyHTML(ResultSet rs, PrintWriter out) throws SQLException {
// ResultSetMetaData sisältää tietoa kannan kentistä
ResultSetMetaData metaData = rs.getMetaData();
out.println("
");
for (int i = 1; i <= metaData.getColumnCount(); ++i)
out.print("" + metaData.getColumnName(i) + " | ");
out.println("
");
/* ResultSet-olion tulostaminen */
while (rs.next()) {
out.println("");
for (int i = 1; i <= metaData.getColumnCount(); ++i) {
String data = rs.getString(i);
if (data == null) data = "null";
out.print("" + data.trim() + " | ");
}
out.println("
");
}
out.println("
");
}
//*********************************************
// JSP:n käyttämä metodi
public static void kyselyHTML(ResultSet rs, javax.servlet.jsp.JspWriter out) throws SQLException, IOException {
// ResultSetMetaData sisältää tietoa kannan kentistä
ResultSetMetaData metaData = rs.getMetaData();
out.println("");
for (int i = 1; i <= metaData.getColumnCount(); ++i)
out.print("" + metaData.getColumnName(i) + " | ");
out.println("
");
/* ResultSet-olion tulostaminen */
while (rs.next()) {
out.println("");
for (int i = 1; i <= metaData.getColumnCount(); ++i) {
String data = rs.getString(i);
if (data == null) data = "null";
out.print("" + data.trim() + " | ");
}
out.println("
");
}
out.println("
");
}
//*********************************************
/**
Metodilla muutetaan tietokantaa parametrinä annetun
SQL-kyselyn perusteella. Palauttaa muutettujen
tietueiden lukumäärän */
public static int paivita(Connection con, String sqlLause)
throws SQLException, ClassNotFoundException,
IllegalAccessException, InstantiationException {
Statement stmt = con.createStatement();
System.out.println("Suoritetaan lause: " + sqlLause);
//Suoritetaan lause ja kerätään tiedot merkkijonoon.
int tulos = stmt.executeUpdate(sqlLause);
stmt.close();
return tulos;
}
}