MySQL Datenbankzuordnung in Verbindung mit Java

TheSkyRider

Mitglied
Hallo liebe Community,

Ich arbeite gerade mit der Java NetBeans IDE 8.2 und MySQL zusammen.
In meiner Datenbank habe ich folgende Tabelle mit folgenden Einträgen:

AktionsnameRessourcen benötigt
Aktion 1RSC1,RSC2,RSC2

Ich brauche also für eine bestimmte Aktion die ich ausführe (in diesem Falle Aktion 1) bestimmte Ressourcen, wobei RSC1 und RSC2 Ressourcenkategorien sind.
Ich habe hier mal demonstrativ "RSC1,RSC2" in einer Zelle geschrieben, aber ich weiß dass das nicht die beste Syntax ist.

Natürlich habe ich noch eine andere Tabelle die, die eigentlichen Ressourcen einer Kategorie zuordnet:

RessourcennameKategorie
TastaturRSC1
MausRSC1
InternetRSC2
OSRSC2

Was ich erreichen möchte ist, dass mir in einer Liste (z.B.: jList) einmal eine Ressource aus der Kategorie RSC1 (entweder Tastatur oder Maus)
und zwei Ressourcen aus der Kategorie RSC2 (in diesem Fall Internet und OS) für die Aktion1 vorgeschlagen werden.

Gibt es einen Weg in Java eine Datenbankabfrage so zu gestalten ?

Ich danke im Voraus für euere Tipps
 

Oneixee5

Top Contributor
Gibt es einen Weg in Java eine Datenbankabfrage so zu gestalten ?
Datenbankabfragen macht man nicht in Java sondern in SQL. Man kann mit Java beliebige SQL-Abfragen an die DB senden.
Du benötigst 3 Tabellen, Aktionen, Kategorien, und Ressourcennamen - jeweils mit ID-Spalte. Dann kannst du mit 2 weiteren Tabellen die 1:n -Beziehungen abbilden. Aktion-Kategorie und Kategorie-Ressourcenname.
 
Y

yfons123

Gast
MySQL liefert einen SQL Editor mit/kannst nach installieren bei dem du SQL Abfragen absetzen kannst

wenn du dann die Tabellen und ergebnisse hast wie du sie willst ist es komplett egal was du davor setzt, ob java oder c# oder python

diese übergeben dann den SQL Befehl um das ergebnis zu holen, oder du kannst auch noch weiter gehen und eine Stored Procedure ( "gespeicherte Funktion auf dem SQL Server" ) anlegen und von java aus nur noch die Stored Procedure aufrufen, damit hast du den SQL Code auf dem SQL Server und in java hast du nur noch den Namen der Stored Procedure ( mit den parametern )
 

Oneixee5

Top Contributor
Also so ist das bestimmt nicht perfekt aber mehr Informationen konnte ich der Frage nicht entnehmen.
@see: http://sqlfiddle.com/#!9/564294/5
SQL:
CREATE TABLE IF NOT EXISTS `aktionen` (
  `id` int(6) unsigned NOT NULL,
  `name` varchar(200) NOT NULL,
  PRIMARY KEY (`id`)
) DEFAULT CHARSET=utf8;

INSERT INTO `aktionen` (`id`, `name`) VALUES
  ('1', 'Aktion 1');
 
CREATE TABLE IF NOT EXISTS `kategorien` (
  `id` int(6) unsigned NOT NULL,
  `name` varchar(200) NOT NULL,
  PRIMARY KEY (`id`)
) DEFAULT CHARSET=utf8;

INSERT INTO `kategorien` (`id`, `name`) VALUES
  ('1', 'RSC1'),
  ('2', 'RSC2'),
  ('3', 'RSC3');
 
CREATE TABLE IF NOT EXISTS `ressourcen` (
  `id` int(6) unsigned NOT NULL,
  `name` varchar(200) NOT NULL,
  PRIMARY KEY (`id`)
) DEFAULT CHARSET=utf8;

INSERT INTO `ressourcen` (`id`, `name`) VALUES
  ('1', 'Tastatur'),
  ('2', 'Maus'),
  ('3', 'Internet'),
  ('4', 'OS'),
  ('5', 'Notebook');
 
