# Daten aus jsp Datei in datenbank speichern



## Dragonfire (9. Nov 2009)

Bei mir hängt ein MySQL-Server dahinter ...
Die Schnittstelle ist jedoch nicht von mir programmiert.
Als Grundlage wurde aber folgendes Tutorial genommen:

Galileo Computing :: Java ist auch eine Insel (8. Auflage) – 23.5 Mit Java an eine Datenbank andocken

Meine GUI holt sich alle Objekt aus der Schnittstelle ,
der Benutzer kann dann in der Tabelle alles editieren oder neue Einträge anlegen.
Die Schnittstelle "übersetzt" die Aktionen des Benutzers dann in SQL-Befehle um.

###

Ursprünglich mal gepostet von Yasmin in: 

http://www.java-forum.org/allgemeine-java-themen/90982-generic-typ-laufzeit.html


----------



## yasmin (9. Nov 2009)

Hallo ihr lieben, 

ich programmiere grade mit netbeans jsp Datei ein website, die seite läuft auch allerdings möchte ich, die eingaben vom Benutzer in meinem Datenbank speichern.

ich habe seperat in oracle sqlDeveloper tabellen angelegt, diese sollen mit der Eingabe vom Benutzer, die die felder füllen, gefüllt werden.
 <tr>
                        <td> <label style="width:100px" for="Nachname">Nachname:</label>
                            <input style="width:150px" id="Nachname" type="text" name="Nachname"/></td>
</tr>

Achja und die datenbankanbindung würde mich auch interessieren.

Vielen Dank im Voraus


----------



## SlaterB (9. Nov 2009)

so, durch all das Verschieben und neu erstellte Topics sicher mehr Chaos als Ordnung, 
deshalb nicht nochmal machen, yasmin


----------



## ARadauer (9. Nov 2009)

Datenbank Anbindung mit JAVA: Galileo Computing :: Java ist auch eine Insel (8. Auflage) – 23.5 Mit Java an eine Datenbank andocken


----------



## yasmin (9. Nov 2009)

datenbankanbindung ist gar kein thema bzw. jetzt nicht so relevant.
Ich will wissen, ob ich ohne php eine datenbankzugriff erstellen kann und zwar arbeite ich mit jsp Datei.
Also da es ein webseite ist, ist der code in html geschrieben, wie kann ich da die anbindung einfügen bzw wo genau?


----------



## yasmin (9. Nov 2009)

So sieht meine Datenbankanbindung mit java, funktioniert ervorragend, kann ich das in meiner jsp Datei einfügen, wenn ja wo?
Und wie kann ich die benutzereingaben in datenbank speichern  


 public static void main(String[] args) throws SQLException
    {
       String driverClass= "oracle.jdbc.driver.OracleDriver" ;
try {
      Class.forName(driverClass);
    }
    catch ( ClassNotFoundException e ) {
      System.out.println("c1: "+ e.getMessage());
      System.exit(1);
    }
try
    {
    readData();

         String url ="jdbcracle:thin*****.deort:xxxx";
        con = DriverManager.getConnection(url,benutzername,passwort);
System.out.println("Erfolg!");
      } catch(SQLException exc)
      {
         System.out.println("C2: "+exc.getMessage());
      }


----------



## SlaterB (9. Nov 2009)

eine JSP steht normalerweise für eine Webanwendung auch mit Servlets, ausgeführt auf einem Webserver,
die DB-Anbindung ist allgemein im Framework konfiguriert, in hinteren Schichten versteckt, 
da kann man locker paar hundert Seiten lesen, bevor man etwas programmiert,

zumindest solltest du JSPs frei von DB-Code halten und das in Servlets verlegen,
dort kannst du meinetwegen testweise erstmal deinen bekannten Code verwenden

-----

Benutzereingaben kommen in ein HTML-Form und werden durch ein Servlet ganz normal verarbeitet


----------



## yasmin (9. Nov 2009)

Ok danke ich probiere mal... bis morgen


----------



## yasmin (11. Nov 2009)

Hallo ihr lieben,

so bin wieder mit meiner Fragen da.

Also wenn ich es laufen lasse, kommt das html bzw jsp seite raus, wo ich name und vorname eingeben kann und dann auf ok, danach kommt folgende Fehlermeldung:
description:  The requested resource (/WebApplication1/bookEdit) is not available.
Was mache ich falsch?
und wieso kann ich meine xml datei nicht öffnen
Sorry bin ganz neu bei sowas

Vielen dank

import java.sql.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;
import java.util.Collection;

public class Formular extends HttpServlet {

         private static final long serialVersionUID = 1L;
	private Connection con = null; //

 public void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
     System.out.println("Am anfang kommt er!");
        HttpSession session = request.getSession();		//initialisiere die Datenbank Klasse
        SimulateDB simulateDB = new SimulateDB();		Datenbank Klasse
        Collection collection = simulateDB.getAllBooks(session);      
        request.setAttribute("Test", collection);		
       RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/jsp/bookList.jsp");		//leite auf die JSP Datei zum Anzeigen der Liste weiter		dispatcher.forward(request, response);


    }

    @Override
    public void init(ServletConfig config)
      throws ServletException {

         super.init(config);
        try {
            // Definition des Treibers

            DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
        } catch (SQLException ex) {
            System.out.println("FEHLER 1: "+ ex.getMessage());
            Logger.getLogger(Formular.class.getName()).log(Level.SEVERE, null, ex);
        }
    // Connect-String definieren
        String url = "jdbcracle:thintestus.****.deort:WF***";
        String User = config.getInitParameter("user");
        String Password = config.getInitParameter("passwort");
        try {
            // Verbindungsaufbau herstellen
            con = DriverManager.getConnection(url, "LTMI_WORKFLOW", "LTMI_WORKFLOW");
        } catch (SQLException ex) {
            System.out.println("FEHLER 2: "+ ex.getMessage());
            Logger.getLogger(Formular.class.getName()).log(Level.SEVERE, null, ex);
        }




    }


    @Override
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {		//rufe die doGet(...) Methode auf
        this.doGet(request, response);
    }
    }


