# Java 1.5.0_04 & Oracle 9.2.0.6: JDBC Treiber?



## Louis2 (15. Jul 2005)

Hallo,

ich benutze JRE 1.5.0_04 und Oracle DB 9.2.0.6. Ich baue im Code eine JDBC Connection auf, aber da passiert nichts, nichmal die Verbindung zur DB wird durchgeführt. (Das Programm lief unter Java 1.2 mit Treiber classes12.zip)
Als Treiber benutze ich den letzten Treiber den ich bei Oracle gefunden habe und zwar für JRE 1.4 und Oracle 9.2.0.5 (ojdbc14.zip)

Nun die Frage, gibt es für meine Oracle&Java Version auch ein JDBC Treiber? Es wird wohl daran liegen, dass mein Treiber nicht zur Java Version passt oder?


----------



## abollm (15. Jul 2005)

Louis2 hat gesagt.:
			
		

> Hallo,
> 
> ich benutze JRE 1.5.0_04 und Oracle DB 9.2.0.6. Ich baue im Code eine JDBC Connection auf, aber da passiert nichts, nichmal die Verbindung zur DB wird durchgeführt. (Das Programm lief unter Java 1.2 mit Treiber classes12.zip)
> Als Treiber benutze ich den letzten Treiber den ich bei Oracle gefunden habe und zwar für JRE 1.4 und Oracle 9.2.0.5 (ojdbc14.zip)
> ...



Ich benutze fast die gleiche Konfiguration (statt Oracle 9.2.0.6 bei mir 9.2.0.5), habe aber keine Problme mit meinen alten JDBC-Anwendungen.

Du musst einfach nur die Datei classes12.jar (bzw. .zip) in deinen CLASSPATH mit aufnehmen: Dann sollte es funktionieren.

Was erhältst dur für eine Meldung vom Fehlerstack?


----------



## Louis2 (15. Jul 2005)

Also ich habe mal im Oracle Ordner geguckt, dort wird bei jre die Version 1.4.2 angegeben und wohl auch verwendet??

Im nachhinein, hatte ich ja die Version 1.5 installiert, unabhängig von Oracle... 
Bei der Installation von Ora9 wurde halt die Version 1.4.2 mitinstalliert, könnte es da ein Problem geben? Mein Prog. wurde ja mit 1.5 compiliert :roll:


----------



## abollm (15. Jul 2005)

Louis2 hat gesagt.:
			
		

> Also ich habe mal im Oracle Ordner geguckt, dort wird bei jre die Version 1.4.2 angegeben und wohl auch verwendet??
> 
> Im nachhinein, hatte ich ja die Version 1.5 installiert, unabhängig von Oracle...
> Bei der Installation von Ora9 wurde halt die Version 1.4.2 mitinstalliert, könnte es da ein Problem geben? Mein Prog. wurde ja mit 1.5 compiliert :roll:



Die JRE-Version im Oracle-Ordner hat _zunächst_ einmal nichts mit der von dir installierten JRE-Version zu tun. Die Oracle-Version wird standarmäßig bei der DB-Serverinstllation mit installiert.

Verwendet wird die JRE, die aufgrund der OS-Einstellungen konfiguriert ist. Gib einfach auf der Kommandozeilenebene den folgenden Befehl ein:

java -version


----------



## Louis2 (15. Jul 2005)

Wenn ich ausserhalb des Java Ordners 1.5.0_04 "java -version" eingebe wird... ausgegeben:

```
java version "1.4.2_03"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_03-b02)
Java HotSpot(TM) Client VM (build 1.4.2_03-b02, mixed mode)
```

Wenn ich "java -version" im bin Ordner von Java 1.5.0_04 ausführe erscheint

```
java version "1.5.0_04"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_04-b05)
Java HotSpot(TM) Client VM (build 1.5.0_04-b05, mixed mode, sharing)
```

Was ist denn nun richtig installiert?

Ach ja im System ist als Variable

```
D:\Oracle9i\jre\1.4.2\bin\client;D:\Oracle9i\jre\1.4.2\bin;D:\Oracle9i\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem
```

eingegeben, vielleicht statt D:\Oracle9i\jre\1.4.2\bin\client C:\Programme\Java\jre1.5.0_04\bin\client eingeben?


----------



## abollm (15. Jul 2005)

Nach dem, was du beschrieben hast, sind beide JREs korrekt installiert.

Als Standard-JRE wird allerdings die Version 1.4.2_03 angezogen. Und ich denke, du wolltest die 1.5.0_04 als Standard, oder?

Ich hatte kürzlich ebenfalls diese Problem, weiß im Moment aber gar nicht mehr, auf welchem Wege genau ich es gelöst habe.
Ich schaue noch einmal in meine Konfigurations-Dateien. Hinweis:

Überprüfe die folgenden System-Variablen:

PATH
CLASSPATH

Ah, jetzt fällt es mir wieder ein:

Im PATH bzw. im CLASSPATH stand ein falscher Eintrag, sodass das OS die eigentlich falsche, weil zwar vorhandene, aber alte, 1.4.2-JRE anzog. Nach der Korrektur der Systemvariablen lief alles wie gewünscht.

Wichtig: Bei mehreren installierten JREs auf OS-Ebene ist die Reihenfolge in der PATH-Variable entscheidend.


----------



## abollm (15. Jul 2005)

Louis2 hat gesagt.:
			
		

> [..]
> Ach ja im System ist als Variable
> 
> ```
> ...



Sorry, hatte ich vorhin gar nicht gelesen (übersehen?).

Klar, wie in meinem obigen Post beschrieben, gibst du in der PATH-Variablen deine 1.5-JRE am Ende ein. Zusätzlich kannst du auch die Variable JAVA_HOME anlegen (sofern nicht bereits vorhanden) und dort den Eintrag für die 1.5er Version eingeben, z.B.

D:\Programme\Java\jdk1.5.0_04\bin

Hth


----------



## Louis2 (15. Jul 2005)

Ja als Standard sollte die Version genommen die ich danach installiert habe also 1.5.0_04.

Ich habe kein CLASSPATH und im PATH steht wie gesagt 

```
D:\Oracle9i\jre\1.4.2\bin\client;D:\Oracle9i\jre\1.4.2\bin;D:\Oracle9i\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem
```
Soll ich statt:
"D:\Oracle9i\jre\1.4.2\bin\client" --> "C:\Programme\Java\jre1.5.0_04\bin\client"
"D:\Oracle9i\jre\1.4.2\bin" --> "C:\Programme\Java\jre1.5.0_04\bin" 

einfügen?


----------



## abollm (15. Jul 2005)

Ja, wie oben bereits von mir beschrieben.


----------



## Louis2 (15. Jul 2005)

Also irgendwas läuft da nicht richtig, da passiert nichts. (Beim Button drück)
(Ich starte mein Programm über ein Applet). In der HTML datei steht 

```
<html>
<head>
<title>MassData-Tool</title>
</head>
<body>

<h1>MassData-Tool Version 1</h1>
Source code in [url="MassData.java"]MassData.java[/url]. 

<hr>
<applet codebase="." archive="classes12_oracle9.zip"
code="MassData" width=1110 height=575>
</applet>
<hr>
</body></html>
```

Die Systemvariable "PATH" wurde wie folgt angepasst:

```
C:\Programme\Java\jre1.5.0_04\bin\client;C:\Programme\Java\jre1.5.0_04\bin;D:\Oracle9i\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem
```

Mein Programm sieht so aus:

```
import java.util.*;
import java.awt.*;  
import java.applet.*; 
import java.awt.event.*; 
import java.sql.*;
import java.text.*;

public class MassData extends Applet 
{    
    private Label dbm_userq, passwordq, database_serverq, database_nameq, question, numbercustomerq, numberaddressq, numbercontactpq, numbercontactnq, numberactivityq, numbertroubleticketq, numberactivityqh, numbertroubleticketqh, ausnahment, numberlieferantq, numberinteressentq;  
    private Button b1;  
    private TextField dbm_user, password, database_server, database_name, numbercustomer, numberaddress, numbercontactp, numbercontactn, numberactivity, numbertroubleticket, numberactivityh, numbertroubleticketh, ausnahmen, numberlieferant, numberinteressent;
    private CheckboxGroup cbg1;   
    private Checkbox typ, max;  
    private Abhoerer abh; 

    private SimpleDateFormat formatter;  // Formats the date displayed
    private String lastdate;             // String to hold date displayed
    private String firstdate;
    private Font clockFaceFont;          // Font for number display on clock
    private java.util.Date currentDate;            // Used to get date to display
    
    public void init()
    {
    	setLayout(null);
            
        dbm_userq = new Label("DB-Username:");
    	dbm_userq.setBounds(20, 20, 100, 20); 
    	add(dbm_userq);
    	dbm_user = new TextField();
    	dbm_user.setBounds(125, 20, 100, 20);
        add(dbm_user);
        
        passwordq = new Label("DB-Password:");
    	passwordq.setBounds(20, 50, 100, 20); 
    	add(passwordq);
    	password = new TextField();
    	password.setBounds(125, 50, 100, 20);
    	add(password);
        
        database_serverq = new Label("DB-Server:");
    	database_serverq.setBounds(20, 80, 100, 20); 
    	add(database_serverq);
    	database_server = new TextField();
    	database_server.setBounds(125, 80, 100, 20);
    	add(database_server);
        
        database_nameq = new Label("DB-Name:");
    	database_nameq.setBounds(20, 110, 100, 20); 
    	add(database_nameq);
    	database_name = new TextField();
    	database_name.setBounds(125, 110, 100, 20);
    	add(database_name);
    
        question = new Label("Welche Felder sollen in der DB gefüllt werden:");
    	question.setBounds(250, 65, 275, 20); 
    	add(question);
        cbg1 = new CheckboxGroup();   
    	typ = new Checkbox("Typische Felder", cbg1, true);    
    	max = new Checkbox("Max. Felder", cbg1, false);   
       	typ.setBounds(525, 55, 125, 20);
    	add(typ); 
    	max.setBounds(525, 75, 125, 20);
    	add(max); 
    	    	
    	numbercustomerq = new Label("Anzahl der Kunden die in der DB angelegt werden sollen:");
    	numbercustomerq.setBounds(20, 170, 450, 20); 
    	add(numbercustomerq);
    	numbercustomer = new TextField();
    	numbercustomer.setBounds(475, 170, 75, 20);
    	add(numbercustomer);
        
        numberlieferantq = new Label("Anzahl der Lieferanten die in der DB angelegt werden sollen:");
    	numberlieferantq.setBounds(20, 200, 450, 20); 
    	add(numberlieferantq);
    	numberlieferant = new TextField();
    	numberlieferant.setBounds(475, 200, 75, 20);
    	add(numberlieferant);
        
        numberinteressentq = new Label("Anzahl der Interessenten die in der DB angelegt werden sollen:");
    	numberinteressentq.setBounds(20, 230, 450, 20); 
    	add(numberinteressentq);
    	numberinteressent = new TextField();
    	numberinteressent.setBounds(475, 230, 75, 20);
    	add(numberinteressent);
        
        numberaddressq = new Label("Anzahl der Adressen die in jede Firma angelegt werden sollen:");
    	numberaddressq.setBounds(20, 260, 450, 20); 
    	add(numberaddressq);
    	numberaddress = new TextField();
    	numberaddress.setBounds(475, 260, 75, 20);
    	add(numberaddress);
        
        numbercontactpq = new Label("Anzahl der Kontaktpersonen die in jeder Adresse angelegt werden sollen:");
    	numbercontactpq.setBounds(20, 290, 450, 20); 
    	add(numbercontactpq);
    	numbercontactp = new TextField();
    	numbercontactp.setBounds(475, 290, 75, 20);
    	add(numbercontactp);
        
        numbercontactnq = new Label("Anzahl der Kontaktnummern die in jeder Kontaktperson angelegt werden sollen:");
    	numbercontactnq.setBounds(20, 320, 450, 20); 
    	add(numbercontactnq);
    	numbercontactn = new TextField();
    	numbercontactn.setBounds(475, 320, 75, 20);
    	add(numbercontactn);
        
        numberactivityqh = new Label("Anzahl der hist. Aktivitäten die für jede Adresse angelegt werden sollen:");
    	numberactivityqh.setBounds(20, 350, 450, 20); 
    	add(numberactivityqh);
    	numberactivityh = new TextField();
    	numberactivityh.setBounds(475, 350, 75, 20);
    	add(numberactivityh);
        
        numberactivityq = new Label("Anzahl der Aktivitäten die für jede Adresse angelegt werden sollen:");
    	numberactivityq.setBounds(20, 380, 450, 20); 
    	add(numberactivityq);
    	numberactivity = new TextField();
    	numberactivity.setBounds(475, 380, 75, 20);
    	add(numberactivity);
        
        numbertroubleticketqh = new Label("Anzahl der hist. Problemfälle die für jede Adresse angelegt werden sollen:");
    	numbertroubleticketqh.setBounds(20, 410, 450, 20); 
    	add(numbertroubleticketqh);
    	numbertroubleticketh = new TextField();
    	numbertroubleticketh.setBounds(475, 410, 75, 20);
    	add(numbertroubleticketh);
        
        numbertroubleticketq = new Label("Anzahl der Problemfälle die für jede Adresse angelegt werden sollen:");
    	numbertroubleticketq.setBounds(20, 440, 450, 20); 
    	add(numbertroubleticketq);
    	numbertroubleticket = new TextField();
    	numbertroubleticket.setBounds(475, 440, 75, 20);
    	add(numbertroubleticket);
    	
        abh = new Abhoerer();
    	b1 = new Button("Connect / Job");  
        b1.setBounds(20, 500, 100, 20);
        add(b1);
 	b1.addActionListener(abh);  
 		
 	ausnahment = new Label("Notice:");
    	ausnahment.setBounds(175, 500, 50, 20); 
    	add(ausnahment);
    	ausnahmen = new TextField();
    	ausnahmen.setBounds(225, 500, 500, 65);
    	add(ausnahmen);
    }
        class Abhoerer implements ActionListener
        {
            public void actionPerformed(ActionEvent e)  
            {  
                formatter = new SimpleDateFormat ("EEE MMM dd hh:mm:ss yyyy", 
                                                  Locale.getDefault());
                currentDate = new java.util.Date();
                try 
                { 
                    String du = String.valueOf(dbm_user.getText()); 
                    String p = String.valueOf(password.getText()); 
                    String ds = String.valueOf(database_server.getText()); 
                    String dn = String.valueOf(database_name.getText()); 
                    
                    Class.forName("oracle.jdbc.driver.OracleDriver"); 
                    //DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver());
                    String url = "jdbc:oracle:thin:@"+ds+":1521:"+dn; 
                    Connection connection = DriverManager.getConnection(url, du, p);
                    connection.setAutoCommit(false);
                    String resultcompany=new String();
                    String resultlieferant=new String();
                    String resultinteressent=new String();
                    String resultaddress=new String();
                    String resultcontactp=new String();
                    String resultcontactn=new String();
                    String resulthistactivity=new String();
                    String resultactivity=new String();
                    String resulthisttroubleticket=new String();
                    String resulttroubleticket=new String();
                
                    int customerno=0;
                    int customerid=0;
                    int addressid=0;
                    int addressno=0;
                    int contactpid=0;
                    int contactnid=0;
                    int activityid=0;
                    int troubleticketid=0;
                    int i,j,k,l,m,n,o,s,q,r;
                    
                    int nc = Integer.valueOf(numbercustomer.getText()).intValue(); 
                    int nl = Integer.valueOf(numberlieferant.getText()).intValue(); 
                    int ni = Integer.valueOf(numberinteressent.getText()).intValue(); 
                    int na = Integer.valueOf(numberaddress.getText()).intValue(); 
                    int ncp = Integer.valueOf(numbercontactp.getText()).intValue(); 
                    int ncn = Integer.valueOf(numbercontactn.getText()).intValue(); 
                    int nth = Integer.valueOf(numbertroubleticketh.getText()).intValue(); 
                    int nt = Integer.valueOf(numbertroubleticket.getText()).intValue(); 
                    int nach = Integer.valueOf(numberactivityh.getText()).intValue(); 
                    int nac = Integer.valueOf(numberactivity.getText()).intValue(); 
                    currentDate = new java.util.Date();
                        firstdate = formatter.format(currentDate);
                    if (cbg1.getSelectedCheckbox().getLabel()=="Typische Felder") 
                    {
                        for (i=1; i<=nc; i++)
                        {
                            Statement company = connection.createStatement();
                            resultcompany = "INSERT into customer (customerno,customerid,mandator,companyname,shorttext,customerclass,searchname) values (" + (customerno=customerno+1) + "," + (customerid=customerid+1) + ",'DEMO'" + ",'Testcustomer','Testcustomer','K','Testcustomer')"; 
                            company.executeUpdate(resultcompany);
                            //company.execute();
//                          //PrepCompany.executeUpdate();
                            connection.commit();
//                          for (j=1; j<=na; j++)
                            {
                                Statement address= connection.createStatement();
                                resultaddress = "INSERT into address (addressno,addressid,customerid,name1,street,streetnumber,zip,city,countrycode,addresstype,searchname) values (" + (addressno=addressno+1) + "," + (addressid=addressid+1) + "," + customerid + ",'Testaddress','Teststreet',23,76131,'Testcity','D',1,'Testaddress')";
                                address.executeUpdate(resultaddress); 
                                connection.commit(); 
                                for (s=1; s<=nth; s++)
                                {
                                    Statement histtroubleticket= connection.createStatement();
                                    resulthisttroubleticket = "INSERT into troubletickethist (troubleticketid,customerid,addressid,employeeid,mandator,description,troubleticketstate,term1,term2,troubleticketpriority) values (" + (troubleticketid=troubleticketid+1) + "," + customerid + "," + addressid + ",1,'DEMO','TestSupportCall','AUFG','31.12.2004','31.12.2005',1)";
                                    histtroubleticket.executeUpdate(resulthisttroubleticket); 
//                                    connection.commit();
                                    histtroubleticket.close();
                                }
                                for (n=1; n<=nt; n++)
                                {
                                    Statement troubleticket= connection.createStatement();
                                    resulttroubleticket = "INSERT into troubleticket (troubleticketid,customerid,addressid,employeeid,mandator,description,troubleticketstate,term1,term2,troubleticketpriority) values (" + (troubleticketid=troubleticketid+1) + "," + customerid + "," + addressid + ",1,'DEMO','TestSupportCall','AUFG','31.12.2004','31.12.2005',1)";
                                    troubleticket.executeUpdate(resulttroubleticket); 
//                                    connection.commit();
                                    troubleticket.close();
                                }
                                for (o=1; o<=nach; o++)
                                {
                                    Statement histactivity= connection.createStatement();
                                    resulthistactivity = "INSERT into activityhist (activityid,customerid,addressid,employeeid,mandator,subject,state,activitytype,activitypriority,term,deadline) values (" + (activityid=activityid+1) + "," + customerid + "," + addressid + ",1,'DEMO','Testactivity','NB','ANG',1,'31.12.2004','31.12.2005')";
                                    histactivity.executeUpdate(resulthistactivity); 
//                                    connection.commit();
                                    histactivity.close();
                                }
                                for (m=1; m<=nac; m++)
                                {       
                                    Statement activity= connection.createStatement();
                                    resultactivity = "INSERT into activity (activityid,customerid,addressid,employeeid,mandator,subject,state,activitytype,activitypriority,term,deadline) values (" + (activityid=activityid+1) + "," + customerid + "," + addressid + ",1,'DEMO','Testactivity','NB','ANG',1,'31.12.2004','31.12.2005')";
                                    activity.executeUpdate(resultactivity); 
//                                    connection.commit();
                                    activity.close();
                                }
                                for (k=1; k<=ncp; k++)
                                {
                                    Statement contactp= connection.createStatement();
                                    resultcontactp = "INSERT into contactperson (contactpersonid,addressid,greetingcode,firstname,lastname) values (" + (contactpid=contactpid+1) + "," + addressid + ",'MR','Testman','Testman')";
                                    contactp.executeUpdate(resultcontactp); 
//                                    connection.commit(); 
                                    for (l=1; l<=ncn; l++)
                                    {
                                        Statement contactn= connection.createStatement();
                                        resultcontactn = "INSERT into contactnumber (contactnumberid,contactpersonid,addressid,mandator,contactnumbertype,contactnumber) values (" + (contactnid=contactnid+1) + "," + contactpid + "," + addressid + ",'DEMO',1,2222)";
                                        contactn.executeUpdate(resultcontactn); 
//                                        connection.commit(); 
                                        contactn.close();
                                    }
                                    contactp.close();
                                }
                                address.close();
                            }
                            company.close();
                        }

                        //connection.commit(); 

                        usw...
                        
                connection.close();       
                                                      
                currentDate = new java.util.Date();
                lastdate = formatter.format(currentDate);

                ausnahmen.setText("Begin time: " +firstdate+ " /n"+
                "End time: " + lastdate + "    !!!!!Please execute the Userrights Batchrun!!!!!"); 
                ausnahmen.repaint();
                } 
                
                catch(ClassNotFoundException e1) 
                { 
                    ausnahmen.setText("Driver not found"); 
                    e1.printStackTrace(); 
                } 
                
                catch(SQLException e2) 
                { 
                    System.out.println("SQLException");
                    ausnahmen.setText(e2.toString()); 
                } 
                catch(Exception e3) 
                {    
                    e3.printStackTrace(); 
                } 
                
                
            }
        }
}
```


----------



## abollm (15. Jul 2005)

Louis2 hat gesagt.:
			
		

> Also irgendwas läuft da nicht richtig, da passiert nichts. (Beim Button drück)
> (Ich starte mein Programm über ein Applet). In der HTML datei steht
> 
> ```
> ...



Nur so auf die Schnelle, ohne mir deinen Code im Detail angesehen zu haben:

Schau dir einmal genau den Inhalt des ARCHIVE-Tags an: -> classes12_oracle9.zip

Ist das so richtig?

Ausßerdem solltest du dir gerade bei Applet-Anwendungen angewöhnen, die Java-Konsole einzublenden. Ansonsten hast du ja keine Informationen über die auftretenden Fehlermeldungen.


----------

