# mysqlConnection und JavaConduit



## weiterleiter (22. Dez 2004)

Hallo alle zusammen...

Ich habe eine Anwendung entwickelt, mit der man auf dem Palm bestimmte Daten sammeln kann.

Damit die Daten vom Palm auch auf dem PC weiterverarbeitet werden, habe ich ein Javaconduit geschrieben, welches die Daten in eine Accessdatenbank importiert. Das Conduit wird dann abgearbeitet, wenn der Hotsync vom Palm gestartet wird.

Um dann die Daten auf dem PC weiterverabeiten zu können, gibt es noch eine Anwendung, die auf die Accessdatenbank zugreift und die das Editieren der Daten erlaubt.

Bisher gab es damit keine Probleme, aber aus verwaltungstechnischen Gründen wollte ich jetzt auf eine mysql Datenbank umsteigen.

Die Anwendung auf dem PC hat kein Problem, mittels des mysql connectors auf die Mysql datenbank zuzugreifen.

Wenn ich aber im Conduit versuche, die mysqldatenbank anzusprechen, wird der com.mysql.jdbc.Driver nicht gefunden, obwohl ich aber den mysqlConnector importiert habe.

Das Conduit nutzt die selben Klassen, wie die Anwendung auf dem PC. Und die kann die Datenbankverbindung ganz normal aufbauen. Deshalb kann ich das nicht so ganz Nachvollziehen.

Kennt irgendjemand von euch irgendwelche Probleme bezüglich einer mysql Datenbankanbindung während des Ablaufes eines JavaConduits??

Währe echt dankbar, wenn mir jemand weiterhelfen könnte.

Gruß: Weiterleiter


----------



## foobar (22. Dez 2004)

Poste doch mal etwas Code.


----------



## weiterleiter (22. Dez 2004)

Hier ist die Methode, die die Connection aufbaut:


```
public void  connect(){

	try {
		Class.forName("com.mysql.jdbc.Driver").newInstance(); // Loads jdbc-ODBC-Driver

	  System.out.println("mysqltreiber geladen"); // Message: Says that driver was loaded successfully
	}
	catch (Exception e) {
	  System.out.println("mysql nicht gefunden: " + e.getMessage()); 
	}

	try {
		String cStr = "jdbc:mysql://"+ "" +"/"+ "patientendaten" +"?user="+ "UMDataAdmin" +"&password="+ "sonsdihdf";
	   con = DriverManager.getConnection(cStr); // DriverManager connects the application with the Database
	  System.out.println("Connection geöffnet"); 
	}

	//Wenn die Verbindung nicht hergestellt werden kann, so wird der user automatisch zur
	
	catch(Exception e){
	  //e.getMessage();
	  JOptionPane p = new JOptionPane();
	  p.setVisible(true);
	  p.setBounds(100,100,200,200);
	  p.setMessageType(JOptionPane.YES_NO_OPTION);
	  JOptionPane.showMessageDialog(null,"jdbc-odbc nicht gefundent:\nBitte wenden Sie sich an den Administrator.","DataBaseNotFound",JOptionPane.CANCEL_OPTION);;
	 	}


und hier ist der Teil im Conduit, wo ich die Datenbankanbindung benutzen möchte:


public boolean writePatInBd(){
  	Log.out("Starte schreiben in Pc-Datenbank");
	//String url = "jdbc:odbc:PatientenDaten";

//DataBaserConnection baut mittels Connect eine Connection zur Datenbank auf

DataBaseConnection c =  new DataBaseConnection();

	
	try {
	  Connection con = c.getConnection();
	    Statement test = con.createStatement();

	 //Resultset wird nur erzeugt, um sicherzustellen, dass der Patient, der gerade eingetragen werden soll, nicht schon da ist:
	 ResultSet res = test.executeQuery("SELECT * FROM patientendaten WHERE PatId = \'"+this.dbo.getPA_ID()+"\'");
	  System.out.println("Versuche Patientendaten einzutragen");
	  //Wenn der nicht da ist, dann hat res kein nächsten eintrag!!
	  if(!res.next()){
   //hier werden nur noch die Daten in die Datenbank eingetragen

	  Statement eingabe = con.createStatement();
	  // eingabe.executeUpdate("INSERT INTO PatientenDaten (PatIs,UntersDat, UnfallDat, Name, Vorname, PLZ (Postleitzhal), GebDat, LebensJ (LebensJahre), Geschlecht, Nation, Ort Unf, Art Unf, Tät Unf, Sportart, Mech Unf (Unfallmechanismus),Gift, PrduktBet, Produkt, Schutzmassn, Verletzungsart, IDC10, BehandlArt, weit med Versorgung, Schulbildung Vater, Schulbildung Mutter, berufliche Tät Vater, berufliche Tät Mutter, Anzahl der Personen im Haushalt ) VALUES ("+ this.dbo.getPA_ID()+","+this.dbo.getuntersu

	  //erst die notwendigen daten anlegen, dann den rest aktualisieren
	  System.out.println("name");
	  System.out.println("DEBUG: NAME "+this.dbo.getNAME());
	  eingabe.executeUpdate("INSERT INTO patientendaten (PatId,Name) VALUES (\'"+this.dbo.getPA_ID()+"\',\'"+this.dbo.getNAME()+"\')");

	  System.out.println("name eingeträagemn");
	  

	  if(this.dbo.getVNAME().length()!=0){
		System.out.println("DEBUG: vName "+this.dbo.getVNAME());
		eingabe.executeUpdate("UPDATE patientendaten SET Vorname = \'"+this.dbo.getVNAME()+"\' WHERE PatId =\'" +this.dbo.getPA_ID()+"\'");
		System.out.println("DEBUG: Vname!!!!!!!!!!!");
	  }

	  eingabe.executeUpdate("UPDATE patientendaten SET Postleitzahl ="+this.dbo.getPLZORT()+" WHERE PatId =\'"+this.dbo.getPA_ID()+"\'");  //plzort oder plz1??????????
	  //System.out.println("DEBUG: plz");

	  eingabe.executeUpdate("UPDATE patientendaten SET Geschlecht= \'"+this.dbo.getGESCHL()+"\' WHERE PatId =\'"+this.dbo.getPA_ID()+"\'");
	  //System.out.println("DEBUG: nation");
	  eingabe.executeUpdate("UPDATE patientendaten SET Nation=\'"+this.dbo.getNATIONAL()+"\' WHERE PatId =\'"+this.dbo.getPA_ID()+"\'");
	   //System.out.println("DEBUG: nation eingetragen");

		//System.out.println("DEBUG: unfort");

	  eingabe.executeUpdate("UPDATE patientendaten SET Unfallort=\'"+this.dbo.getUNF_ORT()+"\' WHERE PatId =\'"+this.dbo.getPA_ID()+"\'");
	  System.out.println("Unfallort eingetragen!!!!");
	  //System.out.println("DEBUG: unfort eingetragen");
	  eingabe.executeUpdate("UPDATE patientendaten SET Unfallart=\'"+this.dbo.getUNF_ART()+"\' WHERE PatId =\'"+this.dbo.getPA_ID()+"\'"); // getUnfArt oder get UnfArt2????????
	   //System.out.println("DEBUG: unfart eingetragen");
	  eingabe.executeUpdate("UPDATE patientendaten SET Unfalltätigkeit=\'"+this.dbo.getUNF_TAET()+"\' WHERE PatId =\'"+this.dbo.getPA_ID()+"\'");
	   //System.out.println("DEBUG: unftätigkeit eingetragen");
	   eingabe.executeUpdate("UPDATE patientendaten SET Unfallmechanismus=\'"+this.dbo.getUnfMech()+"\' WHERE PatId =\'"+this.dbo.getPA_ID()+"\'");
	  eingabe.executeUpdate("UPDATE patientendaten SET Sportart=\'"+this.dbo.getUNF_SPORTA()+"\' WHERE PatId =\'"+this.dbo.getPA_ID()+"\'");
	   System.out.println("DEBUG: sportart eingetragen eingetragen");
		//eingabe.executeUpdate("UPDATE PatientenDaten SET Unfallmechanismus=\'"+this.dbo.getunfgetUNF_ART2()+"\' WHERE PatId ="+this.dbo.getPA_ID()+""); //hier keine Ahnung ob das die richtige variable ist????????????
	 	eingabe.executeUpdate("UPDATE patientendaten SET Gift=\'"+this.dbo.getVERGIFT_DU()+"\' WHERE PatId =\'"+this.dbo.getPA_ID()+"\'");  // hier auch keine ahunung, ob getVergift_ch richtig ist???????????????
	  	eingabe.executeUpdate("UPDATE patientendaten SET Produktbeteiligung=\'"+this.dbo.getPROD_BETEI()+"\' WHERE PatId =\'"+this.dbo.getPA_ID()+"\'");
	  	eingabe.executeUpdate("UPDATE patientendaten SET Produkt=\'"+this.dbo.getPRODUKT()+"\' WHERE PatId =\'"+this.dbo.getPA_ID()+"\'");
	   System.out.println("DEBUG: Produktsahcen eingetragen");
	  	eingabe.executeUpdate("UPDATE patientendaten SET Schutzmassnahmen=\'"+this.dbo.getPRAEVENTIO()+"\' WHERE PatId =\'"+this.dbo.getPA_ID()+"\'");// is variable PRAEVENTIO für schutzmassnahemen????????????????
	   System.out.println("DEBUG: schutz eingetragen");
	  	eingabe.executeUpdate("UPDATE patientendaten SET Verletzungsart_1=\'"+this.dbo.getVERL_ART()+"\' WHERE PatId =\'"+this.dbo.getPA_ID()+"\'");
	  System.out.println("DEBUG verlart eingetragen");
	  	if(this.dbo.getIDC10().length()!=0){
			eingabe.executeUpdate("UPDATE patientendaten SET IDC10=\'"+this.dbo.getIDC10()+"\' WHERE PatId =\'"+this.dbo.getPA_ID()+"\'");
	  }
	  System.out.println("DEBUG: icd 10 eingetragen");

	  eingabe.executeUpdate("UPDATE patientendaten SET Behandlungsart=\'"+this.dbo.getBEH_ART()+"\' WHERE PatId =\'"+this.dbo.getPA_ID()+"\'");
	  System.out.println("DEBUG: Behandlungsart eingetragen");

	  eingabe.executeUpdate("UPDATE patientendaten SET weit_med_Versorgung=\'"+this.dbo.getW_MED_VERS()+"\' WHERE PatId =\'"+this.dbo.getPA_ID()+"\'");
	   System.out.println("DEBUG: weitmedvers eingetragen");
	  eingabe.executeUpdate("UPDATE patientendaten SET Schulbildung_Vater=\'"+this.dbo.getSB_VATER()+"\' WHERE PatId =\'"+this.dbo.getPA_ID()+"\'");
	   System.out.println("DEBUG: sbv eingetragen");
	  eingabe.executeUpdate("UPDATE patientendaten SET Schulbildung_Mutter=\'"+this.dbo.getSB_MUTTER()+"\' WHERE PatId =\'"+this.dbo.getPA_ID()+"\'");
	   System.out.println("DEBUG: sbm eingetragen");
	  eingabe.executeUpdate("UPDATE patientendaten SET Berufliche_Taetigkeit_Mutter=\'"+this.dbo.getBT_MUTTER()+"\' WHERE PatId =\'"+this.dbo.getPA_ID()+"\'");
	   System.out.println("DEBUG: btv eingetragen");
	  eingabe.executeUpdate("UPDATE patientendaten SET Berufliche_Taetigkeit_Vater=\'"+this.dbo.getBT_VATER()+"\' WHERE PatId =\'"+this.dbo.getPA_ID()+"\'");
	  System.out.println("DEBUG: bis hier kommtaTEST!!!!!");

	  eingabe.executeUpdate("UPDATE patientendaten SET Verunfallter_war_selbst=\'"+this.dbo.getVERUNF_W()+"\' WHERE PatId =\'"+this.dbo.getPA_ID()+"\'");
	  
	  eingabe.executeUpdate("UPDATE patientendaten SET Kollisionsgegner_war=\'"+this.dbo.getVERUNF_KOLLP()+"\' WHERE PatId =\'"+this.dbo.getPA_ID()+"\'");
	  //System.out.println("Test kolgegnerwar eingetragen!!!!!");
	  eingabe.executeUpdate("UPDATE patientendaten SET Anzahl_Erwachsener_im_Haushalt=\'"+this.dbo.getERWACHS()+"\' WHERE PatId =\'"+this.dbo.getPA_ID()+"\'");
	  System.out.println("Test!!!!! anzerw eingetragen");
	  eingabe.executeUpdate("UPDATE patientendaten SET Anzahl_Kinder_im_Haushalt=\'"+this.dbo.getKINDER()+"\' WHERE PatId =\'"+this.dbo.getPA_ID()+"\'");
	  System.out.println("Test!!!!!anzKinder eingetragen ");
	  //neue Felder die hinzugekommen sind:

	  eingabe.executeUpdate("UPDATE patientendaten SET Verletzungsart_2=\'"+this.dbo.getVERL_ART_2()+"\' WHERE PatId =\'"+this.dbo.getPA_ID()+"\'");
	  System.out.println("Test!!!!!verlart_2 eingetragen");
	 	 eingabe.executeUpdate("UPDATE patientendaten SET Verletzungsart_3=\'"+this.dbo.getVERL_ART_3()+"\' WHERE PatId =\'"+this.dbo.getPA_ID()+"\'");
	System.out.println("Test!!!!!Verlart3 Eingetragen");
		if(this.dbo.getIDC10_2().length()!=0){
	  eingabe.executeUpdate("UPDATE patientendaten SET IDC10_2=\'"+this.dbo.getIDC10_2()+"\' WHERE PatId =\'"+this.dbo.getPA_ID()+"\'");
		}
	  System.out.println("Test!!!!!idc10_2 eingetragen");
	  
	  if(this.dbo.getIDC10_3().length()!=0){
	  	
	  eingabe.executeUpdate("UPDATE patientendaten SET IDC10_3=\'"+this.dbo.getIDC10_3()+"\' WHERE PatId =\'"+this.dbo.getPA_ID()+"\'");
	  }
	  
	  
	  System.out.println("Test!!!!!idc10_3 eingetragen");


	  /*if(this.dbo.isClosed()){
		eingabe.executeUpdate("UPDATE PatientenDaten SET Abgeschlossen=\'ja\' WHERE PatId ="+this.dbo.getPA_ID()+"");
	  }
	  else if(!this.dbo.isClosed()){
		eingabe.executeUpdate("UPDATE PatientenDaten SET Abgeschlossen=\'nein\' WHERE PatId ="+this.dbo.getPA_ID()+"");
	  }*/
	  //und welche Variable für anzahl von personen im Haushalt steht hab ich auch nicht gefunden!!!!!!!

	System.out.println("Path diktat: "+this.dbo.getPathDiktat());
	this.dbo.setPathDiktat("null");
	
	eingabe.executeUpdate("UPDATE patientendaten SET PatientendiktatSound = \'"+this.dbo.getPathDiktat()+"\' WHERE PatId =\'" +this.dbo.getPA_ID()+"\'");
	System.out.println("Sound eingetragen!!!!!!!"+this.dbo.getPathDiktat());
//System.out.println("DEBUG: Und jetz das datum:Germany!!! ");



	 //Date d = new Date();    //aktuelle Zeit (Test)
	 //System.out.println(d.getTime());   -7200000!!!
	 Date unfDat = new Date ((this.dbo.getUNF_DAT()));
	 
	 Date untersDat = new Date(this.dbo.getUNT_DAT());
	 Date gebDat = new Date (this.dbo.getGEB_DAT());
	
	 SimpleDateFormat formatter = new SimpleDateFormat("dd.MM.yyyy' 'HH:mm:ss"); //formatiert das Datum in die Entsprechende Form-->für unfDat und untDat mit Zeitangabe
	
	 String sUnfDat = formatter.format(unfDat);
	 String sUntersDat = formatter.format(untersDat);
	String sLastModified = formatter.format(new Date(dbo.getLastModified()));



	 formatter = new SimpleDateFormat ("dd.MM.yyyy",Locale.GERMANY); // für Geburtsdatum ohne Zeitangabe
	 String sGebDat = formatter.format(gebDat);
	

//Testausgabe ist ok
	 //System.out.println(sGebDat+"Geburtsdatum aus Deutschland!!!!!!!!!!!!!!!!");
	 //System.out.println(sUnfDat+"Unfalldatum");
	 //System.out.println(sUntersDat+"Untersuchungsdatum");



	 //System.out.println(formatter.format(d)+"Aktuelle zeit"); //test

	 //Schreiben der daten in die datenbank
	 eingabe.executeUpdate("UPDATE patientendaten SET Untersuchungsdatum =\'"+sUntersDat+"\' WHERE PatId =\'"+this.dbo.getPA_ID()+"\'");
	 eingabe.executeUpdate("UPDATE patientendaten SET Unfalldatum =\'"+sUnfDat+"\' WHERE PatId =\'"+this.dbo.getPA_ID()+"\'");
	 eingabe.executeUpdate("UPDATE patientendaten SET Geburtsdatum =\'"+sGebDat+"\' WHERE PatId =\'"+this.dbo.getPA_ID()+"\'");
	 System.out.println("Set lastModified");
	 eingabe.executeUpdate("UPDATE patientendaten SET LastModified =\'"+sLastModified+"\' WHERE PatId =\'"+this.dbo.getPA_ID()+"\'");
	 
	
	//Log.out("Test,!!!!! mit isClosed "+this.dbo.getIsClosed());
	 if(this.dbo.getIsClosed()){
			eingabe.executeUpdate("UPDATE patientendaten SET Abgeschlossen =\'ja\' WHERE PatId =\'"+this.dbo.getPA_ID()+"\'");
	 		//Log.out("Nicht abgeschlossen")
	 }
	 else if (!this.dbo.getIsClosed()){
				   eingabe.executeUpdate("UPDATE patientendaten SET Abgeschlossen =\'nein\' WHERE PatId =\'"+this.dbo.getPA_ID()+"\'");
	 				//Log.out("abgeschlossen!!!")
	 }
	 System.out.println("DEBUG: daten wurden eingetragen");
	 con.close(); //connection wird geschlossen
	 eingabe.close();
	return true;
	}
	
	else{
		con.close();
		
		return false;
		
	
  }
	}
	catch(Exception e){
	  System.out.println(e.getMessage());
	}
	
	return false;

  }
```

[Edit by foobar: Codetags eingefügt]


----------



## weiterleiter (22. Dez 2004)

Beim Conduit wird bei der Methode Connect der Treiber nicht gefunden.

Bei der Datenbankanwendung macht die selbe Methode aber keine Probleme.


----------

