# MySQl und Java



## Guest (27. Feb 2006)

Hallo!

Ich habe eine MySQL Datenbank und den ODBC Connector installiert. Nun will ich über ein Servlet eine Verbindung zu dieser Datenbank herstellen. Aber irgendwie funktioniert das nicht. Ich glaube das Problem liegt entweder an der Datenbankverbindung und/oder am Insert:

*Datenbankverbindung:*

public void init() throws ServletException
  {
    String Treiber = "sun.jdbc.odbc.JdbcOdbcDriver";
    String URL = "jdbcdbc:Fitness";
    String User = "root";
    String Passwort = "root";


    try {
      Class.forName(Treiber);
      con = DriverManager.getConnection(URL, User, Passwort);
    }
    catch (Exception ex) {
      log(ex.getMessage());
    }

*Insert:*

Statement stmt = con.createStatement();
      String query = "insert into Mitgliedsdaten values ('"+strTextfeld1+"','"+strTextfeld2+
          "','"+strTextfeld3+"','"+strTextfeld4+"','"+strTextfeld5+"','"+strTextfeld6+"','"+strTextfeld7+
          "','"+strTextfeld8+"','"+strTextfeld9+"','"+strTextfeld10+"','"+strTextfeld11+"','"+strTextfeld12+
          "','"+strTextfeld13+"','"+strTextfeld14+"','"+strTextfeld15+"','"+strTextfeld16+"','"+strTextfeld17+"')";
      stmt.execute(query);

Noch eine Frage:

Ich habe in der Tabelle für den Primary Key smallint und auto_increment eingegeben. Muß ich das auto_increment beim insert beachten oder kann ich gleich mit dem nächsten Wert anfangen?

Danke für alle Antworten!!!


----------



## RicoSoft (27. Feb 2006)

exceptions? logs bitte auch noch gleich eintragen hier


----------



## @RicoSoft (27. Feb 2006)

RicoSoft hat gesagt.:
			
		

> exceptions? logs bitte auch noch gleich eintragen hier



Würde ich ja gerne eintragen! Wenn ich welche bekommen würde.


----------



## Bleiglanz (27. Feb 2006)

so wie du es gemacht hast musst du alle spalten angeben, und für den autoincrementer NULL eintragen

was ist denn der Fehler??


----------



## @Bleiglanz (28. Feb 2006)

Hier einmal der Quellcode:

package fitness;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import java.sql.*;

*public class NeuesMitglied extends HttpServlet implements Serializable*
{
  Connection con = null;
  private static final String CONTENT_TYPE = "text/html";

  //Initialize global variables
*public void init() throws ServletException*
  {
    String Treiber = "sun.jdbc.odbc.JdbcOdbcDriver";
    String URL = "jdbcdbc:Fitness";
    String User = "root";
    String Passwort = "root";


    try {
      Class.forName(Treiber);
      con = DriverManager.getConnection(URL, User, Passwort);
    }
    catch (Exception ex) {
      log(ex.getMessage());
    }

  }

  //Process the HTTP Get request
*public void service(HttpServletRequest request, HttpServletResponse response) throws
      ServletException, IOException*
  {
    response.setContentType(CONTENT_TYPE);
    PrintWriter out = response.getWriter();



    Eintrag neuerEintrag = new Eintrag();
    neuerEintrag.aufnehmen(request);
    neuerEintrag.printHTML(out,request.getRequestURI());

    String action = request.getParameter("auswahl");
    if (action != null)
    {
      try
      {
        if (action.equals("insert"))
        {
          neuerEintrag.speichern(con,out);
        }
      }
      catch (Exception ex)
      {
        log(ex.toString());
      }
    }
	  }



*class Eintrag {*
    String strTextfeld1 = null;
    String strTextfeld2 = null;
    String strTextfeld3 = null;
    String strTextfeld4 = null;
    String strTextfeld5 = null;
    String strTextfeld6 = null;
    String strTextfeld7 = null;
    String strTextfeld8 = null;
    String strTextfeld9 = null;
    String strTextfeld10 = null;
    String strTextfeld11 = null;
    String strTextfeld12 = null;
    String strTextfeld13 = null;
    String strTextfeld14 = null;
    String strTextfeld15 = null;
    String strTextfeld16 = null;
    String strTextfeld17 = null;
* public void aufnehmen(HttpServletRequest request)*
    {
      strTextfeld1 = request.getParameter("Name");
      strTextfeld2 = request.getParameter("Vorname");
      strTextfeld3 = request.getParameter("Strasse");
      strTextfeld4 = request.getParameter("Hausnummer");
      strTextfeld5 = request.getParameter("PLZ");
      strTextfeld6 = request.getParameter("Wohnort");
      strTextfeld7 = request.getParameter("Telefon");
      strTextfeld8 = request.getParameter("Handy");
      strTextfeld9 = request.getParameter("EMail");
      strTextfeld10 = request.getParameter("Geburtsdatum");
      strTextfeld11 = request.getParameter("Bild");
      strTextfeld12 = request.getParameter("Beitrag");
      strTextfeld13 = request.getParameter("BLZ");
      strTextfeld14 = request.getParameter("Kreditinstitut");
      strTextfeld15 = request.getParameter("Kontonummer");
      strTextfeld16 = request.getParameter("Vertragsbeginn");
      strTextfeld17 = request.getParameter("Vertragsende");
    }
*public void speichern (Connection con, PrintWriter out) throws SQLException*
    {
      Statement stmt = con.createStatement();
      String query = "insert into Mitgliedsdaten (BID,Name,Vorname,Strasse,Hausnummer,PLZ,Wohnort, Telefon,Handy,EMail,Geburtsdatum,Bild,Beitrag,BLZ,Kreditinstitut,Kontonummer, Vertragsbeginn,Vertragsende) values (NULL,'"+strTextfeld1+"','"+strTextfeld2+
          "','"+strTextfeld3+"','"+strTextfeld4+"','"+strTextfeld5+"','"+strTextfeld6+"','"+strTextfeld7+
          "','"+strTextfeld8+"','"+strTextfeld9+"','"+strTextfeld10+"','"+strTextfeld11+"','"+strTextfeld12+
          "','"+strTextfeld13+"','"+strTextfeld14+"','"+strTextfeld15+"','"+strTextfeld16+"','"+strTextfeld17+"')";
      stmt.execute(query);
      out.println("Neues Mitglied erfolgreich eingetragen");
    }

* protected void printHTML(PrintWriter out, String servletPath) throws
        ServletException, IOException* {
      int i = servletPath.indexOf('?');
      if (i != -1) servletPath = servletPath.substring(0, i);

      out.println("<html>");
      out.println("<head>");
      out.println("<title>Neues Mitglied</title>");
      out.println("</head>");
      out.println("<body text='#000000' bgcolor='#FFFF00' link='#FF0000' alink='#FF0000' vlink='#FF0000'>");
      out.println("<center>");
      out.println("<h1>Neues Mitglied aufnehmen</h1>");
      out.println("</center>");
      out.println("<form action='" + servletPath + "' method='post' target=''>");
      out.println("<h3><u>Mitgliederdaten:</u></h3>");
      out.println("<center>");
      out.println("<table>");
      out.println("<input type='hidden' name='auswahl' value='insert'>");
      out.println("<tr>");
      out.println("<td><font size=+1>*Name:*</font></td>");
      out.println(
          "<td><input type='Text' name='Name' value='' size='25' maxlength='50'> </td>");
      out.println("<td>&&&&& </td>");
      out.println("<td><font size=+1>*Vorname:*</font> </td>");
      out.println(
          "<td><input type='Text' name='Vorname' value='' size='25' maxlength='50'> </td>");
      out.println("</tr>");
      out.println("<tr>");
      out.println("<td><font size=+1>*Strasse:*</font> </td>");
      out.println(
          "<td><input type='Text' name='Strasse' value='' size='25' maxlength='50'> </td>");
      out.println("<td> &&&&&</td>");
      out.println("<td><font size=+1>*Hausnummer:*</font> </td>");
      out.println("<td><input type='Text' name='Hausnummer' value='' size='5' maxlength='10'> </td>");
      out.println("</tr>");
      out.println("<tr>");
      out.println("<td><font size=+1>*PLZ:*</font> </td>");
      out.println(
          "<td><input type='Text' name='PLZ' value='' size='25' maxlength='5'> </td>");
      out.println("<td> &&&&&</td>");
      out.println("<td><font size=+1>*Wohnort:*</font> </td>");
      out.println(
          "<td><input type='Text' name='Wohnort' value='' size='25' maxlength='50'> </td>");
      out.println("</tr>");
      out.println("<tr>");
      out.println("<td><font size=+1>*Telefon:*</font> </td>");
      out.println(
          "<td><input type='Text' name='Telefon' value='' size='25' maxlength='20'> </td>");
      out.println("<td> &&&&&</td>");
      out.println("<td><font size=+1>*Handy:*</font> </td>");
      out.println(
          "<td><input type='Text' name='Handy' value='' size='25' maxlength='20'> </td>");
      out.println("</tr>");
      out.println("<tr>");
      out.println("<td><font size=+1>*E-Mail:*</font> </td>");
      out.println(
          "<td><input type='Text' name='EMail' value='' size='25' maxlength='50'> </td>");
      out.println("<td> &&&&&</td>");
      out.println("<td><font size=+1>*Geburtsdatum:*</font> </td>");
      out.println("<td><input type='Text' name='Geburtsdatum' value='' size='25' maxlength='20'> </td>");
      out.println("</tr>");
      out.println("<tr>");
      out.println("<td><font size=+1>*Bild:*</font> </td>");
      out.println("<td><input name='Bild' type='file' size='25' maxlength='100' accept='text/*'> </td>");
      out.println("</tr>");
      out.println("<tr>");
      out.println("<td><font size=+1>*Beitrag:*</font> </td>");
      out.println("<td><select name='Beitrag' size='1'>");
      out.println("<option selected>RIN BU KAI</option>");
      out.println("<option>RIN BU KAI/Fitness</option>");
      out.println("<option>Fitness</option>");
      out.println("</select> </td>");
      out.println("<td>&&&&& </td>");
      out.println("</tr>");
      out.println("</table>");
      out.println("</center>");
      out.println("<h3><u>Bankverbindung:</u></h3>");
      out.println("<center>");
      out.println("<table>");
      out.println("<tr>");
      out.println("<td><font size=+1>*BLZ:*</font> </td>");
      out.println(
          "<td><input type='Text' name='BLZ' value='' size='' maxlength='20'> </td>");
      out.println("<td>&&&&& </td>");
      out.println("<td><font size=+1>*Kreditinstitut:*</font> </td>");
      out.println("<td><input type='Text' name='Kreditinstitut' value='' size='' maxlength='50'> </td>");
      out.println("</tr>");
      out.println("<tr>");
      out.println("<td><font size=+1>*Kontonummer:*</font> </td>");
      out.println("<td><input type='Text' name='Kontonummer' value='' size='' maxlength='20'></td>");
      out.println("<td>&&&&& </td>");
      out.println("</tr>");
      out.println("</table>");
      out.println("</center>");
      out.println("<h3><u>Vertragslaufzeit:</u></h3>");
      out.println("<center>");
      out.println("<table>");
      out.println("<tr>");
      out.println("<td><font size=+1>*Vertragsbeginn:*</font> </td>");
      out.println("<td><input type='Text' name='Vertragsbeginn' value='(dd.mm.yyyy)' size='' maxlength='20'> </td>");
      out.println("<td>&&&&& </td>");
      out.println("<td><font size=+1>*Vertragsende:*</font> </td>");
      out.println("<td><input type='Text' name='Vertragsende' value='(dd.mm.yyyy)' size='' maxlength='20'> </td>");
      out.println("</tr>");
      out.println("</table>");
      out.println("</center>");
      out.println("
");
      out.println("<center>");
      out.println(
          "<input type='Submit' name='Button1' value='Daten senden!!!'>");
      out.println("&&");
      out.println(
          "<input type='Reset' name='Button2' value='Daten l&schen!!!'>");
      out.println("</center>");
      out.println("</form>");
      out.println("</body>");
      out.println("</html>");

    }

    //Clean up resources
*public void destroy()*
    {
      try
      {
        con.close();
      }
      catch (SQLException ex)
          {
           log (ex.getMessage());
          }
     }
  }
}


*Frage: Muss ich bei der URL die Verbindung zur Datenbank oder zur ODBC Schnittstelle angeben?*


----------



## SamHotte (28. Feb 2006)

Code-Tags wären echt schön


----------



## Guest (2. Mrz 2006)

Hat sich erledigt! Ich hatte den Treiber nicht im Web-inf/ lib eingefügt.


----------

