Einzelne Spalte in MySQL-DB-Tabelle schreiben

N

nogod

Gast
Hallo,

wie kann ich eine einzelne Spalte und ihre Datensätze von einem Textfile in eine Tabelle schreiben? Die Tutorials, die ich fand, schreiben alle Datensätze rein, aber das möchte ich ja nicht.

Die Spalten des Textfiles sehen so aus, wovon ich lediglich die Spalte Nummer benötige:

Typ;Datum;Zeit;Version;Nummer;Angebot;Nachfrage;Preis;Verkaufspreis;Absatz;Prognose;Ort;Land

Wie mache ich das? Meine Datenbank heißt Cust und die Tabelle heißt CustNo1.

Danke euch.
 
N

nogod

Gast
Das funktioniert leider doch nicht so, wie ich mir das vorgestellt hatte..

Konkret sieht meine Datei so aus:

Nummer.dat

Code:
Typ;Datum;Zeit;Version;Nummer;Angebot;Nachfrage;Preis;Verkaufspreis;Absatz;Prognose;Ort;Land
A;01.10.2011;10:00:05,010;     ;3228.5;288;0;0;0;0;;;0
A;01.10.2011;10:00:05,520;     ;3134.5;1;0;0;0;0;;;0
A;01.10.2011;10:00:05,520;     ;3357;22;0;0;0;0;;;0
A;01.10.2011;10:00:05,520;     ;3643.5;4;0;0;0;0;;;0
A;01.10.2011;10:00:05,520;     ;3546;11;0;0;0;0;;;0

Hat vielleicht jemand ein Minimalbeispiel wie ich mit Java dieses Textfile als Tabelle in meiner Datenbank so wie sie ist anlegen kann?

Ich hab zwar einiges versucht, aber es nicht hinbekommen.
 
N

nogod

Gast
Deinen Tipp verstehe ich nicht und er bringt mir auch im Endeffekt nichts, da ich nach einem Minimalbeispiel fragte.

Das ist das, was ich versucht habe:

Java:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.SQLException;

@SuppressWarnings("unused")
public class AutomateImport
{
    public static void main(String[] args) 
    {
        DBase db = new DBase();
        Connection conn = db.connect(
    "jdbc:mysql://localhost:3306/nummer","root","root");
        db.importData(conn,"Nummer.dat");
    }

}

class DBase
{
    public DBase()
    {
    }

    public Connection connect(String db_connect_str, 
  String db_userid, String db_password)
    {
        Connection conn;
        try 
        {
            Class.forName(  
    "com.mysql.jdbc.Driver").newInstance();

            conn = DriverManager.getConnection(db_connect_str, 
    db_userid, db_password);
        
        }
        catch(Exception e)
        {
            e.printStackTrace();
            conn = null;
        }

        return conn;    
    }
    
    public void importData(Connection conn,String filename)
    {
        Statement stmt;
        String query;

        try
        {
            stmt = conn.createStatement(
    ResultSet.TYPE_SCROLL_SENSITIVE,
    ResultSet.CONCUR_UPDATABLE);

            query = "LOAD DATA INFILE '"+filename+
    "' INTO TABLE  (Typ,Datum,Zeit,Version,Nummer,Angebot,Nachfrage,Preis,Verkaufspreis,Absatz,Prognose,Ort,Land);";

            stmt.executeUpdate(query);
                
        }
        catch(Exception e)
        {
            e.printStackTrace();
            stmt = null;
        }
    }
};


Ich bekomme allerdings folgende Exception:
Java:
com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'typ' at row 1
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3564)
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3498)
	at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1959)
	at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2113)
	at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2562)
	at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1664)
	at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1583)
	at com.tm3.forecast.show.DBase.importData(AutomateImport.java:65)
	at com.tm3.forecast.show.AutomateImport.main(AutomateImport.java:17)

Außerdem ist es nicht genau das, was ich möchte. Ich möchte ja eben die Tabelle dynamisch aus dem .dat-File heraus erzeugen.

Wenn ich Dutzende solcher Files habe, dann ist es unsinnig jedesmal per Hand Tabellen in meiner Datenbank zu erzeugen. Kann mir jemand vielleicht helfen dies zu automatisieren?
 
M

Marcinek

Gast
Kettle von Penthaho kann das automatisieren.

Ansonsten hat deine erste spalte einen Wert der über den Wertebereich der Spalte in der Tabelle geht.

Beispiel: Du hast boolean (1/0) und du versuchst 2 einzutragen.

Gruß,

Martin
 

Deros

Bekanntes Mitglied
zum einen würde ich es mit "IGNORE 1 LINES" in deinem statement versuchen, damit er die erste zeile nicht versucht in die spalten zu quetschen. ausserdem glaube ich nicht das er im standard nach semikolon seperiert, das solltest du ihm vielleicht auch mitteilen. aber google ist dein freund, einfach mal den "LOAD DATA INFILE"-Befehlt vielleicht etwas genauer angucken
 

Jigga

Bekanntes Mitglied
was Marcinek mit seinem kommentar meinte:
du liest deine textdatei mit einer schleife zeilenweise ein.
jede zeile repräsentiert dabei einen deiner DB-Eintrag. daraus kannst du dir Objekte erstellen und mit diesen weiterarbeiten.
ansonsten, um nicht alle daten einzulesen sondern nur die spalte nummer, einfach nur bis zum gewünschten wert lesen und dann nächste zeile aufrufen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F MySQL Wie kann ich in Java Datensätze aus einer MySQL Datenbank gezielt in einzelne Arrays schreiben? Datenbankprogrammierung 9
K HSQLDB Einzelne Tabellen abfragen? Datenbankprogrammierung 4
M MySQL Einzelne Systeminformationen speichern Datenbankprogrammierung 2
turmaline [Hibernate] NamedQuery nur einzelne Felder Datenbankprogrammierung 3
T Einzelne Datenbankzeile schreibend sperren? Datenbankprogrammierung 11
F Einzelne Sql- Tabellen sichern (lokal) Datenbankprogrammierung 2
M DatabaseMetaData.getTables einzelne Tabelle Datenbankprogrammierung 6
A Eine einzelne Zeile schreibschützen im DataSet Datenbankprogrammierung 13
E Einzelne SQL Abfragen, oder alles zusammen? (veraendert!!!) Datenbankprogrammierung 11
berserkerdq2 Was genau muss ich bei date eingeben, wenn ich in Java eine Spalte definiere, die date ist? Datenbankprogrammierung 1
B Wie kopieren ich eine Spalte von einer Tabelle in eine andere Tabelle SQLite durch java code? Datenbankprogrammierung 26
pkm PostgreSQL Auf eine Spalte kann aus einem Teil der SQL-Aussage nicht zugegriffen werden Datenbankprogrammierung 3
J In einer bestimmten Spalte suchen mit Suchfeld (MS SQL) Datenbankprogrammierung 7
N SQL Datenbank Spalte in Java Array Datenbankprogrammierung 2
G Eine Spalte in xampp als Typ array erstellen - ein array mit "insert" hinzufügen. Datenbankprogrammierung 3
Dimax MySQL Trigger für eine Spalte Datenbankprogrammierung 5
Dimax MySQL Maximale Datenlänge für eine Spalte einer Datenbank in java ermitteln Datenbankprogrammierung 15
D Abfrage - Spalte(Datum) ändern (Oracle) Datenbankprogrammierung 7
S MySQL JTable zeigt nach Datenbankabfrage eine Spalte zu viel an Datenbankprogrammierung 0
L H2 Blob Spalte im Client anzeigen Datenbankprogrammierung 2
D UCanAccess / MS Access - Tabelle / Spalte vorhanden Datenbankprogrammierung 3
B SQL-Statement Prüfen ob eine Spalte einen Wert enthält Datenbankprogrammierung 2
E Wie kann man das Problem mit der BLOB-Spalte lösen? Datenbankprogrammierung 1
E Wie kann man mit einer ID-Spalte über eine Parameterübergabe auf eine Seite verweisen? Datenbankprogrammierung 17
A MySQL Tabelle ID abfragen und Spalte ausgeben Datenbankprogrammierung 4
T SQL-Statement Feld von Fremdschlüsseln als Spalte möglich? Datenbankprogrammierung 4
R MySQL berechnete Spalte im selben query weiterverwenden? Datenbankprogrammierung 4
J Datentyp der Spalte beim Datenbankdesign unbekannt Datenbankprogrammierung 12
G SQLite Abfrage, ob in Tabelle X Spalte Y existiert Datenbankprogrammierung 4
T ResultSet befehl für leere Spalte nicht lesen Datenbankprogrammierung 4
W MySQL Daten aus bestimmter Spalte lesen Datenbankprogrammierung 2
J Doppelte Daten in Spalte, nur die erste abrufen wie? Datenbankprogrammierung 15
Iron Monkey Insert into Spalte ID AUTO_INCREMENT Datenbankprogrammierung 7
W bestimmte Zeile mit bestimmter Spalte auslesen Datenbankprogrammierung 11
L Derby Dezimal-Spalte die Größe ändern Datenbankprogrammierung 2
J SQL Abfrage: Verschiedene Werte in einer Spalte mit einem Update Befehl? Datenbankprogrammierung 7
T Eintragung in einer Spalte nach Abfrage Datenbankprogrammierung 11
B Doppelte Zeilen einer Doppelten Spalte aus einer Tabelle entfernen. Datenbankprogrammierung 2
S ist DB Spalte Unique ? Datenbankprogrammierung 2
M MySQL: Spalte auf einmal füllen, ohne iterieren zu müssen Datenbankprogrammierung 4
M [Hibernate] Nachträgliches Hinzufügen einer Spalte Datenbankprogrammierung 7
A max Länge einer Spalte Datenbankprogrammierung 2
M Wie auf SQL-Spalte mit mehrdimensionalen Arrays zugreifen? Datenbankprogrammierung 5
T [SQL] Nicht MAX(spalte) sondern FIRST(spalte) Datenbankprogrammierung 23
S SQL: Spalte kopieren plus Wert erhöhen Datenbankprogrammierung 4
E 2 Tabellen anhand eine Spalte zusammenführen? Datenbankprogrammierung 5
J Eintrag aus der Spalte auswählen Datenbankprogrammierung 3
S Index einer editierten spalte? Datenbankprogrammierung 4
R Wie finde ich die längste Spalte der DB heraus Datenbankprogrammierung 2
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
TheSkyRider MySQL Datenbankzuordnung in Verbindung mit Java Datenbankprogrammierung 7
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

Ähnliche Java Themen

Neue Themen


Oben