carookee - group communication for you
Home / JavaForum / Networking
Infos   |   Features   |   Gold-Edition   |   Kundenservice   
java
  Übersicht
  Forum
Beginner
Java allgemein
JDBC
JNI
Networking
Online-Ressourcen
Swing + AWT
XML
Meckerecke
  Mitglieder
LOGIN





· Passwort vergessen
· Kostenlos anmelden
  Information
  Demo
  Features
  Im Vergleich
  Anmeldung
SUCHE
Beiträge, Foren oder Verfasser finden:
  Kundenservice
  Impressum
  Datenschutz
  AGB
Status
2.757 User online
0 User eingeloggt
 

Beiträge
   Antworten     Neuer Beitrag    

Beitrag 69 von 610 (11%) |<   <   >   >|

Autor Klaus Bayrhammer
Datum 13.01.04, 22:50
Betreff Servlet + Datenbank


Hi erstmal!

Ich habe ein Problem beim Datenbankzugriff mit einem Servlet und wollte fragen ob ihr mir hier vielleicht weiterhelfen könntet....

Also grundsätzlich möchte ich mit einem Servlet auf eine MySQL Datenbank zugreifen und von dieser Werte abfragen...
Mein Problem ist, dass das Servlet die Treiberklasse nicht findet, dh. mir eine ClassNotFoundException wirft....

hier einmal der code
//Das ist das Servlet
import java.io.*;
import java.sql.*;

import javax.servlet.ServletException;
import javax.servlet.http.*;

public class StoreProc extends HttpServlet {
    
    protected void doGet(HttpServletRequest req, HttpServletResponse res)
    throws ServletException, IOException {
        
        //Initialisierung der Variablen
        boolean html = false;
        boolean text = false;
        boolean xls = false;
        boolean self = false;
        ResultSet rs = null;
        
        //Ermitteln der uebergebenen Parameter
        int start = Integer.parseInt(req.getParameterValues("Start")[0]);
        int stop = Integer.parseInt(req.getParameterValues("Ende")[0]);
        
        html = (req.getParameterValues("htmlformat") != null);
        text = (req.getParameterValues("textformat") != null);
        xls = (req.getParameterValues("xlsformat") != null);
        self = (req.getParameterValues("selfformat") != null);
        
        try {
            rs = DataBase.RequestData(start, stop); //<-- Aufruf der Problemfunktion
        }
        catch (SQLException es) {
            System.out.println(es.toString());
        }
        
        PrintWriter out = res.getWriter();
        try {
            if (xls)
            printxls(res, out, rs);
            else if (text)
            printtxt(res, out, rs);
            else if (html)
            printhtml(res, out, rs);
        }
        catch (SQLException e1) {
            System.out.println(e1.toString());
        }
    }
}


Dann die Klasse für den Datenbankzugriff

import java.sql.*;
import java.util.Date;

public class DataBase {
    
    private static Connection c;
    
    public static ResultSet RequestData(long von, long bis)
    throws SQLException {
        
        try {
            Class.forName("com.mysql.jdbc.Driver").newInstance(); //!!!!!!!!
        }
        catch (Exception e) {
            System.out.println(e.toString());
        }
        try {
            c = DriverManager.getConnection("jdbc:mysql:///ftku", "root", "secret");
        }
        catch (SQLException e1) {
            System.out.println(e1.toString());
        }
        
        StringBuffer sb = new StringBuffer("SELECT * FROM Messwerte WHERE ");
        Date d_von = new Date(System.currentTimeMillis() - von * 60000);
        Date d_bis = new Date(System.currentTimeMillis() - bis * 60000);
        sb.append("ZEIT < " + d_bis.getTime() + " AND ZEIT > " + d_von.getTime() + ";");
        Statement s = c.createStatement();
        return s.executeQuery(sb.toString());
    }
}


Mein Problem besteht jetzt darin, dass wenn ich die Funktion RequestData aus dem Servlet aufrufe wirft mir das Programm die Exception "java.lang.ClassNotFoundException: com.mysql.jdbc.Driver" (Er findet den mysqldriver nicht)

Was mich jedoch stutzig macht ist, dass wenn ich die selbe Funktion aus der folgenden Klasse heraus aufrufe läuft sie einwandfrei

//Testklasse
import java.sql.*;

public class Host {
    public static void main(String args[]){
        
        ResultSet rs = null;
        try {
            rs = DataBase.RequestData(10, 0);
        }
        catch (SQLException e1) {
            System.out.println(" " + e1.toString());
        }
        try {
            while(rs.next()) {
                System.out.print(rs.getString(1) + "\t");
                System.out.println(rs.getString(2));
            }
        }
        catch (SQLException e) {
            System.out.println(" " + e.toString());
        }
        
        System.out.println("Succeful");
    }
}


Mein einziger Verdacht wäre, dass ich bei meinem Webserver (Tomcat) eine Konfiguration vergessen (falsch gemacht) hätte....

ps: Ich habe Eclipse 3 + Sysdeo Tomcat Plug-in V221 benutzt. Als Datenbanktreiber mysql-connector-java-3.0.9 und als Datenbank mysql-4.0.15...

Danke schonmal, dass ihr euch die Mühe gemacht habt soweit zu lesen....

EDIT:
hier die Exceptions
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
java.sql.SQLException: No suitable driver



Diskussionsverlauf:
Servlet + Datenbank
    Re: Servlet + Datenbank

 Auf diesen Beitrag antworten
 Neuen Beitrag verfassen


|<   <   >   >|

                                                                                                                                                                                                                           

Impressum  · Datenschutz  · AGB  · Infos  · Presse
Ein modernes Forum: teamturn.com