Datenbankverbindung mit JSP herstellen

Hallo zusammen,

ich versuche mich gerade an einem Versuch eine Datenbankverbindung herzustellen.
Die Idee ist die Datenbank für ein kleines Forum zu verwenden.

Ich versuche die Datenbankverbindung in der index.jsp Datei herzustellen.
Ich habe einige Tutorials dazu gelesen, aber der Zugriff will bei mir einfach nicht funktionieren.

Wenn ich die index.jsp starte, erhalte ich nur die Tabelle aber kein Daten aus der Datenbank.

------------------------

Mein Versuch:
Code:
<%@taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%>

<html>
    <%@page import="com.sun.xml.rpc.processor.modeler.j2ee.xml.string"%>
    <%@page contentType="text/html" pageEncoding="UTF-8"%>
    <%@ page import="java.util.*" %>
    <%@ page import="javax.sql.*;" %>
    <!DOCTYPE html>

    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Forum</title>
    </head>
      
<body>

<%-- Datenbanktreiber laden --%>

<private String driver="org.apache.derby.jdbc.ClientDriver";></private>
<Class.forName(driver).newInstance();>
                         
<%-- Connection-Objekt erzeugen --%>

<private Connection connect = null;></private>

<private String dbName ="C:/netbeans/.netbeans-derby/forum";></private>
<private String connectionURL="jdbc:derby://localhost:1527/" + dbName + ";create=true";></private>

<connect=DriverManager.getConnection(connectionURL);>
  

<PreparedStatement statement = connect .
    .prepareStatement("Select * from forum");>
<Resultset rs = statement.execute Query();>

<h1> Kleines Forum </h1>

<table border="1" width="100%">
<tr>
   <th>Titel des Beitrags</th>
   <th>geschrieben von</th>
   <th>geschrieben am</th>
</tr>

<while(rs.next()){
String Titel = rs.getString("titel");
System.out.println(titel);
}>


<tr>
   <td><String Titel = rs.getString("Titel")></td>
</tr>

</table>

</body>
</html>

--------------

Was stimmt hier nicht, weshalb ich kein Ausgabe bekomme?


Danke für eure Hilfe.

Gruß
 
Zuletzt bearbeitet von einem Moderator:
Hallo,

also die Datenbank liegt bei mir local.
Und in der Datenbank ist eine Tabelle aus dem die Daten gelesen werden soll.

Unter dem Pfad C:/netbeans/.netbeans-derby/forum liegt die Datenbank:

Daher habe ich:
<private String dbName ="C:/netbeans/.netbeans-derby/forum";></private>
<private String connectionURL="jdbc:derby://localhost:1527/" + dbName + ";create=true";></private>
 

Thallius

Top Contributor
Tja, dann würde ich mal anfangen zu debuggen. Was steht denn in connect ? Normalerweise solltest du auch eine Meldung bekommen, dass Du SQLException abfangen sollst. Machst du das?
 

tommysenf

Top Contributor
Scriptlets bindet man doch folgendermaßen in eine JSP ein

