# DB-Verbindung (Oracle) funktioniert nicht



## Louis2 (10. Jan 2005)

Hallo,

ich bin kein Java-Experte, deshalb kann es sein, dass mein Quellcode Fehler beinhaltet, würde mich freuen, wenn paar Zeit hätten mal durchzuschauen und zu korrigieren danke!

Bei der Verbindung zu Oracle-DB kommt folgende Fehlermeldung:

```
java.sql.SQLException: Protocol violation
        at oracle.jdbc.dbaccess.DBError.check_error(DBError.java)
        at oracle.jdbc.ttc7.O3log.receive2nd(O3log.java)
        at oracle.jdbc.ttc7.TTC7Protocol.logon(TTC7Protocol.java)
        at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java)
        at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java)
        at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java)
        at java.sql.DriverManager.getConnection(DriverManager.java:512)
        at java.sql.DriverManager.getConnection(DriverManager.java:171)
        at examples.Project.MassData.main(MassData.java:18)
Exception in thread "main"
```


Mein Quellcode sieht so aus:

```
import Prog1Tools.IOTools;
import java.sql.*;

public class MassData 
{
    public static void main(String[] args) 
    throws ClassNotFoundException, SQLException
    {
        String dbm_user = IOTools.readString("DB-Username:");
        String password = IOTools.readString("DB-Password:");
        String database_server = IOTools.readString("DB-Server:");
        String database_name = IOTools.readString("DB-Name:");

        DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver());
        String url = "jdbc:oracle:thin:@" + database_server + ":1521:" + database_name;
        Connection connection = DriverManager.getConnection(url, dbm_user, password);
        
        boolean question=IOTools.readBoolean("Soll in der DB nur die typical Felder gefüllt werden? (true OR false):");
        int numbercustomer=IOTools.readInteger("Anzahl der Firmen die in der DB angelegt werden sollen:");
        int numberaddress=IOTools.readInteger("Anzahl der Adressen die in jede Firma angelegt werden sollen:");
        int numbercontactp=IOTools.readInteger("Anzahl der Kontaktpersonen die in jeder Adresse angelegt werden sollen:");
        int numbercontactn=IOTools.readInteger("Anzahl der Kontaktnummern die in jeder Kontaktperson angelegt werden sollen:");
        int numberactivity=IOTools.readInteger("Anzahl der Aktivitäten die angelegt werden sollen:");
        int numbertroubleticket=IOTools.readInteger("Anzahl der Problemfälle die angelegt werden sollen:");
        
        int c=0;
        int a=0;
        int cp=0;
        int cn=0;
                       
        if (question==true)
        for (int i=0; i<=numbercustomer; i++)
        {
            Statement company = connection.createStatement();
            ResultSet resultcompany = company.executeQuery("INSERT into customer (customerno,companyname,shorttext,customerclass) values (" + (c=c+1) + ",Testcustomer,Testcustomer,K)");
            resultcompany.next();
            
            for (i=0; i<=numberaddress; i++)
            {
                Statement address= connection.createStatement();
                ResultSet resultaddress = address.executeQuery("INSERT into address (addressno,name1,street,streetnumber,zip,city,country,addresstype) values (" + (a=a+1) + ",Testaddress,Teststreet,23,76131,Testcity,D,1)");
                resultaddress.next();
            
                for (i=0; i<=numbercontactp; i++)
                {
                Statement contactp= connection.createStatement();
                ResultSet resultcontactp = contactp.executeQuery("INSERT into contactperson (greetingcode,firstname,lastname) values (MR,Testman,Testman)");
                resultcontactp.next();
                
                    for (i=0; i<=numbercontactn; i++)
                    {
                    Statement contactn= connection.createStatement();
                    ResultSet resultcontactn = contactn.executeQuery("INSERT into contactnumber (contactnumbertype,contactnumber) values (1,001122334455)");
                    resultcontactn.next();
                    
                        for (i=0; i<=numberactivity; i++)
                        {
                        Statement activity= connection.createStatement();
                        ResultSet resultactivity = activity.executeQuery("INSERT into activity (subject,state,activitytype,activitypriority) values (Testactivity,NB,ANG,1)");
                        resultactivity.next();
                                            
                            for (i=0; i<=numbertroubleticket; i++)
                            {
                            Statement troubleticket= connection.createStatement();
                            ResultSet resulttroubleticket = troubleticket.executeQuery("INSERT into troubleticket (description,troubleticketstate) values (TestSupportCall,AUFG)");
                            resulttroubleticket.next();
                            
                            troubleticket.close();
                            resulttroubleticket.close();
                            }
                        activity.close();
                        resultactivity.close();
                        }
                    contactn.close();
                    resultcontactn.close();
                    }
                contactp.close();
                resultcontactp.close(); 
                }
            address.close();
            resultaddress.close();     
            }
        company.close();
        resultcompany.close();
        }
    
        else
        for (int i=0; i<=numbercustomer; i++)
        {
            Statement company = connection.createStatement();
            ResultSet resultcompany = company.executeQuery("INSERT into customer (customerno,companyname,shorttext,searchname,customerclass) values (" + (c=c+1) + ",Testcustomer,Testcustomer,Testcustomer,K)");
            resultcompany.next();
            
            for (i=0; i<=numberaddress; i++)
            {
                Statement address= connection.createStatement();
                ResultSet resultaddress = address.executeQuery("INSERT into address (addressno,name1,name2,name3,street,streetnumber,zip,city,country,region,pobox,zip_pobox,addresstype,language) values (" + (a=a+1) + ",Testaddress,Testaddress,Testaddress,Teststreet,23,76131,Testcity,D,BW,1973,66801,1,de)");
                resultaddress.next();
            
                for (i=0; i<=numbercontactp; i++)
                {
                Statement contactp= connection.createStatement();
                ResultSet resultcontactp = contactp.executeQuery("INSERT into contactperson (greetingcode,firstname,lastname,language,title) values (MR,Testman,Testman,de,Dr.)");
                resultcontactp.next();
                
                    for (i=0; i<=numbercontactn; i++)
                    {
                    Statement contactn= connection.createStatement();
                    ResultSet resultcontactn = contactn.executeQuery("INSERT into contactnumber (contactnumbertype,contactnumber) values (1,001122334455)");
                    resultcontactn.next();
                    
                        for (i=0; i<=numberactivity; i++)
                        {
                        Statement activity= connection.createStatement();
                        ResultSet resultactivity = activity.executeQuery("INSERT into activity (subject,state,activitytype,activitypriority,emotion) values (Testactivity,NB,ANG,1,High)");
                        resultactivity.next();
                                            
                            for (i=0; i<=numbertroubleticket; i++)
                            {
                            Statement troubleticket= connection.createStatement();
                            ResultSet resulttroubleticket = troubleticket.executeQuery("INSERT into troubleticket (description,troubleticketstate) values (TestSupportCall,AUFG)");
                            resulttroubleticket.next();
                            
                            troubleticket.close();
                            resulttroubleticket.close();
                            }
                        activity.close();
                        resultactivity.close();
                        }
                    contactn.close();
                    resultcontactn.close();
                    }
                contactp.close();
                resultcontactp.close(); 
                }
            address.close();
            resultaddress.close();     
            }
        company.close();
        resultcompany.close();
        }
        connection.close();        
    }
}
```

Bin für jede Hilfe dankbar!

Gruß


----------



## sliwalker (10. Jan 2005)

Hoi,

ich mach es immer so.
Weiß nicht was/ob irgendeine Methode dafür besser ist, aber wenn
man alternativen hat...


```
try
			{
				Class.forName("oracle.jdbc.driver.OracleDriver");
				String url = "jdbc:oracle:thin:@"+host+":1521:"+db;
				con = DriverManager.getConnection(url, username, userpass);
				st = con.createStatement();
			}
			catch(ClassNotFoundException e)
			{
				System.out.println("Treiber nicht gefunden.");
				e.printStackTrace();
			}
			catch(SQLException e)
			{
				System.out.println(e.toString());
			}
			catch(Exception e)
			{
				e.printStackTrace();
			}
```

Typische Fehler:

1. Treiber nicht ins package geladen?
2. Eingabefehler?

greetz
SLi


----------



## Guest (10. Jan 2005)

@Sliwalker:

1. Eingabefehler schliesse ich aus.
2. Treiber hatte ich mir von http://java.rrzn.uni-hannover.de/jdbc/treiber/ den "Oracle-Thin-Treiber" runtergeladen. Falsch?

Was sagt denn die Fehlermeldung die ich bekomme eigentlich genau aus?

Ist vielleicht im Quellcode was falsch?

Gruß


----------



## abollm (11. Jan 2005)

@Louis2:

Zunächst baue einen TRY...CATCH-Block in deinen Code ein, siehe auch Code sliwalker 

Die Fehlermeldung zeigt einen Protokollfehler an. Denn du erhältst auch keine ORA-Fehlermeldung, ansonsten könntest du dich damit weiterhangeln.

Für mich ist das so noch nicht nachvollziehbar. Ich baue den Code einmal kurz um und teste das mit meiner Oracle-DB einmal aus. Meine Vermutung ist aber, dass dabei nicht sehr viel herauskommt.


----------



## Bleiglanz (11. Jan 2005)