CREATE TABLE IF NOT EXISTS `aktionen_kategorien` (
  `a_id` int(6) unsigned NOT NULL,
  `k_id` int(6) unsigned NOT NULL,
  PRIMARY KEY (`a_id`, `k_id`),
  FOREIGN KEY (`a_id`) REFERENCES `aktionen`(id),
  FOREIGN KEY (`k_id`) REFERENCES `kategorien`(id)
) DEFAULT CHARSET=utf8;

INSERT INTO `aktionen_kategorien` (`a_id`, `k_id`) VALUES
  ('1', '1'),
  ('1', '2'),
  ('1', '3');
 
CREATE TABLE IF NOT EXISTS `kategorien_ressourcen` (
  `k_id` int(6) unsigned NOT NULL,
  `r_id` int(6) unsigned NOT NULL,
  PRIMARY KEY (`k_id`, `r_id`),
  FOREIGN KEY (`k_id`) REFERENCES `kategorien`(id),
  FOREIGN KEY (`r_id`) REFERENCES `ressourcen`(id)
) DEFAULT CHARSET=utf8;

INSERT INTO `kategorien_ressourcen` (`k_id`, `r_id`) VALUES
  ('1', '1'),
  ('1', '2'),
  ('2', '3'),
  ('2', '4');

SQL:
SELECT
  a.name "Aktion", k.name "Kategorie", r.name "Ressource"
FROM `aktionen` a
  inner join `aktionen_kategorien` ak on ak.a_id = a.id
  inner join `kategorien` k on k.id = ak.k_id
  inner join `kategorien_ressourcen` kr on kr.k_id = k.id
  inner join `ressourcen` r on r.id = kr.r_id
WHERE a.id = 1
Ergebnis der Abfrage:
1671711357788.png
 

TheSkyRider

Mitglied
Datenbankabfragen macht man nicht in Java sondern in SQL. Man kann mit Java beliebige SQL-Abfragen an die DB senden.
Du benötigst 3 Tabellen, Aktionen, Kategorien, und Ressourcennamen - jeweils mit ID-Spalte. Dann kannst du mit 2 weiteren Tabellen die 1:n -Beziehungen abbilden. Aktion-Kategorie und Kategorie-Ressourcenname.
Hallo Oneixee5,

ich danke dir für deine Antwort aber das Problems das ich habe ist, dass ich Aktion1 nicht einer bestimmten Ressource zuteilen kann
sondern nur einer Kategorie.
Bitte verzeiht mir, dass ich nicht ausführlich genug war in meiner Problembeschreibung.

Mein eigentliches Endergebnis soll sein, dass für eine Aktion eine bestimmte Menge von Ressourcen aus einer Kategorie
vorgeschlagen werden soll (z.B.: Tastatur oder Maus) aber eine bestimmte Ressource kann zum Beispiel an dem Zeitpunkt
nicht verfügbar sein (z.B.: Tastatur verfügbar aber Maus gerade nicht).
Dann müsste also das andere verfügbare Mittel (in dem Fall Tastatur) vorgeschlagen werden.

Eigentlich arbeite ich an einem Leitstellenprogramm und es geht darum, dass ich für ein bestimmtes Einsatzstichwort (zum Beispiel Feuer
klein) ein Fahrzeug aus der Kategorie "Löschfahrzeug" vorgeschlagen bekomme.
Jedoch gibt es mehrere Fahrzeuge die dieser Kategorie entsprechen, wenn alle Verfügbar sind, wird vom Programm letzten Endes
das Fahrzeug vorschlagen, das am nähersten am Einsatzort dran ist.

Das mit der Entfernungsbestimmungen (wahrscheinlich dann Haversine-Formel oder so) wollte ich aber nocht nicht reinbringen.

Ich weiß es klingt sehr kompliziert aber ich bin sehr dankbar wenn mir jemand damit helfen kann.
 

Oneixee5