<%
String[] valueArray = {"This", "is", "a", "rather", "dull", "example"};
int i;
for (i = 0; i < valueArray.length; i++) {
%>

So wie du es gemacht hast sollte dein Code einfach nur als fehlerhaftes html interpretiert werden und daher erzeugt er auch keine Ausgabe.
 
Hallo,

danke für die Antworten.

Ich habe nochmal etwas versucht, aber leider immer noch keine Ausgabe.

Code:
<%@page import="java.sql.PreparedStatement"%>
    <%@page import="java.sql.Connection"%>
    <%@page import="java.sql.DriverManager"%>
    <%@taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%>
    <%@page import="com.sun.xml.rpc.processor.modeler.j2ee.xml.string"%>
    <%@page contentType="text/html" pageEncoding="UTF-8"%>
    <%@page import="java.util.*"%>
    <%@page import="javax.sql.*;"%>

<html>
    <head>
      
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Forum</title>
    </head>
      
<body>
    <table border="1">
  

  
<%-- Datenbanktreiber laden --%>
<%
String driver="org.apache.derby.jdbc.ClientDriver";
Class.forName(driver).newInstance();
          
java.sql.Connection connect = null;
String dbName = "C:/Users/admin/.netbeans-derby/forum";
String connectionURL="jdbc:derby://localhost:1527/" + dbName + ";create=true";

connect = DriverManager.getConnection(connectionURL);

java.sql.PreparedStatement pst; 
java.sql.Statement statement;
java.sql.ResultSet rs;

pst = null;
statement = null;
rs = null;

String sql = "SELECT titel from forum";

statement = connect.createStatement();
rs = statement.executeQuery(sql);

%>

<h1> Kleines Forum </h1>


<tr>
   <th>Titel des Beitrags</th>
   <th>geschrieben von</th>
   <th>geschrieben am</th>
</tr>

<%
while(rs.next()){
String Titel = rs.getString("titel");
System.out.println(Titel);
}

%>

<tr>
   <td><%-- String Titel = rs.getString("Titel"); --%></td>
   <td><%-- System.out.println("titel"); --%></td>
</tr>

</table>

</body>
</html>
 
Zuletzt bearbeitet von einem Moderator:
Als nächstes habe ich mir gedacht,

das Wenn man auf den Titel des Beitrags klickt die ID des Beitrags in der Datenbank per Parameter an eine andere JSP Datei zum lesen übergeben werden soll:

Bin ich hier auf dem richten Weg ?:

in der index.jsp:

<td><a href ="beitrag-lesen.jsp?value=<%= rs.getInt("id")%>"><%= rs.getString("titel") %></a> </td>

in der beitrag-lesen.jsp
habe ich zum Test ob der Parameter übergeben wird diesen nur mal ausgeben wollen mit:

<tr>
<td><%= request.getParameter("id") %></td>
</tr>

hier wird null ausgegeben.

Das heißt wohl entweder funktioniert die Übergabe nicht so wie ich das denke oder die übernahme nicht ?

Danke.
 
Hallo zusammen,

ich bin schon etwas weiter gekommen:

Mein Problem ist nun:

Ich habe eine Form erstellt und die Form übergibt die Parameter zu beitrag-speichern.jsp , das funktioniert soweit auch.
Nur wie schreibe ich die Daten in die Datenbank ?
Ich erhalte immer einen Fehler und ich kann z.B. auch nicht Vorname Nachname mit Leerzeichen übernehmen.

Der Code:

beitrag-erstellen.jsp mit der Form:

Code:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Beitrag erstellen</title>
    </head>
    <body>
      
        <h1> Beitrag erstellen </h1>
      
<form action="beitrag-speichern.jsp" method="POST">
<table>
    <tr>
        <td> <label for="pname">Name</label> </td>
        <td> <input type="text" id="name" name="pname" /> </td>
    </tr> 
  
   <tr>
       <td> <label for="pemail">Email</label> </td>
       <td> <input type="text" id="email" name="pemail" /> </td>
   </tr>
  
   <tr>
       <td> <label for="ptitel">Titel des Beitrags</label> </td>
       <td> <input type="text" id="titel" name="ptitel" /> </td>
   </tr>
      
   <tr>
       <td> <label for="pbeitrag">Beitrag</label> </td>
       <td> <textarea name="pbeitrag" id="beitrag" class="sendForm">
       </textarea> </td>
   </tr>
  

  
   <td> <input type="submit" value="speichern" /> </a>
   </td>

</table>

</form>
      
      
        <hr>
      
        <a href ="index.jsp">Übersicht</a>
    </body>
</html>
--------------------------------------------------
Beitrag-speichern.jsp
Code:
<%@page import="java.sql.DriverManager"%>
<%@page import="java.lang.String"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Beitrag speichern</title>
    </head>
    <body>
      
        <h1>Ihr Beitrag wurde gespeichert:</h1>
        <table>     
        <tr>
            <td> Ihr Beitrag: </td>
        </tr>
        <tr>
            <td>Name:    <%= request.getParameter("pname") %></td>
        </tr>
        <tr>
            <td>Email:   <%= request.getParameter("pemail") %></td>
        </tr>
        <tr>
            <td>Titel:   <%= request.getParameter("ptitel") %></td>
        </tr>
        <tr>
            <td>Beitrag: <%= request.getParameter("pbeitrag") %></td>
        </tr>
     </table> 
      
        <%
            java.sql.PreparedStatement pst; 
            java.sql.Statement statement;
            java.sql.ResultSet rs;

            pst = null;
            statement = null;
            rs = null;
          
            String pname=request.getParameter("pname");
            String pemail=request.getParameter("pemail");
            String ptitel=request.getParameter("ptitel");
            String pinhalt=request.getParameter("pbeitrag");
              
          
            String driver="org.apache.derby.jdbc.ClientDriver";
            Class.forName(driver).newInstance();
          
            java.sql.Connection connect = null;
            String dbName = "C:/Users/name/.netbeans-derby/forum";
            String connectionURL="jdbc:derby://localhost:1527/" + dbName + ";create=true";

            connect = DriverManager.getConnection(connectionURL);


            statement = connect.createStatement();
            String sql = "INSERT INTO forum (name) VALUES (" + pname + ")";
            statement.executeUpdate(sql);
          
          
            %>


-----

Danke.
 
Zuletzt bearbeitet von einem Moderator:

Saheeda

Top Contributor
Wenn ich dir noch einen Tipp geben darf:
Schau dir mal das MVC-Pattern an. Du mischst Dinge, die einfach nicht zusammengehören und für eine saubere Struktur unbedingt getrennt werden sollten.
Der Verbindungsaufbau mit der Datenbank hat nichts mit der Darstellung des Formulars zu tun.

Im einfachsten Fall hättest du eine Klasse, die sich _nur_ um die Datenbankzugriffe kümmert, (Model) eine .jsp-Datei (View) und eine Klasse, welche zwischen den beiden vermittelt (Controller).
 
Hallo,

wenn ich
Code:
 String sql = "INSERT INTO forum (name) VALUES ('" + pname + "' )";
eingebe erhalte ich:

javax.servlet.ServletException: java.sql.SQLIntegrityConstraintViolationException: Die Spalte 'ID' akzeptiert keinen Nullwert.

Was aber wohl klar ist da ich keine Wert mit angegeben habe, dann muss ich jetzt noch raus finden wie ich den Wert um eins erhöhe im SQL.

Das MVC muss ich mir mal anschauen was das ist.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Datenbankverbindung herstellen Datenbankprogrammierung 6
8 MySQL Datenbankverbindung herstellen FAQ Datenbankprogrammierung 2
H Datenbankverbindung zu MS Access Datenbankprogrammierung 4
Zrebna Wie mittels PL/SQL eine Datenbankverbindung blockieren? Datenbankprogrammierung 6
B Probleme mit Datenbankverbindung Datenbankprogrammierung 2
J Jar-Datei stellt keine Datenbankverbindung her Datenbankprogrammierung 3
B SQLite Frage zu SQLite Datenbankverbindung Datenbankprogrammierung 7
Danloc Informationen für Datenbankverbindung wo/wie speichern? Datenbankprogrammierung 11
T Problem mit Datenbankverbindung Datenbankprogrammierung 22
I Datenbankverbindung Oracle DB klappt nicht - getConnection returned null Datenbankprogrammierung 8
D Keine Datenbankverbindung Datenbankprogrammierung 4
dat_vin JavaFX Datenbankverbindung über JPA und MySQL Error Datenbankprogrammierung 0
R Datenbankverbindung kann nicht hergestellt werden Datenbankprogrammierung 8
I SELECT bei Datenbankverbindung Datenbankprogrammierung 6
E Zuverlässige Datenbankverbindung Datenbankprogrammierung 4
B SQLite Java Login + Datenbankverbindung Datenbankprogrammierung 4
M Datenbankverbindung Access Datenbankprogrammierung 3
eskimo328 Datenbankverbindung ohne Passwort im Quelltext bei einer offline Anwendung Datenbankprogrammierung 14
Kenan89 Keine Datenbankverbindung möglich Datenbankprogrammierung 52
T Datenbankverbindung access funtioniert nicht Datenbankprogrammierung 21
K Problem mit Datenbankverbindung via Eclipse Datenbankprogrammierung 2
M Datenbankverbindung zu langsam beim Insert? Datenbankprogrammierung 6
E Datenbankverbindung mit Oracle JDBC und Eclipse Plugin Quantum db Datenbankprogrammierung 2
N Allg. Frage zur Datenbankverbindung Datenbankprogrammierung 2
C [MSSQL] Datenbankverbindung will nicht klappen... Datenbankprogrammierung 2
Hartigan Datenbankverbindung automatisch aktualisieren Datenbankprogrammierung 3
C MySQL Keine Datenbankverbindung Datenbankprogrammierung 6
D MySQL Datenbankverbindung scheitert Datenbankprogrammierung 9
A Datenbankverbindung mit einer Datenbank auf einem Webspace Datenbankprogrammierung 10
G Wie sieht eine Datenbankverbindung mit jndi aus? Datenbankprogrammierung 3
D Sicherheit für Datenbankverbindung Datenbankprogrammierung 19
MQue MySQL DatenbankVerbindung Datenbankprogrammierung 3
B Datenbankverbindung kann nicht aufgebaut werden. Datenbankprogrammierung 2
M Aus einem Applet eine Datenbankverbindung starten? Datenbankprogrammierung 26
G Datenbankverbindung mit Proxool aufrecht erhalten Datenbankprogrammierung 4
G iBatis Datenbankverbindung - DB-User übergeben Datenbankprogrammierung 4
J Warum ist es aufwendig eine Datenbankverbindung herzustellen Datenbankprogrammierung 3
E Datenbankverbindung verwalten Datenbankprogrammierung 6
J Fehler bei Oracle-Datenbankverbindung Datenbankprogrammierung 2
E Datenbankverbindung Java MySQL Exception Datenbankprogrammierung 10
K Datenbankverbindung zu MySQL in XAMPP Datenbankprogrammierung 11
M Dauerhafte Datenbankverbindung - Timeouts? Datenbankprogrammierung 4
timomeinen [Hibernate] Datenbankverbindung testen Datenbankprogrammierung 11
M Datenbankverbindung bricht nach ca. 12 Stunden Verbindung ab Datenbankprogrammierung 3
K Wann schließt ihr die Datenbankverbindung? Datenbankprogrammierung 7
E Datenbankverbindung von BIRT Datenbankprogrammierung 3
S Datenbankverbindung auslagen Datenbankprogrammierung 3
A Was passiert wenn eine Datenbankverbindung unterbricht Datenbankprogrammierung 7
D MySQL Connection richtig herstellen. Wie ? Datenbankprogrammierung 7
A Verbindung mit Access 2007 Datenbank herstellen Datenbankprogrammierung 1
J Verbindung zu Datenbank herstellen Datenbankprogrammierung 26
T MySQL Kann Verbindung zur MySQL Datenbank nicht herstellen. Datenbankprogrammierung 4
jeppi MySQL Design-Problem: DB-Verbindung herstellen und halten - JdbcRowSet / Idle-Timeout? Datenbankprogrammierung 9
S Schnellste Methode Datei aus Datenbank herstellen Datenbankprogrammierung 7
B MySQL Verbindung herstellen | ConnectException Datenbankprogrammierung 2
P jar-File auswählen und Verbindung herstellen Datenbankprogrammierung 5
H Kann keine Verbindung zur DB herstellen Datenbankprogrammierung 7
J Verbindung mit Interbase-Datenbank herstellen Datenbankprogrammierung 2

Ähnliche Java Themen

Neue Themen


Oben