("INSERT into contactperson (greetingcode,firstname,lastname,language,title) 
values (MR,Testman,Testman,de,Dr.)"); 

der letzte punkt nach dem "Dr" ist mit Sicherheit VERBOTEN

Strings schreibt man i.A. in einfache Hochkommas, nimm lieber ein PreparedStatement

hat aber vermutlich nix mit deinem Problem zu tun

     String url = "jdbcracle:thin" + database_server + ":1521:" + database_name;
        Connection connection = DriverManager.getConnection(url, dbm_user, password); 

zeig mal den String "url" her, wie der bei deiner Testeingabe aussieht



            ResultSet resultcompany = company.executeQuery("INSERT into customer (customerno,companyname,shorttext,customerclass) values (" + (c=c+1)

was solln das sein? warum nicht "c++"


----------



## thE_29 (11. Jan 2005)

außerdem bringt ein Insert keinen ResultSet zurück!

Das musst du mit executeUpdate(..) machen das man einen Error code zurück bekommt!


----------



## abollm (11. Jan 2005)

Also, obwohl dein Code reichlich "verboten" ist, funktioniert er grundsätzlich. Ich schätze, du hast einen der für den Connect notwendigen Parameter nicht richtig eingegeben. Ansonsten schau auch einmal in die TNSNAMES.ORA und beachte vor allem die sonstigen Hinweise oben (Bleiglanz et al.).


----------



## Louis2 (11. Jan 2005)

Hallo,

ich habe einen TRY...CATCH-Code eingebaut. So sieht mein Code nun aus:

```
import Prog1Tools.IOTools;
import java.sql.*;

public class MassData 
{
    public static void main(String[] args) 
    throws ClassNotFoundException, SQLException
    {
        String dbm_user = IOTools.readString("DB-Username:");
        String password = IOTools.readString("DB-Password:");
        String database_server = IOTools.readString("DB-Server:");
        String database_name = IOTools.readString("DB-Name:");
        
        try 
         { 
            Class.forName("oracle.jdbc.driver.OracleDriver"); 
            String url = "jdbc:oracle:thin:@"+database_server+":1521:"+database_name; 
            Connection connection = DriverManager.getConnection(url, dbm_user, password); 
            
                boolean question=IOTools.readBoolean("Soll in der DB nur die typical Felder gefüllt werden? (true OR false):");
                int numbercustomer=IOTools.readInteger("Anzahl der Firmen die in der DB angelegt werden sollen:");
                int numberaddress=IOTools.readInteger("Anzahl der Adressen die in jede Firma angelegt werden sollen:");
                int numbercontactp=IOTools.readInteger("Anzahl der Kontaktpersonen die in jeder Adresse angelegt werden sollen:");
                int numbercontactn=IOTools.readInteger("Anzahl der Kontaktnummern die in jeder Kontaktperson angelegt werden sollen:");
                int numberactivity=IOTools.readInteger("Anzahl der Aktivitäten die angelegt werden sollen:");
                int numbertroubleticket=IOTools.readInteger("Anzahl der Problemfälle die angelegt werden sollen:");
        
                int c=0;
                int a=0;
                int cp=0;
                int cn=0;
                       
                if (question==true)
                {
                    for (int i=0; i<=numbercustomer; i++)
                    {
                        Statement company = connection.createStatement();
                        ResultSet resultcompany = company.executeQuery("INSERT into customer (customerno,companyname,shorttext,customerclass) values (" + (c++) + ",'Testcustomer','Testcustomer','K')");
                        resultcompany.next();
            
                        for (i=0; i<=numberaddress; i++)
                        {
                            Statement address= connection.createStatement();
                            ResultSet resultaddress = address.executeQuery("INSERT into address (addressno,name1,street,streetnumber,zip,city,countrycode,addresstype) values (" + (a++) + ",'Testaddress','Teststreet',23,76131,'Testcity','D',1)");
                            resultaddress.next();
            
                            for (i=0; i<=numbercontactp; i++)
                            {
                                Statement contactp= connection.createStatement();
                                ResultSet resultcontactp = contactp.executeQuery("INSERT into contactperson (greetingcode,firstname,lastname) values ('MR','Testman','Testman')");
                                resultcontactp.next();
                
                                for (i=0; i<=numbercontactn; i++)
                                {
                                    Statement contactn= connection.createStatement();
                                    ResultSet resultcontactn = contactn.executeQuery("INSERT into contactnumber (contactnumbertype,contactnumber) values (1,001122334455)");
                                    resultcontactn.next();
                                           
                                    contactn.close();
                                    resultcontactn.close();
                                }
                                contactp.close();
                                resultcontactp.close(); 
                                }
                        address.close();
                        resultaddress.close();     
                        }
                    company.close();
                    resultcompany.close();
                    }
            
                    for (int i=0; i<=numberactivity; i++)
                    {
                        Statement activity= connection.createStatement();
                        ResultSet resultactivity = activity.executeQuery("INSERT into activity (subject,state,activitytype,activitypriority) SELECT customerno from companyvalues ('Testactivity','NB','ANG',1)");
                        resultactivity.next();
                
                        activity.close();
                        resultactivity.close();
                    }
                                            
                    for (int i=0; i<=numbertroubleticket; i++)
                    {
                        Statement troubleticket= connection.createStatement();
                        ResultSet resulttroubleticket = troubleticket.executeQuery("INSERT into troubleticket (description,troubleticketstate) values ('TestSupportCall','AUFG')");
                        resulttroubleticket.next();
                            
                        troubleticket.close();
                        resulttroubleticket.close();
                    }
                }
    
                else
                for (int i=0; i<=numbercustomer; i++)
                {
                    Statement company = connection.createStatement();
                    ResultSet resultcompany = company.executeQuery("INSERT into customer (customerno,companyname,shorttext,searchname,customerclass) values (" + (c++) + ",'Testcustomer','Testcustomer','Testcustomer','K')");
                    resultcompany.next();
            
                    for (i=0; i<=numberaddress; i++)
                    {
                        Statement address= connection.createStatement();
                        ResultSet resultaddress = address.executeQuery("INSERT into address (addressno,name1,name2,name3,street,streetnumber,zip,city,countrycode,region,pobox,zip_pobox,addresstype,language) values (" + (a++) + ",'Testaddress','Testaddress','Testaddress','Teststreet',23,76131,'Testcity','D','BW',1973,66801,1,'de')");
                        resultaddress.next();
            
                        for (i=0; i<=numbercontactp; i++)
                        {
                            Statement contactp= connection.createStatement();
                            ResultSet resultcontactp = contactp.executeQuery("INSERT into contactperson (greetingcode,firstname,lastname,language,title) values ('MR','Testman','Testman','de','Dr')");
                            resultcontactp.next();
                
                            for (i=0; i<=numbercontactn; i++)
                            {
                                Statement contactn= connection.createStatement();
                                ResultSet resultcontactn = contactn.executeQuery("INSERT into contactnumber (contactnumbertype,contactnumber) values (1,001122334455)");
                                resultcontactn.next();
                    
                                contactn.close();
                                resultcontactn.close();
                            }
                        contactp.close();
                        resultcontactp.close(); 
                        }
                    address.close();
                    resultaddress.close();     
                    }
                company.close();
                resultcompany.close();
                }
                          
                for (int i=0; i<=numberactivity; i++)
                {
                    Statement activity= connection.createStatement();
                    ResultSet resultactivity = activity.executeQuery("INSERT into activity (subject,state,activitytype,activitypriority,emotion) values ('Testactivity','NB','ANG',1,'High')");
                    resultactivity.next();
            
                    activity.close();
                    resultactivity.close();
                }
                                            
                for (int i=0; i<=numbertroubleticket; i++)
                {
                    Statement troubleticket= connection.createStatement();
                    ResultSet resulttroubleticket = troubleticket.executeQuery("INSERT into troubleticket (description,troubleticketstate) values ('TestSupportCall','AUFG')");
                    resulttroubleticket.next();
                            
                    troubleticket.close();
                    resulttroubleticket.close();
                }
                    connection.close();
         } 
         catch(ClassNotFoundException e) 
         { 
            System.out.println("Treiber nicht gefunden."); 
            e.printStackTrace(); 
         } 
         catch(SQLException e) 
         { 
            System.out.println(e.toString()); 
         } 
         catch(Exception e) 
         { 
            e.printStackTrace(); 
         } 
   }    
}
```

Als Fehlermeldung kommt "nur" noch: java.sql.SQLException: Protocol violation
Also zwar kürzer aber Schlauer sind wir nicht oder doch? Liegt es vielleicht am Treiber oder ist die String-URL falsch konzipiert??


----------



## Louis2 (11. Jan 2005)

@Bleiglanz: . wurde entfernt und c++ bzw. a++ eingefügt.
Da ich bei meiner Testeingabe als Username: Lempert und Password: Olivier eingebe, als Server: ka-wertz und als DBName: crm31 sollte eigentlich mein String so aussehen:

```
String url = "jdbc:oracle:thin:@"+ka-wertz+":1521:"+crm31; 
Connection connection = DriverManager.getConnection(jdbc:oracle:thin:@ka-wertz:1521:crm31,Lempert, Olivier);
```
Oder was wolltest du genau haben?

@thE_29: Wie würde das aussehen mit dem executeUpdate(..) am Beispiel von

```
for (int i=0; i<=numbercustomer; i++)
                    {
                        Statement company = connection.createStatement();
                        ResultSet resultcompany = company.executeQuery("INSERT into customer (customerno,companyname,shorttext,customerclass) values (" + (c++) + ",'Testcustomer','Testcustomer','K')");
                        resultcompany.next();
```
?

Etwa so:

```
String resultcompany=new String();
....

for (int i=0; i<=numbercustomer; i++)
{
        Statement company = connection.createStatement();
        resultcompany = "INSERT into customer (customerno,companyname,shorttext,customerclass) values (" + (c++) + ",'Testcustomer','Testcustomer','K')";
        company.executeUpdate(resultcompany);
        connection.commit();
```
?

@abollm: Meine TNSNAMES.ORA beinhaltet:

```
CRM31.world =
 (DESCRIPTION = 
       (ADDRESS = 
         (COMMUNITY = TCP.world)
         (PROTOCOL  = TCP)
         (Host      = KA-WERTZ)
         (Port      = 1521)
       )
     (CONNECT_DATA = 
       (SID = CRM31)
          (GLOBAL_NAME = CRM31.world)
     )
 )
```
Also eigentlich alles korrekt oder?


@Alle: Ich kann mich problemlos an die DB ausserhalb von Java anmelden!
Ich benutze Netbeans und habe den Treiber classes111.zip unter \NetBeans3.6\lib\ext gespeichert.


----------



## Louis2 (11. Jan 2005)

Jungs ich habe es hinbekommen  Mein Oracle Treiber war irgendwie alt hatte classes111.zip genommen, mit classes12.zip kommt nicht mehr die Protocol Fehlermeldung!
So nun aber beim einfügen einer INSERT Zeile kommt die Fehlermeldung: 

```
java.sql.SQLException: ORA-01400: Einfügen von NULL in ("CCMOWNER"."CUSTOMER_DATA"."CUSTOMERID") nicht möglich
```

Liegt es am executeUpdate(..) welches rein muss oder wo ist der Fehler?

Wie gesagt mein Code:

```
import Prog1Tools.IOTools;
import java.sql.*;

public class MassData 
{
    public static void main(String[] args) 
    throws ClassNotFoundException, SQLException
    {
        String dbm_user = IOTools.readString("DB-Username:");
        String password = IOTools.readString("DB-Password:");
        String database_server = IOTools.readString("DB-Server:");
        String database_name = IOTools.readString("DB-Name:");
        
        try 
         { 
            Class.forName("oracle.jdbc.driver.OracleDriver"); 
            String url = "jdbc:oracle:thin:@"+database_server+":1521:"+database_name; 
            Connection connection = DriverManager.getConnection(url, dbm_user, password); 
            
                boolean question=IOTools.readBoolean("Soll in der DB nur die typical Felder gefüllt werden? (true OR false):");
                int numbercustomer=IOTools.readInteger("Anzahl der Firmen die in der DB angelegt werden sollen:");
                int numberaddress=IOTools.readInteger("Anzahl der Adressen die in jede Firma angelegt werden sollen:");
                int numbercontactp=IOTools.readInteger("Anzahl der Kontaktpersonen die in jeder Adresse angelegt werden sollen:");
                int numbercontactn=IOTools.readInteger("Anzahl der Kontaktnummern die in jeder Kontaktperson angelegt werden sollen:");
                int numberactivity=IOTools.readInteger("Anzahl der Aktivitäten die angelegt werden sollen:");
                int numbertroubleticket=IOTools.readInteger("Anzahl der Problemfälle die angelegt werden sollen:");
        
                int c=0;
                int a=0;
                int cp=0;
                int cn=0;
                       
                if (question==true)
                {
                    for (int i=0; i<=numbercustomer; i++)
                    {
                        Statement company = connection.createStatement();
                        ResultSet resultcompany = company.executeQuery("INSERT into customer (customerno,companyname,shorttext,customerclass) values (" + (c++) + ",'Testcustomer','Testcustomer','K')");
                        resultcompany.next();
            
                        for (i=0; i<=numberaddress; i++)
                        {
                            Statement address= connection.createStatement();
                            ResultSet resultaddress = address.executeQuery("INSERT into address (addressno,name1,street,streetnumber,zip,city,countrycode,addresstype) values (" + (a++) + ",'Testaddress','Teststreet',23,76131,'Testcity','D',1)");
                            resultaddress.next();
            
                            for (i=0; i<=numbercontactp; i++)
                            {
                                Statement contactp= connection.createStatement();
                                ResultSet resultcontactp = contactp.executeQuery("INSERT into contactperson (greetingcode,firstname,lastname) values ('MR','Testman','Testman')");
                                resultcontactp.next();
                
                                for (i=0; i<=numbercontactn; i++)
                                {
                                    Statement contactn= connection.createStatement();
                                    ResultSet resultcontactn = contactn.executeQuery("INSERT into contactnumber (contactnumbertype,contactnumber) values (1,001122334455)");
                                    resultcontactn.next();
                                           
                                    contactn.close();
                                    resultcontactn.close();
                                }
                                contactp.close();
                                resultcontactp.close(); 
                                }
                        address.close();
                        resultaddress.close();     
                        }
                    company.close();
                    resultcompany.close();
                    }
            
                    for (int i=0; i<=numberactivity; i++)
                    {
                        Statement activity= connection.createStatement();
                        ResultSet resultactivity = activity.executeQuery("INSERT into activity (subject,state,activitytype,activitypriority) SELECT customerno from companyvalues ('Testactivity','NB','ANG',1)");
                        resultactivity.next();
                
                        activity.close();
                        resultactivity.close();
                    }
                                            
                    for (int i=0; i<=numbertroubleticket; i++)
                    {
                        Statement troubleticket= connection.createStatement();
                        ResultSet resulttroubleticket = troubleticket.executeQuery("INSERT into troubleticket (description,troubleticketstate) values ('TestSupportCall','AUFG')");
                        resulttroubleticket.next();
                            
                        troubleticket.close();
                        resulttroubleticket.close();
                    }
                }
    
                else
                for (int i=0; i<=numbercustomer; i++)
                {
                    Statement company = connection.createStatement();
                    ResultSet resultcompany = company.executeQuery("INSERT into customer (customerno,companyname,shorttext,searchname,customerclass) values (" + (c++) + ",'Testcustomer','Testcustomer','Testcustomer','K')");
                    resultcompany.next();
            
                    for (i=0; i<=numberaddress; i++)
                    {
                        Statement address= connection.createStatement();
                        ResultSet resultaddress = address.executeQuery("INSERT into address (addressno,name1,name2,name3,street,streetnumber,zip,city,countrycode,region,pobox,zip_pobox,addresstype,language) values (" + (a++) + ",'Testaddress','Testaddress','Testaddress','Teststreet',23,76131,'Testcity','D','BW',1973,66801,1,'de')");
                        resultaddress.next();
            
                        for (i=0; i<=numbercontactp; i++)
                        {
                            Statement contactp= connection.createStatement();
                            ResultSet resultcontactp = contactp.executeQuery("INSERT into contactperson (greetingcode,firstname,lastname,language,title) values ('MR','Testman','Testman','de','Dr')");
                            resultcontactp.next();
                
                            for (i=0; i<=numbercontactn; i++)
                            {
                                Statement contactn= connection.createStatement();
                                ResultSet resultcontactn = contactn.executeQuery("INSERT into contactnumber (contactnumbertype,contactnumber) values (1,001122334455)");
                                resultcontactn.next();
                    
                                contactn.close();
                                resultcontactn.close();
                            }
                        contactp.close();
                        resultcontactp.close(); 
                        }
                    address.close();
                    resultaddress.close();     
                    }
                company.close();
                resultcompany.close();
                }
                          
                for (int i=0; i<=numberactivity; i++)
                {
                    Statement activity= connection.createStatement();
                    ResultSet resultactivity = activity.executeQuery("INSERT into activity (subject,state,activitytype,activitypriority,emotion) values ('Testactivity','NB','ANG',1,'High')");
                    resultactivity.next();
            
                    activity.close();
                    resultactivity.close();
                }
                                            
                for (int i=0; i<=numbertroubleticket; i++)
                {
                    Statement troubleticket= connection.createStatement();
                    ResultSet resulttroubleticket = troubleticket.executeQuery("INSERT into troubleticket (description,troubleticketstate) values ('TestSupportCall','AUFG')");
                    resulttroubleticket.next();
                            
                    troubleticket.close();
                    resulttroubleticket.close();
                }
                    connection.close();
         } 
         catch(ClassNotFoundException e) 
         { 
            System.out.println("Treiber nicht gefunden."); 
            e.printStackTrace(); 
         } 
         catch(SQLException e) 
         { 
            System.out.println(e.toString()); 
         } 
         catch(Exception e) 
         { 
            e.printStackTrace(); 
         } 
   }    
}
```

Danke!


----------



## Louis2 (11. Jan 2005)

@Alle: Könnt Ihr mal bitte -falls ich Zeit habt- mein Code durchschauen und korrigieren auch mit den ...close() denn da bin ich mir überhaupt nicht sicher, ob die an der richtigen Stelle drin sind. Thx.


----------



## Louis2 (11. Jan 2005)

Zu meinem Problem, kann es sein, dass ich für CUSTOMERID auch ein Wert schon eingeben muss?
Ich bin unsicher, da ich eigentlich auch ein Trigger habe in der DB selbst nach hinzufügen von z.B CUSTOMERNO Wert eine CUSTOMERID selbst einfügt...


----------



## thE_29 (11. Jan 2005)

selbst classes12.zip ist zu alt für 1.4

es gibt schon was neueres! so nebenbei


----------



## Louis2 (11. Jan 2005)

Verräts du mir auch wie der neue Treiber heißt? 

Wie sieht es mit meinem Problem bzg. Fehlermeldung und executeUpdate(..) (s.o) aus? :wink:


----------



## thE_29 (11. Jan 2005)

http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/htdocs/jdbc9201.html

rat mal wie er heißt 

und der Code passt beim Update!


----------



## Louis2 (11. Jan 2005)

Wie meinen mit "Der Code passt beim Update"?

Passt dieser Code?

```
String resultcompany=new String(); 
.... 

for (int i=0; i<=numbercustomer; i++) 
{ 
        Statement company = connection.createStatement(); 
        resultcompany = "INSERT into customer (customerno,companyname,shorttext,customerclass) values (" + (c++) + ",'Testcustomer','Testcustomer','K')"; 
        company.executeUpdate(resultcompany); 
        connection.commit();
```

statt 


```
for (int i=0; i<=numbercustomer; i++) 
                    { 
                        Statement company = connection.createStatement(); 
                        ResultSet resultcompany = company.executeQuery("INSERT into customer (customerno,companyname,shorttext,customerclass) values (" + (c++) + ",'Testcustomer','Testcustomer','K')"); 
                        resultcompany.next();
```

?

Was bedeutet die Fehlermeldung:

```
java.sql.SQLException: ORA-01400: Einfügen von NULL in ("CCMOWNER"."CUSTOMER_DATA"."CUSTOMERID")
```

Muss ich für CUSTOMERID einen Wert eingeben?


----------



## abollm (11. Jan 2005)

Dein Frage, ob dein Code passt, ist zur Lösung des Problems


```
ORA-01400: Einfügen von NULL in ("CCMOWNER"."CUSTOMER_DATA"."CUSTOMERID") nicht möglich
```

nicht hinreichend. Wenn du z.B. auf mindestens einer der o.a. Spalten einen Unique-Constraint hast und versucht hast in  diese betr. Spalte einen NULL-Wert einzufügen, dann erhältst du die o.a. ORA-Fehlermeldung.

Setze doch einmal mit SQL*Plus ein DESC auf die Tabelle ab, dann siehst du ja, welche Spalten NOT NULL sind.


----------



## Guest (11. Jan 2005)

Ich möchte im Java Code eine SQL Datei von der Festplatte ausführen lassen. Wie sieht der Code dafür aus um die Datei zu laden und dann um sie auszuführen? Habe da nämlich keine Ahnung  

Danke.


----------



## Louis2 (11. Jan 2005)

Das war ich grade


----------



## abollm (11. Jan 2005)

Anonymous hat gesagt.:
			
		

> Ich möchte im Java Code eine SQL Datei von der Festplatte ausführen lassen. Wie sieht der Code dafür aus um die Datei zu laden und dann um sie auszuführen? Habe da nämlich keine Ahnung
> 
> Danke.



Hast du einen normalen Oracle-Client auf der Maschine, auf der du den Code ausführen möchtest?


----------



## Guest (11. Jan 2005)

Ja


----------



## abollm (11. Jan 2005)

OK, du weißt wie du eine externe Anwendung aus Java heraus aufrufen kannst. Wenn nein, dann folgender _grundsätzlicher_ Hinweis dazu:


```
try {
   Runtime.getRuntime().exec("cmd /c start notepad.exe");
} catch (Exception e) {
System.err.println("Unbehandelter Ausnahmefehler: "
+ e.getMessage());
}
```

Nachdem das klar ist, musst du nur noch den Aufruf entsprechend anpassen. Das läuft dann so ab, dass du statt wie im obigen Beispiel "Notepad.exe" das Oracle-Werkzeugprogramm "sqlplus.exe" zusammem mit einigen Aufrufparamtetern aufrufst. Das funktioniert über eine Batch-Datei (OS: Windows!). Wenn du Unix/Linux hast, dann statt Batch-Datei ein SH-Skriptum ausführen.

Also, z.B. heißt dein SQL-Skriptum "myscript.sql". Der Datenbanknutzer heißt "scott", das Kennwort dieser Nutzers lautet "tiger" und dein DB-Alias gem. TNS-Eintrag lautet "ORADB". Dann hast du eine Batch-Datei mit dem Namen "ora.bat", in der nur folgende Zeile steht:

```
sqlplus scott/tiger@oradb @myscript.sql
```
Damit rufst du aus Java heraus das o.e. SQL-Skriptum mit den sonstigen Angaben wie folgt auf:


```
try {
   Runtime.getRuntime().exec("cmd /c start ora.bat");
} catch (Exception e) {
System.err.println("Unbehandelter Ausnahmefehler: "
+ e.getMessage());
}
```

Eine andere Möglichkeit ist die, dass du im SQL-Skriptum die Aufrufe für den Login-Vorgang mit Nutzer-, Passwort- und Hostabfrage einbaust.


----------



## Louis2 (12. Jan 2005)

Hi,

wenn ich

```
try 
{ 
	Runtime.getRuntime().exec("cmd /c start Test.bat"); 
} 
catch (Exception e) 
{ 
	System.err.println("Unbehandelter Ausnahmefehler: " + e.getMessage()); 
}
```

kommt die Meldung, dass man die Datei nicht findet, obwohl sie existiert und im selben Verzeichnis wie die Java Datei ist. Kann man im TRY Code irgendwie genau angeben wo er die Datei suchen muss?


Nächste Frage, benutze wie du sehen kannst IOTools. Kann ich das irgendwie umgehen, ist blöd immer die zip Datei zu benutzen. Kann man das auch so irgendwie schreiben, also statt

```
String dbm_user = IOTools.readString("DB-Username:");
String password = IOTools.readString("DB-Password:");
String database_server = IOTools.readString("DB-Server:");
String database_name = IOTools.readString("DB-Name:");
```

und 

```
boolean question=IOTools.readBoolean("Soll in der DB nur die typical Felder gefüllt werden? (true OR false):");
int numbercustomer=IOTools.readInteger("Anzahl der Firmen die in der DB angelegt werden sollen:");
int numberaddress=IOTools.readInteger("Anzahl der Adressen die in jede Firma angelegt werden sollen:");
int numbercontactp=IOTools.readInteger("Anzahl der Kontaktpersonen die in jeder Adresse angelegt werden sollen:");
int numbercontactn=IOTools.readInteger("Anzahl der Kontaktnummern die in jeder Kontaktperson angelegt werden sollen:");
int numberactivity=IOTools.readInteger("Anzahl der Aktivitäten die angelegt werden sollen:");
int numbertroubleticket=IOTools.readInteger("Anzahl der Problemfälle die angelegt werden sollen:");
```

das selbe ohne IOTools?

Danke.


----------



## abollm (12. Jan 2005)

Zu deinem ersten Problem


			
				Louis2 hat gesagt.:
			
		

> [..]
> kommt die Meldung, dass man die Datei nicht findet, obwohl sie existiert und im selben Verzeichnis wie die Java Datei ist. Kann man im TRY Code irgendwie genau angeben wo er die Datei suchen muss?



Natürlich kannst du vor dem Dateinamen den genauen Pfad, in dem sich die Datei befindet, angeben, also z.B.:

```
try
{
   Runtime.getRuntime().exec("cmd /c start c:\javatest\Test.bat");
}
catch (Exception e)
{
   System.err.println("Unbehandelter Ausnahmefehler: " + e.getMessage());
}
```

Außerdem kannst du in der Batch-Datei selbst auch vor dem Namen der SQL-Datei den kompletten Pfad eingeben.

Der Grund für das auf deinem Rechner aufgetretene Verhalten liegt darin, dass sich der Kommandozeileninterpreter standardmäßig in einem anderen Verzeichnis nach dem Aufruf befindet als dein Java-Arbeitsverzeichnis.

Zu deinem zweiten Problem:

Ich habe mir für derartige einfache Eingaben eine eigene Klasse geschrieben (EasyIn.java), deren Methoden ich einfach aufrufe. Ich weiß ehrlich gesagt nicht, was genau nun dein Problem ist. Denn ob du eine Klassenmethode aufrufst, die in einer Jar- oder Zip-Datei ist, oder eine eigene Klassenmethode, das kann es wohl nicht sein.

Meinst du, ob man die entsprechenden Eingabe-Aufrufe sozusagen mit Java-Bordmitteln ermöglichen kann?


----------



## Louis2 (12. Jan 2005)

Wenn ich 

```
try 
{ 
	Runtime.getRuntime().exec("cmd /c start C:\Dokumente und Einstellungen\Lempert\Desktop\UserAccessRights4.bat"); 
} 
catch (Exception e) 
{ 
	System.err.println("Unbehandelter Ausnahmefehler: " + e.getMessage()); 
}
```

erscheint die Fehlermeldung:

```
examples/Project/MassData.java [47:1] illegal escape character
Runtime.getRuntime().exec("cmd /c start C:\Dokumente und Einstellungen\Lempert\Desktop\UserAccessRights4.bat");
```

Pfeil zeigt auf D, L und D. Why?


Wegen IOTools. Es wäre ja viel praktischer wenn ich alles von der Oberfläche eingeben kann ohne eine Zip. Datei zu benutzen. 
Ich stellt mir das so vor, dass ich in einer .txt(?) Datei nur z.B

```
customernumber=2
addressnumber=3
```

habe. Das heißt mein Java Code sollte erstmal die Datei aufrufen und dann nach dem Stichwort "customernumber" suchen und den Wert der in der .txt Datei dahintersteht übernehmen.
Verstehst du was ich meine? Einfach eine separate Datei die ich editieren kann und Java muss auf sie zugreifen und holt dich von dort die Informationen... geht das überhaupt?

Gruß


----------



## abollm (12. Jan 2005)

[Edit]Zu deinem ersten Problem versuche einmal folgenden Code auszuführen:


```
try
{
   Runtime.getRuntime().exec("cmd /c start C:\\Dokumente und Einstellungen\\Lempert\\Desktop\\UserAccessRights4.bat");
}
catch (Exception e)
{
   System.err.println("Unbehandelter Ausnahmefehler: " + e.getMessage());
}
```

Sorry, das war mein Fehler oben, da ich vergessen hatte, dass man den Backslash doppelt eingeben muss.

Zum zweiten Problem melde ich mich später noch einmal, da ich jetzt gerade nicht so viel Zeit habe.


----------



## Louis2 (12. Jan 2005)

Oki der meckert nicht mehr, thx.


----------



## abollm (13. Jan 2005)

Zu deinem zweiten Problem:



> Wegen IOTools. Es wäre ja viel praktischer wenn ich alles von der Oberfläche eingeben kann ohne eine Zip. Datei zu benutzen.
> Ich stellt mir das so vor, dass ich in einer .txt(?) Datei nur z.B
> 
> 
> ...



Das könnte man so machen, also z.B. 

1. Daten einlesen


```
...
		// Reader erzeugen, öffnet gleichzeitig Datei
		try {
			in = new BufferedReader(new InputStreamReader(new FileInputStream(
					"daten.dat")));
		} catch (FileNotFoundException e) {
			System.out
					.println("Die Datei daten.dat konnte nicht gefunden und zum Lesen geoeffnet werden.");
			System.exit(1);
		}
...
```

2. Daten zeilenweise einlesen und einzelne Werte ausgeben/zuweisen (Hinweis: Hier wird angenommen, dass wie oben in deinem Beispiel der Wert vom Bezeichner jeweils durch ein Gleichheitszeichen getrennt ist. Der Dateiname lautet "daten.dat")

```
...
		// ZEILENWEISE einlesen, konvertieren und zuweisen
		try {
			eingabezeile = in.readLine();
			int i = 0;
			while (eingabezeile != null) {
				eingabezeile = in.readLine();
				if (eingabezeile != null) {
					int feldNummer = 0;
					String[] bezeichnerTokens = new String[MAX];
					String[] wertTokens = new String[MAX];

					String rest = eingabezeile.toString();
					int idx;

					while (feldNummer < kursTokens.length -1
							&& (idx = rest.indexOf('=')) >= 0) {
						bezeichnerTokens[feldNummer++] = rest.substring(0, idx);
						wertTokens[feldNummer] = rest.substring(idx+1);
						rest = rest.substring(idx + 1);
					}
					System.out.println("Zeileninhalt      : " + eingabezeile);
					System.out.println("   Bezeichner: " + bezeichnerTokens [0]);
					System.out.println("      Wert     : " + wertTokens[1]);
                                  // hier fehlen noch Anweisungen für die Zuweisungen
                                  // ...

				}

			}
		} catch (IOException e) {
		   System.out.println("Fehler beim Lesen oder Schreiben.");
		}
...
```

Mit einer derartigen Lösung hast du sicherlich Eingabearbeit gespart.


----------



## Louis2 (13. Jan 2005)

@abollm: Danke für die Arbeit. ! Ich probiers mal.

Habe mir aber gestern noch Gedanken gemacht, wie ich es anders machen kann ohne IOTools. Bin auf die Idee gekommen, dass ich ein Applet machen könnte un dort dann die Werte eingeben lasse und dann per Listener sie übernehmen.
Hab mich auch damit etwas befasst, Applet ist soweit fertig (also Textfields usw...) jetzt kommt der schwierig Teil mit dem Listener.

Mein Applet-Code:

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

public class MassData_GraficGUI extends Applet 
{    
    private Label dbm_userq, passwordq, database_serverq, database_nameq, question, numbercustomerq, numberaddressq, numbercontactpq, numbercontactnq, numberactivityq, numbertroubleticketq;  
    private Button b1;  
    private TextField dbm_user, password, database_server, database_name, numbercustomer, numberaddress, numbercontactp, numbercontactn, numberactivity, numbertroubleticket;
    private CheckboxGroup cbg1;   
    private Checkbox typ, max;  
    private Abhoerer abh; 
        
    public void init()
    {
    	setLayout(null);
    	
    	dbm_userq = new Label("DB-Username:");
    	dbm_userq.setBounds(20, 40, 100, 20); 
    	add(dbm_userq);
    	dbm_user = new TextField();
    	dbm_user.setBounds(125, 40, 100, 25);
    	add(dbm_user);
        
        passwordq = new Label("DB-Password:");
    	passwordq.setBounds(20, 70, 100, 20); 
    	add(passwordq);
    	password = new TextField();
    	password.setBounds(125, 70, 100, 25);
    	add(password);
        
        database_serverq = new Label("DB-Server:");
    	database_serverq.setBounds(20, 100, 100, 20); 
    	add(database_serverq);
    	database_server = new TextField();
    	database_server.setBounds(125, 100, 100, 25);
    	add(database_server);
        
        database_nameq = new Label("DB-Name:");
    	database_nameq.setBounds(20, 130, 100, 20); 
    	add(database_nameq);
    	database_name = new TextField();
    	database_name.setBounds(125, 130, 100, 25);
    	add(database_name);
    
        question = new Label("Welche Felder sollen in der DB gefüllt werden:");
    	question.setBounds(20, 190, 275, 20); 
    	add(question);
        cbg1 = new CheckboxGroup();   
    	typ = new Checkbox("Typische Felder", cbg1, false);    
    	max = new Checkbox("Max. Felder", cbg1, false);   
       	typ.setBounds(300, 180, 125, 20);
    	add(typ); 
    	max.setBounds(300, 200, 125, 20);
    	add(max); 
    	    	
    	numbercustomerq = new Label("Anzahl der Firmen die in der DB angelegt werden sollen:");
    	numbercustomerq.setBounds(20, 260, 450, 20); 
    	add(numbercustomerq);
    	numbercustomer = new TextField();
    	numbercustomer.setBounds(475, 260, 75, 25);
    	add(numbercustomer);
        
        numberaddressq = new Label("Anzahl der Adressen die in jede Firma angelegt werden sollen:");
    	numberaddressq.setBounds(20, 290, 450, 20); 
    	add(numberaddressq);
    	numberaddress = new TextField();
    	numberaddress.setBounds(475, 290, 75, 25);
    	add(numberaddress);
        
        numbercontactpq = new Label("Anzahl der Kontaktpersonen die in jeder Adresse angelegt werden sollen:");
    	numbercontactpq.setBounds(20, 320, 450, 20); 
    	add(numbercontactpq);
    	numbercontactp = new TextField();
    	numbercontactp.setBounds(475, 320, 75, 25);
    	add(numbercontactp);
        
        numbercontactnq = new Label("Anzahl der Kontaktnummern die in jeder Kontaktperson angelegt werden sollen:");
    	numbercontactnq.setBounds(20, 350, 450, 20); 
    	add(numbercontactnq);
    	numbercontactn = new TextField();
    	numbercontactn.setBounds(475, 350, 75, 25);
    	add(numbercontactn);
        
        numberactivityq = new Label("Anzahl der Aktivitäten die angelegt werden sollen:");
    	numberactivityq.setBounds(20, 380, 450, 20); 
    	add(numberactivityq);
    	numberactivity = new TextField();
    	numberactivity.setBounds(475, 380, 75, 25);
    	add(numberactivity);
        
        numbertroubleticketq = new Label("Anzahl der Problemfälle die angelegt werden sollen:");
    	numbertroubleticketq.setBounds(20, 410, 450, 20); 
    	add(numbertroubleticketq);
    	numbertroubleticket = new TextField();
    	numbertroubleticket.setBounds(475, 410, 75, 25);
    	add(numbertroubleticket);
    	
        abh = new Abhoerer();
    	b1 = new Button("Connect/Job");   
    	b1.setBounds(20, 470, 100, 25);
 	b1.addActionListener(abh);  
  	add(b1); 
	}
	
 	class Abhoerer implements ActionListener
 	{
            public void actionPerformed(ActionEvent e) 
            {  
                
            }  
        }
}
```

Nun möchte ich, dass der folgende Ablauf gemacht wird:

```
public class MassData 
{
    public static void main(String[] args) 
    throws ClassNotFoundException, SQLException
    {
        String dbm_user = IOTools.readString("DB-Username:");
        String password = IOTools.readString("DB-Password:");
        String database_server = IOTools.readString("DB-Server:");
        String database_name = IOTools.readString("DB-Name:");
        
        try 
         { 
            Class.forName("oracle.jdbc.driver.OracleDriver"); 
            String url = "jdbc:oracle:thin:@"+database_server+":1521:"+database_name; 
            Connection connection = DriverManager.getConnection(url, dbm_user, password); 
            
                boolean question=IOTools.readBoolean("Soll in der DB nur die typical Felder gefüllt werden? (true OR false):");
                int numbercustomer=IOTools.readInteger("Anzahl der Firmen die in der DB angelegt werden sollen:");
                int numberaddress=IOTools.readInteger("Anzahl der Adressen die in jede Firma angelegt werden sollen:");
                int numbercontactp=IOTools.readInteger("Anzahl der Kontaktpersonen die in jeder Adresse angelegt werden sollen:");
                int numbercontactn=IOTools.readInteger("Anzahl der Kontaktnummern die in jeder Kontaktperson angelegt werden sollen:");
                int numberactivity=IOTools.readInteger("Anzahl der Aktivitäten die angelegt werden sollen:");
                int numbertroubleticket=IOTools.readInteger("Anzahl der Problemfälle die angelegt werden sollen:");
        
                int customerno=1002;
                int customerid=1002;
                int addressid=1002;
                int addressno=1002;
                int contactpid=1002;
                int contactnid=1002;
                int activityid=0;
                int troubleticketid=0;
                String resultcompany=new String();
                String resultaddress=new String();
                String resultcontactp=new String();
                String resultcontactn=new String();
                String resultactivity=new String();
                String resulttroubleticket=new String();
                
                if (question==true)
                {
                    for (int i=1; i<=numbercustomer; i++)
                    {
                        Statement company = connection.createStatement(); 
                        //resultcompany = "INSERT into customer (customerno,customerid,mandator,companyname,shorttext,customerclass) values (" + (customerno++) + "," + (customerid++) + ",'DEMO'" + ",'Testcustomer','Testcustomer','K')"; 
                        resultcompany = "INSERT into customer (customerno,customerid,mandator,companyname,shorttext,customerclass) values (3000,3000,'DEMO','Testcustomer','Testcustomer','K')"; 
                        company.executeUpdate(resultcompany); 
                        connection.commit(); 
                        
                        /*try 
                        { 
                            Runtime.getRuntime().exec("cmd /c start D:\\NetBeans3.6\\Project\\UserAccessRights4.bat"); 
                        } 
                        catch (Exception e) 
                        { 
                            System.err.println("Unbehandelter Ausnahmefehler: " + e.getMessage()); 
                        }*/
                        
                        for (i=1; i<=numberaddress; i++)
                        {
                            Statement address= connection.createStatement();
                            //resultaddress = "INSERT into address (addressno,addressid,customerid,name1,street,streetnumber,zip,city,countrycode,region,pobox,zip_pobox,addresstype,language) values (" + (addressno++) + "," + (addressid++) + "," + (customerid) + ",'Testaddress','Teststreet',23,76131,'Testcity','D','BW',1973,66801,1,'de')";
                            resultaddress = "INSERT into address (addressno,addressid,customerid,name1,street,streetnumber,zip,city,countrycode,addresstype) values (3000,3000,3000,'Testaddress','Teststreet',23,76131,'Testcity','D',1)";
                            address.executeUpdate(resultaddress); 
                            connection.commit();                           
            
                            for (i=1; i<=numbercontactp; i++)
                            {
                                Statement contactp= connection.createStatement();
                                //resultcontactp = "INSERT into contactperson (contactpersonid,addressid,greetingcode,firstname,lastname,language) values (" + (contactpid++) + "," + (addressid) + ",'MR','Testman','Testman','de')";
                                resultcontactp = "INSERT into contactperson (contactpersonid,addressid,greetingcode,firstname,lastname) values (3000,3000,'MR','Testman','Testman')";
                                contactp.executeUpdate(resultcontactp); 
                                connection.commit(); 
                                
                                for (i=1; i<=numbercontactn; i++)
                                {
                                    Statement contactn= connection.createStatement();
                                    //resultcontactn = "INSERT into contactnumber (contactnumberid,contactpersonid,addressid,contactnumbertype,contactnumber) values (" + (contactnid++) + "," + (contactpid) + "," + (addressid) + ",1,001122334455)";
                                    resultcontactn = "INSERT into contactnumber (contactnumberid,contactpersonid,addressid,contactnumbertype,contactnumber) values (11000,3000,3000,1,2222)";
                                    contactn.executeUpdate(resultcontactn); 
                                    connection.commit(); 
                                    
                                    contactn.close();
                                }
                                
                                contactp.close();
                           }
                        address.close();
                        }
                    company.close();
                    }
		    
		    for (int i=1; i<=numberactivity; i++)
                    {
                        Statement activity= connection.createStatement();
                        //resultactivity = "INSERT into activity (activityid,customerid,contactpersonid,subject,state,activitytype,activitypriority,emotion) values (" + (activityid) + "," + (customerid) + "," + (contactpid) + ",'Testactivity','NB','ANG',1,'High')";
                        resultactivity = "INSERT into activity (activityid,customerid,contactpersonid,subject,state,activitytype,activitypriority) values (20000,3000,3000,'Testactivity','NB','ANG',1)";
                        activity.executeUpdate(resultactivity); 
                        connection.commit(); 
            
                        activity.close();
                    }
                                            
                    for (int i=1; i<=numbertroubleticket; i++)
                    {
                        Statement troubleticket= connection.createStatement();
                        //resulttroubleticket = "INSERT into troubleticket (troubleticketid,customerid,description,troubleticketstate) values (" + (troubleticketid) + "," + (customerid) + ",'TestSupportCall','AUFG')";
                        resulttroubleticket = "INSERT into troubleticket (troubleticketid,customerid,description,troubleticketstate) values (11000,3000,'TestSupportCall','AUFG')";
                        troubleticket.executeUpdate(resulttroubleticket); 
                        connection.commit(); 
                                                    
                        troubleticket.close();
                    }
                } 
	 } 
         catch(ClassNotFoundException e) 
         { 
            System.out.println("Treiber nicht gefunden."); 
            e.printStackTrace(); 
         } 
         catch(SQLException e) 
         { 
            System.out.println(e.toString()); 
         } 
         catch(Exception e) 
         { 
            e.printStackTrace(); 
         } 
   }    
}
```


Hab mir schon paar Gedanken gemacht, z.B im ActionListener sowas wie

```
String a = String.valueOf(dbm_user.getText()).StringValue();
String b = String.valueOf(password.getText()).StringValue();
String c = String.valueOf(database_server.getText()).StringValue();
String d = String.valueOf(database_name.getText()).StringValue();
Integer e = Integer.valueOf(numbercustomer.getText()).IntegerValue();
Integer f = Integer.valueOf(numberaddress.getText()).IntegerValue();
Integer g = Integer.valueOf(numbercontactp.getText()).IntegerValue();
Integer h = Integer.valueOf(numbercontactn.getText()).IntegerValue();
Integer i = Integer.valueOf(numberactivity.getText()).IntegerValue();
Integer j = Integer.valueOf(numbertroubleticket.getText()).IntegerValue();
		
if (event.getSource() == typ)
//for Schleife+Anpassungen??
else
...
```

Nun weiss ich nicht wie man das richtig macht, ich meine wie kriege ich die Zahl von Numbercustomer ich meine for-Schleife rein und solche Sachen! ;-)

Werde nochmal paar Dinge ausprobieren, vielleicht komme ich selber drauf, denke es aber nicht.

Gruß


----------



## abollm (13. Jan 2005)

Nur so auf dei Schnelle folgender Hinweis:

Ich habe vor einiger Zeit einmal ein kleines Applet mit DB-Zugriff geschrieben (auch Oracle-DB). U.a. mit Login-Maske und Debugging-Trace-Funktionalität. Was mich insbesondere an DB-Applets stört ist die Tatsache, dass sie recht, ich sage einmal, "empfindlich" gegenüber bestimmten Randbedingungen sind, sodass ich immer wieder Situationen erzeugt habe, dass das Applet nicht fehlerfrei den Login-Vorgang oder die SELECT-Abfragen durchgeführt hat.
Vielleicht fehlt mir da aber auch nur die Erfahrung.

Deshalb wäre es einmal interessant zu erfahren, ob dein Ansatz unter verschiedenen Randbedingungen problemlos funktioniert.


----------



## Louis2 (13. Jan 2005)

Was verstehst du unter "Randbedingungen"? Bedingungen ausserhalb des Java-Programms?
Oder Bedingungen im Java-Code wie bei mir "wenn Typical Felder dann mach das und sonst mach dies"?

Ob das fehlerfrei funktioniert kann ich natürlich nur wissen wenn mein Prog auch funktioniert.

Mir fehtl aber bei Listener und Methoden auch etwas die Erfahrung, die Idee hab ich wie ich es umsetze ich eine andere Sache ;-)


----------



## Louis2 (13. Jan 2005)

Hab mal probiert was gescheites zu machen, wie sieht denn mein Code bzw. die ActionListener aus, gut, nicht gut?

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

public class MassData_GraficGUI extends Applet 
{    
    private Label dbm_userq, passwordq, database_serverq, database_nameq, question, numbercustomerq, numberaddressq, numbercontactpq, numbercontactnq, numberactivityq, numbertroubleticketq;  
    private Button b1;  
    private TextField dbm_user, password, database_server, database_name, numbercustomer, numberaddress, numbercontactp, numbercontactn, numberactivity, numbertroubleticket;
    private CheckboxGroup cbg1;   
    private Checkbox typ, max;  
    private Abhoerer abh; 
         
    public void init()
    {
    	setLayout(null);
    	
    	dbm_userq = new Label("DB-Username:");
    	dbm_userq.setBounds(20, 40, 100, 20); 
    	add(dbm_userq);
    	dbm_user = new TextField();
    	dbm_user.setBounds(125, 40, 100, 25);
    	add(dbm_user);
        
        passwordq = new Label("DB-Password:");
    	passwordq.setBounds(20, 70, 100, 20); 
    	add(passwordq);
    	password = new TextField();
    	password.setBounds(125, 70, 100, 25);
    	add(password);
        
        database_serverq = new Label("DB-Server:");
    	database_serverq.setBounds(20, 100, 100, 20); 
    	add(database_serverq);
    	database_server = new TextField();
    	database_server.setBounds(125, 100, 100, 25);
    	add(database_server);
        
        database_nameq = new Label("DB-Name:");
    	database_nameq.setBounds(20, 130, 100, 20); 
    	add(database_nameq);
    	database_name = new TextField();
    	database_name.setBounds(125, 130, 100, 25);
    	add(database_name);
    
        question = new Label("Welche Felder sollen in der DB gefüllt werden:");
    	question.setBounds(20, 190, 275, 20); 
    	add(question);
        cbg1 = new CheckboxGroup();   
    	typ = new Checkbox("Typische Felder", cbg1, false);    
    	max = new Checkbox("Max. Felder", cbg1, false);   
       	typ.setBounds(300, 180, 125, 20);
    	add(typ); 
    	max.setBounds(300, 200, 125, 20);
    	add(max); 
    	    	
    	numbercustomerq = new Label("Anzahl der Firmen die in der DB angelegt werden sollen:");
    	numbercustomerq.setBounds(20, 260, 450, 20); 
    	add(numbercustomerq);
    	numbercustomer = new TextField();
    	numbercustomer.setBounds(475, 260, 75, 25);
    	add(numbercustomer);
        
        numberaddressq = new Label("Anzahl der Adressen die in jede Firma angelegt werden sollen:");
    	numberaddressq.setBounds(20, 290, 450, 20); 
    	add(numberaddressq);
    	numberaddress = new TextField();
    	numberaddress.setBounds(475, 290, 75, 25);
    	add(numberaddress);
        
        numbercontactpq = new Label("Anzahl der Kontaktpersonen die in jeder Adresse angelegt werden sollen:");
    	numbercontactpq.setBounds(20, 320, 450, 20); 
    	add(numbercontactpq);
    	numbercontactp = new TextField();
    	numbercontactp.setBounds(475, 320, 75, 25);
    	add(numbercontactp);
        
        numbercontactnq = new Label("Anzahl der Kontaktnummern die in jeder Kontaktperson angelegt werden sollen:");
    	numbercontactnq.setBounds(20, 350, 450, 20); 
    	add(numbercontactnq);
    	numbercontactn = new TextField();
    	numbercontactn.setBounds(475, 350, 75, 25);
    	add(numbercontactn);
        
        numberactivityq = new Label("Anzahl der Aktivitäten die angelegt werden sollen:");
    	numberactivityq.setBounds(20, 380, 450, 20); 
    	add(numberactivityq);
    	numberactivity = new TextField();
    	numberactivity.setBounds(475, 380, 75, 25);
    	add(numberactivity);
        
        numbertroubleticketq = new Label("Anzahl der Problemfälle die angelegt werden sollen:");
    	numbertroubleticketq.setBounds(20, 410, 450, 20); 
    	add(numbertroubleticketq);
    	numbertroubleticket = new TextField();
    	numbertroubleticket.setBounds(475, 410, 75, 25);
    	add(numbertroubleticket);
    	
        abh = new Abhoerer();
    	b1 = new Button("Connect/Job");  
        b1.setBounds(20, 470, 100, 25);
        add(b1);
 	b1.addActionListener(abh);  
        }
	
 	class Abhoerer implements ActionListener
 	{
            public void actionPerformed(ActionEvent e) 
            {  
		if (e.getSource() == b1)
                {
                String resultcompany=new String();
                String resultaddress=new String();
                String resultcontactp=new String();
                String resultcontactn=new String();
                String resultactivity=new String();
                String resulttroubleticket=new String();
                    
                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()); 
                int nc = Integer.valueOf(numbercustomer.getText()).intValue(); 
                int na = Integer.valueOf(numberaddress.getText()).intValue(); 
                int ncp = Integer.valueOf(numbercontactp.getText()).intValue(); 
                int ncn = Integer.valueOf(numbercontactn.getText()).intValue(); 
                int nac = Integer.valueOf(numberactivity.getText()).intValue(); 
                int nt = Integer.valueOf(numbertroubleticket.getText()).intValue(); 
                 
                try 
                { 
                    Class.forName("oracle.jdbc.driver.OracleDriver"); 
                    String url = "jdbc:oracle:thin:@"+ds+":1521:"+dn; 
                    Connection connection = DriverManager.getConnection(url, du, p);
                    
                        for (int i=1; i<=nc; i++)
                        {
                            Statement company = connection.createStatement(); 
                            //resultcompany = "INSERT into customer (customerno,customerid,mandator,companyname,shorttext,customerclass) values (" + (customerno++) + "," + (customerid++) + ",'DEMO'" + ",'Testcustomer','Testcustomer','K')"; 
                            resultcompany = "INSERT into customer (customerno,customerid,mandator,companyname,shorttext,customerclass) values (3000,3000,'DEMO','Testcustomer','Testcustomer','K')"; 
                            company.executeUpdate(resultcompany); 
                            connection.commit(); 
                        }
                    
                }
                catch(ClassNotFoundException e1) 
                { 
                    System.out.println("Treiber nicht gefunden."); 
                    e1.printStackTrace(); 
                } 
                catch(SQLException e2) 
                { 
                    System.out.println(e.toString()); 
                } 
                catch(Exception e3) 
                {    
                    e3.printStackTrace(); 
                } 
                }
            }
        }
}
```

Mir fehlt halt noch:
1. die if Anweisung also "if=Checkbox Typical Felder" dann for-Schleife
2. Hatte gedacht, dass ich mit "if (e.getSource() == b1)" eine Anweisung gebe, dass wenn der Button gedrückt wird er was folgt ausführen soll, aber bei mir passiert nix :-(


----------



## abollm (13. Jan 2005)

Nur vorab als Information und Frage:

Warum nimmst du nicht Swing, statt AWT?
Man kann zwar ein Login in das Haupt-Frame einbauen, aber ich persönlich finde ein eigenes Login-Fenster günstiger und besser.

Ich schaue mir deine Fragen morgen einmal näher an, heute habe ich leider keine Zeit dafür.


----------



## Louis2 (13. Jan 2005)

Ein eigenes Login-Fenster? Hört sich gut an, und wie macht man sowas?
Tja die Antwort auf deine Frage ist ganz einfach: weil ich bisher fast nichts mit Swing gemacht habe. Wie sind die Unterschiede, was kann man besser machen wie geht es...

Ja, man kann nicht immer Zeit haben. Schau dir dann mein Code an, ob die Fehler auffallen und die Fragen natürlich. Kannst natürlich auch ein Login-Fenster prog. und mir erklären ;-)


----------



## Louis2 (14. Jan 2005)

Folgende Probleme habe ich immer noch:
1. if-Anweisung&else-Anweisung also "if=Checkbox Typical Felder" dann for-Schleife else...
2. Hatte gedacht, dass ich mit "if (e.getSource() == b1)" eine Anweisung gebe, dass wenn der Button gedrückt wird er was folgt ausführen soll, aber bei mir passiert nix 
3. Möchte, dass die Exceptions usw... (also statt s.o.pln) in einem Textfield angezeigt werden. Soweit kein Problem mit der herstellen des Textfields, aber wie kann ich jetzt zuordnen, dass folgende Exceptions dort erscheinen? 
Funktioniert es mit dem Listener? Hatte verstanden, dass der nur auf "Knöpfe" reagiert?
4. Ich habe mal mein Java Code losgelassen, aber wenn ich 10 Firmen 3 Adressen...2 Kontaktnummern pro Kontakperson usw...anlegen möchte, dann legt er nur 1 Firma, 1 Adresse an aber 2 Kontaktnummern bei der Kontaktperson. Ist da ein Fehler im Quellcode?

Java-Quellcode:

```
import Prog1Tools.IOTools;
import java.sql.*;

public class MassData 
{
    public static void main(String[] args) 
    throws ClassNotFoundException, SQLException
    {
        String dbm_user = IOTools.readString("DB-Username:");
        String password = IOTools.readString("DB-Password:");
        String database_server = IOTools.readString("DB-Server:");
        String database_name = IOTools.readString("DB-Name:");
        
        try 
         { 
            Class.forName("oracle.jdbc.driver.OracleDriver"); 
            String url = "jdbc:oracle:thin:@"+database_server+":1521:"+database_name; 
            Connection connection = DriverManager.getConnection(url, dbm_user, password); 
            
                boolean question=IOTools.readBoolean("Soll in der DB nur die typical Felder gefüllt werden? (true OR false):");
                int numbercustomer=IOTools.readInteger("Anzahl der Firmen die in der DB angelegt werden sollen:");
                int numberaddress=IOTools.readInteger("Anzahl der Adressen die in jede Firma angelegt werden sollen:");
                int numbercontactp=IOTools.readInteger("Anzahl der Kontaktpersonen die in jeder Adresse angelegt werden sollen:");
                int numbercontactn=IOTools.readInteger("Anzahl der Kontaktnummern die in jeder Kontaktperson angelegt werden sollen:");
                int numberactivity=IOTools.readInteger("Anzahl der Aktivitäten die angelegt werden sollen:");
                int numbertroubleticket=IOTools.readInteger("Anzahl der Problemfälle die angelegt werden sollen:");
        
                int customerno=0;
                int customerid=0;
                int addressid=0;
                int addressno=0;
                int contactpid=0;
                int contactnid=0;
                int activityid=0;
                int troubleticketid=0;
                String resultcompany=new String();
                String resultaddress=new String();
                String resultcontactp=new String();
                String resultcontactn=new String();
                String resultactivity=new String();
                String resulttroubleticket=new String();
                
                if (question==true)
                {
                    for (int i=1; i<=numbercustomer; i++)
                    {
                        Statement company = connection.createStatement(); 
                        resultcompany = "INSERT into customer (customerno,customerid,mandator,companyname,shorttext,customerclass) values (" + (customerno=customerno+1) + "," + (customerid=customerid+1) + ",'DEMO'" + ",'Testcustomer','Testcustomer','K')"; 
                        //resultcompany = "INSERT into customer (customerno,customerid,mandator,companyname,shorttext,customerclass) values (1,1,'DEMO','Testcustomer','Testcustomer','K')"; 
                        company.executeUpdate(resultcompany); 
                        connection.commit(); 
                        
                        /*try 
                        { 
                            Runtime.getRuntime().exec("cmd /c start D:\\NetBeans3.6\\Project\\UserAccessRights4.bat"); 
                        } 
                        catch (Exception e) 
                        { 
                            System.err.println("Unbehandelter Ausnahmefehler: " + e.getMessage()); 
                        }*/
                        
                        for (i=1; i<=numberaddress; i++)
                        {
                            Statement address= connection.createStatement();
                            resultaddress = "INSERT into address (addressno,addressid,customerid,name1,street,streetnumber,zip,city,countrycode,addresstype) values (" + (addressno=addressno+1) + "," + (addressid=addressid+1) + "," + (customerid) + ",'Testaddress','Teststreet',23,76131,'Testcity','D',1)";
                            //resultaddress = "INSERT into address (addressno,addressid,customerid,name1,street,streetnumber,zip,city,countrycode,addresstype) values (1,1,1,'Testaddress','Teststreet',23,76131,'Testcity','D',1)";
                            address.executeUpdate(resultaddress); 
                            connection.commit();                           
            
                            for (i=1; i<=numbercontactp; i++)
                            {
                                Statement contactp= connection.createStatement();
                                resultcontactp = "INSERT into contactperson (contactpersonid,addressid,greetingcode,firstname,lastname) values (" + (contactpid=contactpid+1) + "," + (addressid) + ",'MR','Testman','Testman')";
                                //resultcontactp = "INSERT into contactperson (contactpersonid,addressid,greetingcode,firstname,lastname) values (1,1,'MR','Testman','Testman')";
                                contactp.executeUpdate(resultcontactp); 
                                connection.commit(); 
                                
                                for (i=1; i<=numbercontactn; i++)
                                {
                                    Statement contactn= connection.createStatement();
                                    resultcontactn = "INSERT into contactnumber (contactnumberid,contactpersonid,addressid,mandator,contactnumbertype,contactnumber) values (" + (contactnid=contactnid+1) + "," + (contactpid) + "," + (addressid) + ",'DEMO',1,2222)";
                                    //resultcontactn = "INSERT into contactnumber (contactnumberid,contactpersonid,addressid,mandator,contactnumbertype,contactnumber) values (1,1,1,'DEMO',1,2222)";
                                    contactn.executeUpdate(resultcontactn); 
                                    connection.commit(); 
                                    
                                    for (i=1; i<=numberactivity; i++)
                                    {
                                        Statement activity= connection.createStatement();
                                        resultactivity = "INSERT into activity (activityid,customerid,addressid,employeeid,mandator,contactpersonid,subject,state,activitytype,activitypriority,term,deadline) values (" + (activityid=activityid+1) + "," + (customerid) + "," + (addressid) + ",1,'DEMO'," + (contactpid) + ",'Testactivity','NB','ANG',1,'31.12.2004','31.12.2005')";
                                        //resultactivity = "INSERT into activity (activityid,customerid,addressid,employeeid,mandator,contactpersonid,subject,state,activitytype,activitypriority,term,deadline) values (1,1,1,1,'DEMO',1,'Testactivity','NB','ANG',1,'31.12.2004','31.12.2005')";
                                        activity.executeUpdate(resultactivity); 
                                        connection.commit();
                                        
                                        for (i=1; i<=numbertroubleticket; i++)
                                        {
                                            Statement troubleticket= connection.createStatement();
                                            resulttroubleticket = "INSERT into troubleticket (troubleticketid,customerid,addressid,employeeid,mandator,description,troubleticketstate) values (" + (troubleticketid=troubleticketid+1) + "," + (customerid) + "," + (addressid) + "1,'DEMO','TestSupportCall','AUFG','31.12.2004','31.12.2005')";
                                            //resulttroubleticket = "INSERT into troubleticket (troubleticketid,customerid,addressid,employeeid,mandator,description,troubleticketstate,term1,term2) values (1,1,1,1,'DEMO','TestSupportCall','AUFG','31.12.2004','31.12.2005')";
                                            troubleticket.executeUpdate(resulttroubleticket); 
                                            connection.commit(); 
                                                    
                                            troubleticket.close();
                                        }
                                        activity.close();
                                    }
                                    contactn.close();
                                }
                                contactp.close();
                           }
                        address.close();
                        }
                    company.close();
                    }
                }
                    
                else
                for (int i=1; i<=numbercustomer; i++)
                {
                    Statement company = connection.createStatement(); 
                    resultcompany = "INSERT into customer (customerno,customerid,mandator,companyname,shorttext,customerclass) values (" + (customerno=customerno+1) + "," + (customerid=customerid+1) + ",'DEMO'" + ",'Testcustomer','Testcustomer','K')";  
                    //resultcompany = "INSERT into customer (customerno,customerid,mandator,companyname,shorttext,customerclass) values (1,1,'DEMO','Testcustomer','Testcustomer','K')";  
                    company.executeUpdate(resultcompany); 
                    connection.commit(); 
            
                    for (i=1; i<=numberaddress; i++)
                    {
                        Statement address= connection.createStatement();
                        resultaddress = "INSERT into address (addressno,addressid,customerid,name1,name2,name3,street,streetnumber,zip,city,countrycode,region,pobox,zip_pobox,addresstype,language) values (" + (addressno=addressno+1) + "," + (addressid=addressid+1) + "," + (customerid) + ",'Testaddress','Testaddress','Testaddress','Teststreet',23,76131,'Testcity','D','BW',1973,66801,1,'de')";
                        //resultaddress = "INSERT into address (addressno,addressid,customerid,name1,name2,name3,street,streetnumber,zip,city,countrycode,region,pobox,zip_pobox,addresstype,language) values (1,1,1,'Testaddress','Testaddress','Testaddress','Teststreet',23,76131,'Testcity','D','BW',1973,66801,1,'de')";
                        address.executeUpdate(resultaddress); 
                        connection.commit(); 
            
                        for (i=1; i<=numbercontactp; i++)
                        {
                            Statement contactp= connection.createStatement();
                            resultcontactp = "INSERT into contactperson (contactpersonid,addressid,greetingcode,firstname,lastname,language,title) values (" + (contactpid=contactpid+1) + "," + (addressid) + ",'MR','Testman','Testman','de','Dr')";
                            //resultcontactp = "INSERT into contactperson (contactpersonid,addressid,greetingcode,firstname,lastname,language,title) values (1,1,'MR','Testman','Testman','de','Dr')";
                            contactp.executeUpdate(resultcontactp); 
                            connection.commit(); 
                
                            for (i=1; i<=numbercontactn; i++)
                            {
                                Statement contactn= connection.createStatement();
                                resultcontactn = "INSERT into contactnumber (contactnumberid,contactpersonid,addressid,mandator,contactnumbertype,contactnumber) values (" + (contactnid=contactnid+1) + "," + (contactpid) + "," + (addressid) + ",'DEMO',1,2222)";
                                //resultcontactn = "INSERT into contactnumber (contactnumberid,contactpersonid,addressid,mandator,contactnumbertype,contactnumber) values (1,1,1,'DEMO',1,2222)";
                                contactn.executeUpdate(resultcontactn); 
                                connection.commit(); 
                    
                                contactn.close();
                            }
                        contactp.close();
                        }
                    address.close();
                    }
                company.close();
                }
                          
                for (int i=1; i<=numberactivity; i++)
                {
                    Statement activity= connection.createStatement();
                    resultactivity = "INSERT into activity (activityid,customerid,addressid,employeeid,mandator,contactpersonid,subject,state,activitytype,activitypriority,emotion,term,deadline) values (" + (activityid=activityid+1) + "," + (customerid) + "," + (addressid) + ",1,'DEMO'," + (contactpid) + ",'Testactivity','NB','ANG',1,'High','31.12.2004','31.12.2005')";
                    //resultactivity = "INSERT into activity (activityid,customerid,addressid,employeeid,mandator,contactpersonid,subject,state,activitytype,activitypriority,emotion,term,deadline) values (1,1,1,1,'DEMO',1,'Testactivity','NB','ANG',1,'High','31.12.2004','31.12.2005')";
                    activity.executeUpdate(resultactivity); 
                    connection.commit(); 
            
                    activity.close();
                }
                                            
                for (int i=1; i<=numbertroubleticket; i++)
                {
                    Statement troubleticket= connection.createStatement();
                    resulttroubleticket = "INSERT into troubleticket (troubleticketid,customerid,addressid,employeeid,mandator,description,troubleticketstate,term1,term2) values (" + (troubleticketid=troubleticketid+1) + "," + (customerid) + "," + (addressid) + "1,'DEMO','TestSupportCall','AUFG','31.12.2004','31.12.2005')";
                    //resulttroubleticket = "INSERT into troubleticket (troubleticketid,customerid,addressid,employeeid,mandator,description,troubleticketstate,term1,term2) values (1,1,1,1,'DEMO','TestSupportCall','AUFG','31.12.2004','31.12.2005')";
                    troubleticket.executeUpdate(resulttroubleticket); 
                    connection.commit(); 
                            
                    troubleticket.close();
                }
                System.out.println("Please execute the Userrights Batchrun");   
                connection.close();
         } 
         
         catch(ClassNotFoundException e) 
         { 
            System.out.println("Driver not found"); 
            e.printStackTrace(); 
         } 
         catch(SQLException e) 
         { 
            System.out.println(e.toString()); 
         } 
         catch(Exception e) 
         { 
            e.printStackTrace(); 
         } 
   }    
}
```

Applet-Code:

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

public class MassData_GraficGUI extends Applet 
{    
    private Label dbm_userq, passwordq, database_serverq, database_nameq, question, numbercustomerq, numberaddressq, numbercontactpq, numbercontactnq, numberactivityq, numbertroubleticketq;  
    private Button b1;  
    private TextField dbm_user, password, database_server, database_name, numbercustomer, numberaddress, numbercontactp, numbercontactn, numberactivity, numbertroubleticket;
    private CheckboxGroup cbg1;   
    private Checkbox typ, max;  
    private Abhoerer abh; 
         
    public void init()
    {
    	setLayout(null);
            	
    	dbm_userq = new Label("DB-Username:");
    	dbm_userq.setBounds(20, 40, 100, 20); 
    	add(dbm_userq);
    	dbm_user = new TextField();
    	dbm_user.setBounds(125, 40, 100, 25);
        add(dbm_user);
        
        passwordq = new Label("DB-Password:");
    	passwordq.setBounds(20, 70, 100, 20); 
    	add(passwordq);
    	password = new TextField();
    	password.setBounds(125, 70, 100, 25);
    	add(password);
        
        database_serverq = new Label("DB-Server:");
    	database_serverq.setBounds(20, 100, 100, 20); 
    	add(database_serverq);
    	database_server = new TextField();
    	database_server.setBounds(125, 100, 100, 25);
    	add(database_server);
        
        database_nameq = new Label("DB-Name:");
    	database_nameq.setBounds(20, 130, 100, 20); 
    	add(database_nameq);
    	database_name = new TextField();
    	database_name.setBounds(125, 130, 100, 25);
    	add(database_name);
    
        question = new Label("Welche Felder sollen in der DB gefüllt werden:");
    	question.setBounds(20, 190, 275, 20); 
    	add(question);
        cbg1 = new CheckboxGroup();   
    	typ = new Checkbox("Typische Felder", cbg1, false);    
    	max = new Checkbox("Max. Felder", cbg1, false);   
       	typ.setBounds(300, 180, 125, 20);
    	add(typ); 
    	max.setBounds(300, 200, 125, 20);
    	add(max); 
    	    	
    	numbercustomerq = new Label("Anzahl der Firmen die in der DB angelegt werden sollen:");
    	numbercustomerq.setBounds(20, 260, 450, 20); 
    	add(numbercustomerq);
    	numbercustomer = new TextField();
    	numbercustomer.setBounds(475, 260, 75, 25);
    	add(numbercustomer);
        
        numberaddressq = new Label("Anzahl der Adressen die in jede Firma angelegt werden sollen:");
    	numberaddressq.setBounds(20, 290, 450, 20); 
    	add(numberaddressq);
    	numberaddress = new TextField();
    	numberaddress.setBounds(475, 290, 75, 25);
    	add(numberaddress);
        
        numbercontactpq = new Label("Anzahl der Kontaktpersonen die in jeder Adresse angelegt werden sollen:");
    	numbercontactpq.setBounds(20, 320, 450, 20); 
    	add(numbercontactpq);
    	numbercontactp = new TextField();
    	numbercontactp.setBounds(475, 320, 75, 25);
    	add(numbercontactp);
        
        numbercontactnq = new Label("Anzahl der Kontaktnummern die in jeder Kontaktperson angelegt werden sollen:");
    	numbercontactnq.setBounds(20, 350, 450, 20); 
    	add(numbercontactnq);
    	numbercontactn = new TextField();
    	numbercontactn.setBounds(475, 350, 75, 25);
    	add(numbercontactn);
        
        numberactivityq = new Label("Anzahl der Aktivitäten die angelegt werden sollen:");
    	numberactivityq.setBounds(20, 380, 450, 20); 
    	add(numberactivityq);
    	numberactivity = new TextField();
    	numberactivity.setBounds(475, 380, 75, 25);
    	add(numberactivity);
        
        numbertroubleticketq = new Label("Anzahl der Problemfälle die angelegt werden sollen:");
    	numbertroubleticketq.setBounds(20, 410, 450, 20); 
    	add(numbertroubleticketq);
    	numbertroubleticket = new TextField();
    	numbertroubleticket.setBounds(475, 410, 75, 25);
    	add(numbertroubleticket);
    	
        abh = new Abhoerer();
    	b1 = new Button("Connect/Job");  
        b1.setBounds(20, 470, 100, 25);
        add(b1);
 	b1.addActionListener(abh);  
        }
	
 	class Abhoerer implements ActionListener
 	{
            public void actionPerformed(ActionEvent e) 
            {  
                //numbercustomer.setText(cbg1.getSelectedCheckbox().getLabel());
                if (e.getSource() == b1)
                {
                String resultcompany=new String();
                String resultaddress=new String();
                String resultcontactp=new String();
                String resultcontactn=new String();
                String resultactivity=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;
                    
                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()); 
                int nc = Integer.valueOf(numbercustomer.getText()).intValue(); 
                int na = Integer.valueOf(numberaddress.getText()).intValue(); 
                int ncp = Integer.valueOf(numbercontactp.getText()).intValue(); 
                int ncn = Integer.valueOf(numbercontactn.getText()).intValue(); 
                int nac = Integer.valueOf(numberactivity.getText()).intValue(); 
                int nt = Integer.valueOf(numbertroubleticket.getText()).intValue(); 
                 
                try 
                { 
                    Class.forName("oracle.jdbc.driver.OracleDriver"); 
                    String url = "jdbc:oracle:thin:@"+ds+":1521:"+dn; 
                    Connection connection = DriverManager.getConnection(url, du, p);
                    
                    for (int i=1; i<=nc; i++)
                    {
                        Statement company = connection.createStatement(); 
                        resultcompany = "INSERT into customer (customerno,customerid,mandator,companyname,shorttext,customerclass) values (" + (customerno=customerno+1) + "," + (customerid=customerid+1) + ",'DEMO'" + ",'Testcustomer','Testcustomer','K')"; 
                        //resultcompany = "INSERT into customer (customerno,customerid,mandator,companyname,shorttext,customerclass) values (1,1,'DEMO','Testcustomer','Testcustomer','K')"; 
                        company.executeUpdate(resultcompany); 
                        connection.commit(); 
                    }
                    
                }
                catch(ClassNotFoundException e1) 
                { 
                    System.out.println("Treiber nicht gefunden."); 
                    e1.printStackTrace(); 
                } 
                catch(SQLException e2) 
                { 
                    System.out.println(e2.toString()); 
                } 
                catch(Exception e3) 
                {    
                    e3.printStackTrace(); 
                } 
                }
            }
        }
}
```

Thx für die Hilfe. :wink:


----------



## Louis2 (19. Jan 2005)

Habe folgendes Problem: Habe ein Applet gebaut:

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

public class MassData_GraficGUI extends Applet 
{    
    private Label dbm_userq, passwordq, database_serverq, database_nameq, question, numbercustomerq, numberaddressq, numbercontactpq, numbercontactnq, numberactivityq, numbertroubleticketq, numberactivityqh, numbertroubleticketqh, ausnahment, numberlieferantq, numberinteressentq,title;  
    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; 
         
    public void init()
    {
    	setLayout(null);
            
        title = new Label("MassData Tool / Version 1.0");
    	title.setBounds(20, 10, 175, 20); 
    	add(title);
        
    	dbm_userq = new Label("DB-Username:");
    	dbm_userq.setBounds(20, 40, 100, 20); 
    	add(dbm_userq);
    	dbm_user = new TextField();
    	dbm_user.setBounds(125, 40, 100, 20);
        add(dbm_user);
        
        passwordq = new Label("DB-Password:");
    	passwordq.setBounds(20, 70, 100, 20); 
    	add(passwordq);
    	password = new TextField();
    	password.setBounds(125, 70, 100, 20);
    	add(password);
        
        database_serverq = new Label("DB-Server:");
    	database_serverq.setBounds(20, 100, 100, 20); 
    	add(database_serverq);
    	database_server = new TextField();
    	database_server.setBounds(125, 100, 100, 20);
    	add(database_server);
        
        database_nameq = new Label("DB-Name:");
    	database_nameq.setBounds(20, 130, 100, 20); 
    	add(database_nameq);
    	database_name = new TextField();
    	database_name.setBounds(125, 130, 100, 20);
    	add(database_name);
    
        question = new Label("Welche Felder sollen in der DB gefüllt werden:");
    	question.setBounds(20, 190, 275, 20); 
    	add(question);
        cbg1 = new CheckboxGroup();   
    	typ = new Checkbox("Typische Felder", cbg1, true);    
    	max = new Checkbox("Max. Felder", cbg1, false);   
       	typ.setBounds(300, 180, 125, 20);
    	add(typ); 
    	max.setBounds(300, 200, 125, 20);
    	add(max); 
    	    	
    	numbercustomerq = new Label("Anzahl der Kunden die in der DB angelegt werden sollen:");
    	numbercustomerq.setBounds(20, 260, 450, 20); 
    	add(numbercustomerq);
    	numbercustomer = new TextField();
    	numbercustomer.setBounds(475, 260, 75, 20);
    	add(numbercustomer);
        
        numberlieferantq = new Label("Anzahl der Lieferanten die in der DB angelegt werden sollen:");
    	numberlieferantq.setBounds(20, 290, 450, 20); 
    	add(numberlieferantq);
    	numberlieferant = new TextField();
    	numberlieferant.setBounds(475, 290, 75, 20);
    	add(numberlieferant);
        
        numberinteressentq = new Label("Anzahl der Interessenten die in der DB angelegt werden sollen:");
    	numberinteressentq.setBounds(20, 320, 450, 20); 
    	add(numberinteressentq);
    	numberinteressent = new TextField();
    	numberinteressent.setBounds(475, 320, 75, 20);
    	add(numberinteressent);
        
        numberaddressq = new Label("Anzahl der Adressen die in jede Firma angelegt werden sollen:");
    	numberaddressq.setBounds(20, 350, 450, 20); 
    	add(numberaddressq);
    	numberaddress = new TextField();
    	numberaddress.setBounds(475, 350, 75, 20);
    	add(numberaddress);
        
        numbercontactpq = new Label("Anzahl der Kontaktpersonen die in jeder Adresse angelegt werden sollen:");
    	numbercontactpq.setBounds(20, 380, 450, 20); 
    	add(numbercontactpq);
    	numbercontactp = new TextField();
    	numbercontactp.setBounds(475, 380, 75, 20);
    	add(numbercontactp);
        
        numbercontactnq = new Label("Anzahl der Kontaktnummern die in jeder Kontaktperson angelegt werden sollen:");
    	numbercontactnq.setBounds(20, 410, 450, 20); 
    	add(numbercontactnq);
    	numbercontactn = new TextField();
    	numbercontactn.setBounds(475, 410, 75, 20);
    	add(numbercontactn);
        
        numberactivityqh = new Label("Anzahl der hist. Aktivitäten die für jede Adresse angelegt werden sollen:");
    	numberactivityqh.setBounds(20, 440, 450, 20); 
    	add(numberactivityqh);
    	numberactivityh = new TextField();
    	numberactivityh.setBounds(475, 440, 75, 20);
    	add(numberactivityh);
        
        numberactivityq = new Label("Anzahl der Aktivitäten die für jede Adresse angelegt werden sollen:");
    	numberactivityq.setBounds(20, 470, 450, 20); 
    	add(numberactivityq);
    	numberactivity = new TextField();
    	numberactivity.setBounds(475, 470, 75, 20);
    	add(numberactivity);
        
        numbertroubleticketqh = new Label("Anzahl der hist. Problemfälle die für jede Adresse angelegt werden sollen:");
    	numbertroubleticketqh.setBounds(20, 500, 450, 20); 
    	add(numbertroubleticketqh);
    	numbertroubleticketh = new TextField();
    	numbertroubleticketh.setBounds(475, 500, 75, 20);
    	add(numbertroubleticketh);
        
        numbertroubleticketq = new Label("Anzahl der Problemfälle die für jede Adresse angelegt werden sollen:");
    	numbertroubleticketq.setBounds(20, 530, 450, 20); 
    	add(numbertroubleticketq);
    	numbertroubleticket = new TextField();
    	numbertroubleticket.setBounds(475, 530, 75, 20);
    	add(numbertroubleticket);
    	
        abh = new Abhoerer();
    	b1 = new Button("Connect/Job");  
        b1.setBounds(20, 590, 100, 20);
        add(b1);
 	b1.addActionListener(abh);  
 		
 	ausnahment = new Label("Notice:");
    	ausnahment.setBounds(175, 590, 50, 20); 
    	add(ausnahment);
    	ausnahmen = new TextField();
    	ausnahmen.setBounds(225, 590, 500, 75);
    	add(ausnahmen);
    }
        class Abhoerer implements ActionListener
 	{
            public void actionPerformed(ActionEvent e)  
            {  
                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"); 
                    String url = "jdbc:oracle:thin:@"+ds+":1521:"+dn; 
                    Connection connection = DriverManager.getConnection(url, du, p);
                    
                    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(numbercustomer.getText()).intValue(); 
                    int ni = Integer.valueOf(numberaddress.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(); 
                    
                    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); 
                            connection.commit(); 
                            for (q=1; q<=nl; q++)
                            {
                                Statement lieferant = connection.createStatement(); 
                                resultlieferant = "INSERT into customer (customerno,customerid,mandator,companyname,shorttext,customerclass,searchname) values (" + (customerno=customerno+1) + "," + (customerid=customerid+1) + ",'DEMO'" + ",'Testcustomer','Testcustomer','L','Testcustomer')"; 
                                lieferant.executeUpdate(resultlieferant); 
                                connection.commit();
                                for (r=1; r<=ni; r++)
                                {
                                    Statement interessent = connection.createStatement(); 
                                    resultinteressent = "INSERT into customer (customerno,customerid,mandator,companyname,shorttext,customerclass,searchname) values (" + (customerno=customerno+1) + "," + (customerid=customerid+1) + ",'DEMO'" + ",'Testcustomer','Testcustomer','I','Testcustomer')"; 
                                    interessent.executeUpdate(resultinteressent); 
                                    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) values (" + (troubleticketid=troubleticketid+1) + "," + customerid + "," + addressid + ",1,'DEMO','TestSupportCall','AUFG','31.12.2004','31.12.2005')";
                                            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) values (" + (troubleticketid=troubleticketid+1) + "," + customerid + "," + addressid + ",1,'DEMO','TestSupportCall','AUFG','31.12.2004','31.12.2005')";
                                            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();
                                    }
                                    interessent.close();
                                }
                                lieferant.close();
                            }
                            company.close();
                        }
                    }
                                                               
                else
                {
                    for (i=1; i<=nc; i++)
                    {
                        Statement company = connection.createStatement(); 
                        resultcompany = "INSERT into customer (customerno,customerid,mandator,companyname,shorttext,customerclass,searchname) values (" + i + "," + (customerid=customerid+1) + ",'DEMO'" + ",'Testcustomer','Testcustomer','K','Testcustomer')";  
                        company.executeUpdate(resultcompany); 
                        connection.commit(); 
                        for (j=1; j<=na; j++)
                        {
                            Statement address= connection.createStatement();
                            resultaddress = "INSERT into address (addressno,addressid,customerid,name1,name2,name3,street,streetnumber,zip,city,countrycode,region,pobox,zip_pobox,addresstype,language,searchname) values (" + (addressno=addressno+1) + "," + (addressid=addressid+1) + "," + customerid + ",'Testaddress','Testaddress','Testaddress','Teststreet',23,76131,'Testcity','D','BW',1973,66801,1,'de','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) values (" + (troubleticketid=troubleticketid+1) + "," + customerid + "," + addressid + ",1,'DEMO','TestSupportCall','AUFG','31.12.2004','31.12.2005')";
                                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) values (" + (troubleticketid=troubleticketid+1) + "," + customerid + "," + addressid + ",1,'DEMO','TestSupportCall','AUFG','31.12.2004','31.12.2005')";
                                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,language,title) values (" + (contactpid=contactpid+1) + "," + addressid + ",'MR','Testman','Testman','de','Dr')";
                                    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();
                    }
                }
                ausnahmen.setText("!!!!!Please execute the Userrights Batchrun!!!!!"); 
                connection.close();
                } 
                
                catch(ClassNotFoundException e1) 
                { 
                    ausnahmen.setText("Driver not found"); 
                    e1.printStackTrace(); 
                } 
                catch(SQLException e2) 
                { 
                    ausnahmen.setText(e2.toString()); 
                } 
                catch(Exception e3) 
                {    
                    e3.printStackTrace(); 
                } 
                
            }
        }
}
```

Die class.Datei wird mit einer ganz normalen HTML Datei geladen.
Wenn ich die Daten eingebe und mich an der DB anmelden will kommt die Meldung "Driver not found". 
Ok, aber mein Driver existiert und wenn ich mein Code den ich vorher ohne Applet geschrieben habe (identischer Quellcode) in Java selbst ausführe (mit Hilfe von IOTools für die Eingabe), habe ich keine Probleme.

Woher kommt es, dass er sich aus einer HTML Seite nicht richtig an der DB anmelden kann bzw. auf den Treiber (classes12.zip) zugreifen kann? Wann, wie und wo muss ich was ändern?

Thx.


----------