Top Contributor
Weiterhin kannst du der Tabelle 'ressourcen' Spalten für GPS/Galileo-Koordinaten oder Gemeindeschlüssel hinzufügen. Wenn man der Abfrage noch die Koordinaten für den Einsatzort mitgibt könnte automatisch die nähesten eins, zwei oder x Ressourcen zurückgeben werden
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Juelin Java und MySQL MariaDB - WHERE-Klausel Datenbankprogrammierung 17
W MySQL-Connector funktioniert nicht über WLAN -> MacOS Datenbankprogrammierung 10
Juelin MySQL Datenbankmit glassfish und Netbeans Datenbankprogrammierung 18
Auf MySql Datenbank zugreifen funktioniert nicht Datenbankprogrammierung 8
Warum funktioniert MySQL nicht Datenbankprogrammierung 8
M MySQL Datenbank in Array Datenbankprogrammierung 2
P MySQL- Neues Passwort Datenbankprogrammierung 1
btwX28 mysql abfrage über phpmyadmin Datenbankprogrammierung 8
sserio SQL oder MySQL Datenbankprogrammierung 44
OnDemand Mysql Query Builder Datenbankprogrammierung 1
Z MySQL "Too many connections" auch nach schliessen der Connections. Datenbankprogrammierung 10
yakazuqi MySQL MySQL Connection reset Datenbankprogrammierung 7
OnDemand MySql Foreign Key nötig oder unnötig Datenbankprogrammierung 3
M Mysql Views und Hibernate Caching Datenbankprogrammierung 4
W MYSQL Datenbank Login Android Datenbankprogrammierung 3
OnDemand MySQL und mongoDB wann macht was Sinn? Datenbankprogrammierung 11
bueseb84 Spring Boot : Update Mysql Datenbank Datenbankprogrammierung 1
Avalon Attribute werden mit Unterstrich in eine MySQL Datenbank eingetragen Datenbankprogrammierung 10
D MYSQL goorm IDE - Wie speichern? Datenbankprogrammierung 0
OnDemand Mysql UPDATE if condition Datenbankprogrammierung 14
D MySQL Geburtsdatum per KW abfragen Datenbankprogrammierung 1
C Java MySQL check if value exists in database Datenbankprogrammierung 2
H Fehler bei getConnection zu MySQL Datenbank Datenbankprogrammierung 18
J MySQL - Primary Key Date,Time vs ID Datenbankprogrammierung 16
ruutaiokwu MySQL: Messwerte, welche stagnieren interpolieren? Datenbankprogrammierung 2
S Datenbank MySQL und Java Datenbankprogrammierung 8
Thallius MySQL JDBC auf Linux Server zu mySQL DB auf anderem Linux Server wirft Access denied Datenbankprogrammierung 5
P Adressadministration mit Java und mySQL Datenbankprogrammierung 14
D MySQL Abfrage Datenbankprogrammierung 5
D MySQL Abfrage sortieren Datenbankprogrammierung 4
platofan23 MySQL Java Programm findet Treiber für mySQL auf Debian-Server nicht? Datenbankprogrammierung 11
J MySQL MySQL Risiken bei Stromausfall minimieren Datenbankprogrammierung 9
D MySQL Abfrage SUM datediff Datenbankprogrammierung 3
H MySQL MySQL - Keine Verbindung zur Datenbank?! Datenbankprogrammierung 4
G MySQL Problem mit MySQL verbindung Datenbankprogrammierung 8
X MySQL Java hat keinen Zugriff auf MySQL Datenbankprogrammierung 9
Z [JDBC][MYSQL] Access denied Datenbankprogrammierung 7
D MySQL Connection richtig herstellen. Wie ? Datenbankprogrammierung 7
D Multiple Connection mit MySQL Datenbankprogrammierung 4
D MySQL Eibinden des "mysql-connector" in eine fertige Jar Datenbankprogrammierung 3
L MySQL Android zu externer MySQL Datenbank verbinden Datenbankprogrammierung 5
P Daten in eine mySQL Datenbank einfügen Datenbankprogrammierung 4
D MySQL Zeilen kumulieren Datenbankprogrammierung 8
D MySQL Abfrage mit kumulierten Werten Datenbankprogrammierung 16
K Servlet-MySQL DB Datenbankprogrammierung 2
X MySQL Json String in MySQL einfügen. Datenbankprogrammierung 20
OnDemand Update auf Mysql läuft nicht durch Datenbankprogrammierung 30
K Java Object mit Hibernate in MySQL abspeichern Datenbankprogrammierung 1
D Datumsformat aus MySQL ändern Datenbankprogrammierung 15
G MySQL Java Problem: Nullpointer Exception obwohl Daten vorhanden sind? Datenbankprogrammierung 2
K MySQL LAN-MySQL Server mit XAMPP Datenbankprogrammierung 2
R ERModel der Datebanken (ORACLE,MySQL,MS-SQL usw) Datenbankprogrammierung 4
X MySQL In MySQL Funktionen erstellen, wenn Zelle leer dann andere Zelle ändern? Datenbankprogrammierung 9
K Anfängerfrage CSV in MySQL Datenbankprogrammierung 41
I MySQL Wert nachträglich bearbeiten Datenbankprogrammierung 1
N MySQL Datenbank lokal Datenbankprogrammierung 3
B MySQL: Port ändern über GUI? Wo und wie Port ändern? Datenbankprogrammierung 0
B MySQL installieren - silent / User anlegen Datenbankprogrammierung 3
X MySQL Verbindungdsaufbau MySql auf Ubuntu-Server Datenbankprogrammierung 10
F MySQL Wie kann ich in Java Datensätze aus einer MySQL Datenbank gezielt in einzelne Arrays schreiben? Datenbankprogrammierung 9
P MySQL JPA / MySQL - Fehler bei type=innoDB Datenbankprogrammierung 8
M MySQL MySQL DATETIME-Import Datenbankprogrammierung 9
P MySQL Connection Global Datenbankprogrammierung 13
J mySQL- Java Application - Zugriff über Internet Datenbankprogrammierung 3
P MySQL-Verbindung in anderer Klasse nutzen Datenbankprogrammierung 2
D JavaFX Anwendung zugriff auf MySQL DB. Datenbankprogrammierung 2
D MySQL Grundsätzliche Fragen zu MySQL Datenbankprogrammierung 3
B MySQL LogIn Daten im Code verstecken Datenbankprogrammierung 3
M MySQL-Syntax-Fehler Datenbankprogrammierung 1
M In MySql Datenbank schreiben Datenbankprogrammierung 6
D mySQL Timestamp in RegularTimePeriod bzw Second Datenbankprogrammierung 3
H SHOW Tables in Java/MySQL Datenbankprogrammierung 8
windl MySQL und HSQLDB Datenbankprogrammierung 4
S Anbindung zur mysql von mit Swing und AWT Datenbankprogrammierung 22
F MySQL+ Netbeans: Datenbanken mit Automatisch generierten Entity Classes get und set Datenbankprogrammierung 2
I MySQL Hibernate / MySQL alias in WHERE clause Datenbankprogrammierung 1
C MYSQL kann wert nicht eintragen Datenbankprogrammierung 3
D Aktualisierung einer ListView mit Daten aus MySQL-DB Datenbankprogrammierung 5
F BPlaced MySql Datenbank ansprechen Datenbankprogrammierung 5
S MySQL MySQL will einfach nicht, bitte um Rat Datenbankprogrammierung 4
M MySQL Datenbank durchsuchen Datenbankprogrammierung 5
Z MySQL mysql Facharbeit: Tipps und Ideen gesucht Datenbankprogrammierung 5
dat_vin JavaFX Datenbankverbindung über JPA und MySQL Error Datenbankprogrammierung 0
K MySQL Datenbank 2facher Zugriff Datenbankprogrammierung 1
Z MySQL Shopsystem mit mysql und Java Datenbankprogrammierung 8
S [MySQL] Topliste Datenbankprogrammierung 2
H Datenbank-Anbindung Java/MySQL Datenbankprogrammierung 2
T MySQL MySQL - Insert into fügt zwei identische Datensätze ein Datenbankprogrammierung 2
A Eine MySQL Zeile mit JDBC löschen Datenbankprogrammierung 5
J Dateien in MySQL speichern & indizieren Datenbankprogrammierung 2
B MySQL MySQL-Abfrage von aufsummierter Zeit Datenbankprogrammierung 3
K MySQL Datenbankbackups Datenbankprogrammierung 5
P MySQL INSERT / UPDATE MySQL - perStoredProcedure oder direkt im Code Datenbankprogrammierung 3
kaoZ HyperSQL vs. MYSQL Datenbankprogrammierung 4
L JSONArray/JSONObject MySQL-Servlet Abfrage Datenbankprogrammierung 2
V Internationalization mit MySql Datenbankprogrammierung 1
K Adressverwaltung mit MySql und Java? Datenbankprogrammierung 11
M Java Mysql verbinden Datenbankprogrammierung 3
L Zugriff auf lokal gespeicherte mySQL Datenbank Datenbankprogrammierung 3
L MySQL App/Java Zugriff auf Mysql-DB funktioniert nicht Datenbankprogrammierung 1

Ähnliche Java Themen

Neue Themen


Oben