Hallo,
ich bin leider absolut festgefahren und weiß nicht mehr weiter.
Im Studium muss ich im Datenbankenmodul über Java auf eine Datenbank zugreifen.
Code für den Zugriff auf ein Datenbank, die sich in einem extra Fenster öffnet und da Bearbeiten (Hinzufügen, Ändern, Löschen) lässt ist vorhanden. Ebenso wie alle Unterklassen.
Meine Aufgabe wäre das Erstellen der nötigen Tabellen in phpmyAdmin und der Zugriff über Java auf die Datenbank.
Theoretisch kann ich noch etlichen Malen der Neuinstallation und dem Zurücksetzen meines Laptops zumindest endlich aus dem Java Programm heraus endlich die Datenbank auf der extra Seite öffnen.
Der Zugriff auf phpmyAdmin läuft einfach nicht.
Eigentlich habe ich alle Schritte in dem Skript genau so verfolgt und alles eingestellt, dass es laufen sollte. Es läuft aber garnicht. Also Fehler definitiv bei mir. Ich weiß aber nicht wo.
Ist hier jemand, der mir dabei helfen könnte ?
Eventuell die Grundeinstellung nochmal erklären könnte ? Ich denke, dass es daran schon scheitert.
Wenn ich die Datei über RUN AS -> Run on Server laufen lasse bekomme ich keine Rückmeldung in der Console, die es theoretisch geben müsste.
Ich arbeite mit :
Java jdk 17.0.1
Eclipse IDE for Enterprise Java and WEB Developers
Tomcat 10.0 (empfohlen war 8.5 (damit lief garnichts)
mariadb-java-client 2.7.3
mariadb 10.6.5
Xampp
Google hat mir überhaupt garnicht geholfen.
Code Anfang zum Verbinden
[CODE lang="java" title="SQLDatabase Verbindung"]package database;
import java.util.List;
import model.Person;
import model.Projekt;
import model.Projektmitarbeit;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import jakarta.servlet.http.HttpServlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class test
*/
@WebServlet("/SQLDatabase")
public class SQLDatabase extends HttpServlet {
private Connection con = null;
private String dbAdresse = "localhost";
private String dbInstanz = "ea3";
private static SQLDatabase db;
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public SQLDatabase() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().append("Served at: ").append(request.getContextPath());
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
/**
* main Methode.
*
* @param s - not used
*
* @throws Exception
*/
public static void main(String[] s) throws Exception {
db = new SQLDatabase();
db.verbinden("Tamina", "2953");
db.verbindungAnalysieren();
db.getPersonal("Nr", "0*");
db.getProjekte("Nr");
db.verbindungTrennen();
}
/**
* Methode zum Verbinden mit der Datenbank.
*
* @param nutzer - Nutzername der Datenbank
* @param passwort - Passwort des Nutzers
*
* @throws ReflectiveOperationException
*/
public void verbinden(String nutzer, String passwort) throws ReflectiveOperationException {
try {
Class.forName("org.mariadb.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mariadb://" + dbAdresse + "/" + dbInstanz, nutzer, passwort);
} catch (SQLException e) {
ausnahmeAusgeben(e);
}
}
/**
* Methode zum Ausgeben der geworfenen Ausnahmen.
*
* @param e - SQLAusnahme
*/
private void ausnahmeAusgeben(SQLException e) {
while (e != null) {
System.err.println("Fehlercode: " + e.getErrorCode());
System.err.println("SQL State: " + e.getSQLState());
System.err.println(e);
e = e.getNextException();
}
}
/**
* Methoden zum Trennen der Verbindung zur Datenbank.
*
*/
public void verbindungTrennen() {
if (con == null) {
System.out.println("keine Verbindung vorhanden");
return;
}
try {
con.close();
} catch (SQLException e) {
ausnahmeAusgeben(e);
}
}
public void verbindungAnalysieren() {
if (con == null) {
System.out.println("keine Verbindung vorhanden");
return;
}
try {
DatabaseMetaData dbmd = con.getMetaData();
System.out.println("DB-Name: " + dbmd.getDatabaseProductName()
+ "\nDB-Version: " + dbmd.getDatabaseMajorVersion()
+ "\nDB-Release: " + dbmd.getDriverMinorVersion()
+ "\nTransaktionen erlaubt: " + dbmd.supportsTransactions()
+ "\nbeachtet GroßKlein: " + dbmd.storesMixedCaseIdentifiers()
+ "\nunterstützt UNION: " + dbmd.supportsUnion()
+ "\nmax. Prozedurname: " + dbmd.getMaxProcedureNameLength());
} catch (SQLException e) {
ausnahmeAusgeben(e);
}
}[/CODE]
Ich schätze ich habe ebenfalls Fehler in den .jsp Dateien, die vorher mitgegeben wurden ?
Das sind insgesamt aber mehr als 12 Dateien. Vielleicht kann ich die jemanden als Zip Datei zukommen lassen, der dort einmal drüber schaut.
Liebe Grüße und schonmal einen guten Rutsch !
ich bin leider absolut festgefahren und weiß nicht mehr weiter.
Im Studium muss ich im Datenbankenmodul über Java auf eine Datenbank zugreifen.
Code für den Zugriff auf ein Datenbank, die sich in einem extra Fenster öffnet und da Bearbeiten (Hinzufügen, Ändern, Löschen) lässt ist vorhanden. Ebenso wie alle Unterklassen.
Meine Aufgabe wäre das Erstellen der nötigen Tabellen in phpmyAdmin und der Zugriff über Java auf die Datenbank.
Theoretisch kann ich noch etlichen Malen der Neuinstallation und dem Zurücksetzen meines Laptops zumindest endlich aus dem Java Programm heraus endlich die Datenbank auf der extra Seite öffnen.
Der Zugriff auf phpmyAdmin läuft einfach nicht.
Eigentlich habe ich alle Schritte in dem Skript genau so verfolgt und alles eingestellt, dass es laufen sollte. Es läuft aber garnicht. Also Fehler definitiv bei mir. Ich weiß aber nicht wo.
Ist hier jemand, der mir dabei helfen könnte ?
Eventuell die Grundeinstellung nochmal erklären könnte ? Ich denke, dass es daran schon scheitert.
Wenn ich die Datei über RUN AS -> Run on Server laufen lasse bekomme ich keine Rückmeldung in der Console, die es theoretisch geben müsste.
Ich arbeite mit :
Java jdk 17.0.1
Eclipse IDE for Enterprise Java and WEB Developers
Tomcat 10.0 (empfohlen war 8.5 (damit lief garnichts)
mariadb-java-client 2.7.3
mariadb 10.6.5
Xampp
Google hat mir überhaupt garnicht geholfen.
Code Anfang zum Verbinden
[CODE lang="java" title="SQLDatabase Verbindung"]package database;
import java.util.List;
import model.Person;
import model.Projekt;
import model.Projektmitarbeit;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import jakarta.servlet.http.HttpServlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class test
*/
@WebServlet("/SQLDatabase")
public class SQLDatabase extends HttpServlet {
private Connection con = null;
private String dbAdresse = "localhost";
private String dbInstanz = "ea3";
private static SQLDatabase db;
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public SQLDatabase() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().append("Served at: ").append(request.getContextPath());
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
/**
* main Methode.
*
* @param s - not used
*
* @throws Exception
*/
public static void main(String[] s) throws Exception {
db = new SQLDatabase();
db.verbinden("Tamina", "2953");
db.verbindungAnalysieren();
db.getPersonal("Nr", "0*");
db.getProjekte("Nr");
db.verbindungTrennen();
}
/**
* Methode zum Verbinden mit der Datenbank.
*
* @param nutzer - Nutzername der Datenbank
* @param passwort - Passwort des Nutzers
*
* @throws ReflectiveOperationException
*/
public void verbinden(String nutzer, String passwort) throws ReflectiveOperationException {
try {
Class.forName("org.mariadb.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mariadb://" + dbAdresse + "/" + dbInstanz, nutzer, passwort);
} catch (SQLException e) {
ausnahmeAusgeben(e);
}
}
/**
* Methode zum Ausgeben der geworfenen Ausnahmen.
*
* @param e - SQLAusnahme
*/
private void ausnahmeAusgeben(SQLException e) {
while (e != null) {
System.err.println("Fehlercode: " + e.getErrorCode());
System.err.println("SQL State: " + e.getSQLState());
System.err.println(e);
e = e.getNextException();
}
}
/**
* Methoden zum Trennen der Verbindung zur Datenbank.
*
*/
public void verbindungTrennen() {
if (con == null) {
System.out.println("keine Verbindung vorhanden");
return;
}
try {
con.close();
} catch (SQLException e) {
ausnahmeAusgeben(e);
}
}
public void verbindungAnalysieren() {
if (con == null) {
System.out.println("keine Verbindung vorhanden");
return;
}
try {
DatabaseMetaData dbmd = con.getMetaData();
System.out.println("DB-Name: " + dbmd.getDatabaseProductName()
+ "\nDB-Version: " + dbmd.getDatabaseMajorVersion()
+ "\nDB-Release: " + dbmd.getDriverMinorVersion()
+ "\nTransaktionen erlaubt: " + dbmd.supportsTransactions()
+ "\nbeachtet GroßKlein: " + dbmd.storesMixedCaseIdentifiers()
+ "\nunterstützt UNION: " + dbmd.supportsUnion()
+ "\nmax. Prozedurname: " + dbmd.getMaxProcedureNameLength());
} catch (SQLException e) {
ausnahmeAusgeben(e);
}
}[/CODE]
Ich schätze ich habe ebenfalls Fehler in den .jsp Dateien, die vorher mitgegeben wurden ?
Das sind insgesamt aber mehr als 12 Dateien. Vielleicht kann ich die jemanden als Zip Datei zukommen lassen, der dort einmal drüber schaut.
Liebe Grüße und schonmal einen guten Rutsch !
Zuletzt bearbeitet: