mere database....
Flere Props;I følgende kode har jeg to metoder: findJournal og gemJournal. På mystisk vis forholder det sig sådan, at gem-metoden FORLANGER at databasen db ligger i 'C:\j2sdk1.4.0_03\db.mdb'.
men findJournal bruger databasens "rigtige" plads i rodbiblioteket eg. samme mappe som java-filerne. meget mystisk.. help!
-------------------------------kode-------------------------------
import java.sql.*;
/**
* Indeholder Databasehåndtering og metoder!.
*
* @author (Grüp3)
* @version (a version number or a date)
*/
public class Funktioner
{
Connection con;
Statement stm;
String tabel, find1, find2;
String keyword, kategori, effekt, fase;
/**
* Constructor for objects of class Funktioner
*/
public Funktioner()
{
indlaesDriver();
skabForbindelse("db");
open();
}
/**
* An example of a method - replace this comment with your own
*
* @param y a sample parameter for a method
* @return the sum of x and y
*/
public void indlaesDriver()
{
//indlæs en driver der kan kommunikere med ODBC
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}catch(ClassNotFoundException e){
System.err.println("Kunne ikke indlæse driver: "+e.getMessage());
}
}
public void skabForbindelse(String dbUrl) {
//etabler forbindelse til databasen
//som skal være defineret som System Data Source Name
//i ODBC Data Sources og ikke være password-beskyttet
String user = "", password = "";
try{
con = DriverManager.getConnection("jdbc:odbc:"+dbUrl);
}catch(SQLException e){
System.err.println(dbUrl+user+password+ "Kunne ikke forbinde til database:" +e.getMessage());
System.exit(-1);
}
System.out.println("Forbindelse til "+ dbUrl +" etableret.");
}
public void open()
{
//åbner et statement der kan udføre SQL
try{
stm = con.createStatement();
}
catch(SQLException e){
System.err.println("Kunne ikke etablere Statement: "+e.getMessage());
}
System.out.println("Statement oprettet");
}
ResultSet hent(String sqlTxt){
ResultSet rs=null;
try{
rs = stm.executeQuery(sqlTxt);
}
catch(SQLException e){
System.err.println("Fejl ved SQL-exeqution: "+e.getMessage());
}
return rs;
}
public void gemJournal(OpretVindue o){
//gemmer alt fra textfelter og knapper i opretvindue/JournalVindue)
OpretVindue opretvindue = o;
if (opretvindue.faseForebyggelseKnap.isSelected()){
String fase = "Forebyggelse";
}
if (opretvindue.faseNedtrapningKnap.isSelected()){
String fase = "Nedtrapning";
}
if (opretvindue.faseOpstartKnap.isSelected()){
String fase = "Opstart";
}
if (opretvindue.KategoriAKnap.isSelected()){
String kategori = "A";
}
if (opretvindue.KategoriBKnap.isSelected()){
String kategori = "B";
}
if (opretvindue.KategoriCKnap.isSelected()){
String kategori = "C";
}
if (opretvindue.BedringKnap.isSelected()){
String effekt = "Bedring";
}
if (opretvindue.IngenBedringKnap.isSelected()){
String effekt = "Ingen Bedring";
}
if (opretvindue.ForværringKnap.isSelected()){
String effekt = "Forværring";
}
//Slut på at teste på knapperne! Her kommer Verdens Længste SQL-sætning.. :-) I alt er der 15 felter der skal opretes..
String sqlTxt = "Insert into db.Klient" + " Values('"+ opretvindue.loennummerText.getText() + "', '" + opretvindue.navnText.getText() + "', '" + opretvindue.initialText.getText() + "', '" + opretvindue.efternavnText.getText() + "', '" + kategori + "', '" + fase + "', '" + opretvindue.afbudText.getText() + "', '" + opretvindue.afbudAarsag.getText() + "', '" + opretvindue.mangelfremmødeText.getText() + "', '" + opretvindue.fremmoedeAarsag.getText() + "', '" + opretvindue.sygdomshistorieText.getText() + "', '" + opretvindue.AOText.getText() + "', '" + effekt + "', '" + opretvindue.mangelrådText.getText() + "', '" + opretvindue.opfoelgningAarsag.getText() + "', '" + opretvindue.forloebText.getText() + "')";
System.out.println(sqlTxt);
//(Navn, Initial, Efternavn, Kategori, Fase, Afbud, A_aarsag, Fremmoede, F_aarsag, Shistorie, AONR, effekt, Opfoelg, O_aarsag, Forloeb) kan indsættes i sql-sætningen før Values.. men der er ikke lige mange argumenter?!
//Her skal også være en SQL-sætning, der smider de rigtige ting fra Journalen ind i MDR_DATA!
try {
stm.executeUpdate(sqlTxt);
}
catch(SQLException e){
System.err.println("Kunne ikke eksekvere Insert-sql: "+e.getMessage());
}
}
public void findJournal(int L_Nummer){
//åbner et statement der kan udføre SQL
System.out.println("Statement oprettet");
ResultSet rs=null;
try{
String sqlTxt = "Select * from Klient where L_Nummer Like '" + L_Nummer + "'";
rs = stm.executeQuery(sqlTxt);
System.out.println("Der blev foretaget en forespørgsel i databasen");
JournalVindue journalvindue = new JournalVindue(rs);
journalvindue.setVisible(true);
}
catch(SQLException e){
System.err.println("Fejl ved SQL-exeqution: "+e.getMessage());
}
//return rs;
}
}