----------



## SlaterB (11. Nov 2009)

Java-Tags?!
allerdings ist der Code auch recht egal, 
solange du nicht zu irgendeiner JSP weiterleiten kannst, musst du über Auswertung von Formulaten oder DB-Verbindungen nicht nachdenken,

hast du irgendein funktionieres Beispiel/ Tutorial, wie du zu JSPs usw. kommst?
bookEdit taucht in dem Code übrigens nicht auf, ist das vielleicht eher die Action im Formular einer anderen JSP?!

ansonsten kann ich persönlich dazu leider gar nix sagen, was man wo wie konfigurieren und angeben muss,
stecke da nicht drin


----------



## yasmin (11. Nov 2009)

Ach mist, jetzt habe ich mein servlet gelöscht und kann nicht mehr neues anlegen
Wie kann ich daten aus so einem html code, die in jsp format ist über servlet an datenbank senden.
Somt dass wenn der user nama und vorname eintippt, diese auch in meinem Datenbank rein gehen

Danke
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<%String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>">
        <title>Test add</title> </head>
    <body> <form name="edit" action="bookEdit" method="post">
        <table>
            <tbody> <tr> <td>Name:</td> <td><input type="text" name="Name" value=""></td>  </tr>
            <tr>  <td>Vorname:</td>  <td><input type="text" name="vorname" value=""></td> </tr>
            <tr> <td>vorhanden:</td> <td><input type="checkbox" name="available" value="true"></td> </tr>
                    <tr>
                        <td colspan="2"><input type="submit" name="btnSave" value="Save"></td>
                    </tr>
                </tbody>
            </table>
        </form>
    </body>
</html>


----------



## SlaterB (11. Nov 2009)

was soll bookEdit sein?
gibt es ein Servlet das so heißt, ist in der web.xml alles entsprechend eingetragen?
jetzt muss ich mich doch noch an solche Details erinnern..

dass du nichts davon erwähnst, klingt ja nicht gut,
hast du denn kein Tutorial/ Lehrbuch mit allen Details?


----------



## yasmin (11. Nov 2009)

1. brauche ich hilfe, um dieses servlet wieder einzufügen, habe die gelöscht, frag nicht wieso, dumm gelaufen...
2. nein ich habe xml überhaupt nicht geändert. ich habe nur mein html datei sowie sie da steht und dieses Servlet. bookedit hat nichts zu bedeuten, ich hatte es nur nicht gelöscht gehabt...

ich will daten über die html seite vom benutzer haben, welche dann in servlet überprüft werden soll und in datenbanktabelle eingefügt werden soll.
in etwa so
insert into tabelle values('xx','xy');


----------



## yasmin (11. Nov 2009)

woran liegt es, dass ich kein servlet mehr anlegen kann?

danke


----------



## SlaterB (11. Nov 2009)

definiere 'Servlet anlegen'

welches Betriebssystem, welche Anwendung, ein einfacher Texteditor oder etwas höheres? welche Fehlermeldung, Screenshots,
kann mir aber auch nicht vorstellen dass mir dazu was einfällt


----------



## yasmin (13. Nov 2009)

mit tomcat
also ich habe ne neu Idee:
ich werde mit dem Prinzip von mvc arbiten, also in meine jsp datei werde ich meine maske machen.
dann 3 weitere klassen, in einem soll die daten einfach abgelegt werden.
in anderem soll die logig der daten controlliert werden, bevor sie angezeigt oder in datenbank angelegt wird.
Mal sehen wie weit ich komme. ich brauch den sch*** servlet nicht


----------

