Problem mit INSERT INTO

Status
Nicht offen für weitere Antworten.

Der Programmierer

Aktives Mitglied
Hi leutz,
ich habn kleines Problem mit ner Access Datenbank.


Code:
			try{
				datenmenge = befehl.executeQuery("INSERT INTO Personen(Name, Alias, Größe, Rasse, Lieblingswaffe, Sternzeichen, Geburtsdatum, Beschreibung) VALUES(neue_person.name,neue_person.alias, neue_person.size, neue_person.race, neue_person.weapon, neue_person.star_sign, neue_person.date, neue_person.descripton);");

			}
			catch(Exception err)
			{
				err.printStackTrace();
			}

Der Compiler sagt mir dass er 8 Parameter erwartet aber er keine 8 bekäme!
Allerdings sind beides 8 Felder.
(Alle neue_person Variabeln sind Strings!)

Das ist meine erste Clientanwendung also habt bitte etwas Nachsicht ;-)

Schonmal danke im vorraus für eure Hilfe :)

Der Programmierer :D
 
G

Gast

Gast
das wundert mich jetzt das der compiler deine sqlstatements überprüft ;)

du darfst natürlich nicht z.B. neue_person.name als String in die Anfrage schreiben:

"VALUES("+neue_person.name+","+...
 

André Uhres

Top Contributor
Bei MS Access ist das Semicolon wohl nicht nötig,
aber einige Datenbankprogramme verlangen es am Ende jedes SQL Statements.
 

André Uhres

Top Contributor
Der Programmierer hat gesagt.:
das mit dem Semikolon steht so in meinem Buch und
wie soll ich sonst die Strings übergeben als als normale Strings halt?
Du musst Strings und Variablen mit + aneinanderketten. Siehe oben Beitrag von Gast.
 

Der Programmierer

Aktives Mitglied
So also?:

Code:
			datenmenge = befehl.executeQuery("INSERT INTO Personen(Name, Alias, Größe, Rasse, Lieblingswaffe, Sternzeichen, Geburtsdatum, Beschreibung) VALUES("+neue_person.name+","+neue_person.alias+","+ neue_person.size+","+ neue_person.race+", "+neue_person.weapon+", "+neue_person.star_sign+","+ neue_person.date+","+ neue_person.descripton+");");


Denn seltsamerweiße gehts so nich
 

Der Programmierer

Aktives Mitglied
^^
Ich dachte ich hab bestimmt nen sehr offensichtlichen ehler gemacht.

Um genau zu sein sagt mir der COmpilier er würden 3 Parameter erwartet aber zu wenige übergeben!
Aber der gibt dauernd ne andere Zahl an erwartenden Parametern aus. Mal erwartet er 6 mal 2 und jetzt 3.
 
R

Roar

Gast
wenn du selber nicht mit den fehlermeldungen klarkommst, poste doch wenigstens was dein "compiler" dir sagt, dann kann dir auch jemand helfen.

im übrigen geht das so oder so nicht. mit executeQuery sendest du eine SELECT! und kein insert dafür gibts executeUpdate(
 

Der Programmierer

Aktives Mitglied
Ich hab jetzt executeUpdate benutzt und jetzt bekomm ich dieses Error:



Ich werde nicht ganz Schlau daraus.

Code:
	datenmenge = befehl.executeUpdate("INSERT INTO Personen(Name, Alias, Größe, Rasse, Lieblingswaffe, Sternzeichen, Geburtsdatum, Beschreibung) VALUES("+neue_person.name+","+neue_person.alias+","+ neue_person.size+","+ neue_person.race+", "+neue_person.weapon+", "+neue_person.star_sign+","+ neue_person.date+","+ neue_person.descripton+")");
 
G

Guest

Gast
Schau dir die Beschreibung zu executeUpdate in der API-Doku an. Insbesondere den Rückgabetypen.
 

Der Programmierer

Aktives Mitglied
der Rückgabewert ist ein Integer denn ich momentan erstmal ignoriere da ich ihn nicht brauche

Also einfach so
befehl.executeUpdate("INSERT INTO Personen(Name, Alias, Größe, Rasse, Lieblingswaffe, Sternzeichen, Geburtsdatum, Beschreibung) VALUES("+neue_person.name+","+neue_person.alias+","+ neue_person.size+","+ neue_person.race+", "+neue_person.weapon+","+neue_person.star_sign+","+ neue_person.date+","+ neue_person.descripton+")");

Hilft mir aber trotzdem nicht ich bekomme immer noch Errors:



Bitte um weiter Hilfe und schon mal danke für eure Hilfe bisher
Der Programmierer


PS: Tut mir leid wenn ich mich etwas dumm anstelle!
 
G

Guest

Gast
Könnte daran liegen, dass zwei der Felder in neue_person null sind.
Verwenmde am besten PreparedStatment
So ungefähr (die Hilfsklasse DBUtil kannst du erweitern, wenn du noch andere Typen verwendest)
Code:
Connection con = null;
PreparedStatement stmt = null;
try
{
   con = ...
   stmt = con.prepareStatement(
      "INSERT INTO Personen(Name, Alias, Größe, Rasse, Lieblingswaffe, Sternzeichen, "
     +"Geburtsdatum, Beschreibung) VALUES(?, ?, ?, ?, ?, ?, ?, ?) "
   );

   DBUtil.setValue(1, stmt, neue_person.name);
   DBUtil.setValue(2, stmt, neue_person.alias);
   DBUtil.setValue(3, stmt, neue_person.size);
   DBUtil.setValue(4, stmt, neue_person.race);
   DBUtil.setValue(5, stmt, neue_person.weapon);
   DBUtil.setValue(6, stmt, neue_person.star_sign);
   DBUtil.setValue(7, stmt, neue_person.date);
   DBUtil.setValue(8, stmt, neue_person.descripton);

   if(stmt.executeUpdate() != 1)
   {
      Fehler
   }
}
catch(SQLException e)
{
  // Fehlerbehandlung
}
finally
{
   if(stmt != null)
   {
      try { stmt.close(); } catch(SQLException e) { /*Fehlerbehandlung*/ }
   }
   if(con != null)
   {
     try { con.close(); } catch(SQLException e) { /*Fehlerbehandlung*/ }
   }
}

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

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;

public final class DBUtil
{
   private DBUtil() {}

   public static String getString(ResultSet rs, String fieldName) throws SQLException
   {
      String stringValue = rs.getString(fieldName);
      return !rs.wasNull()? stringValue : null;
   }

   public static Boolean getBoolean(ResultSet rs, String fieldName) throws SQLException
   {
      boolean booleanValue = rs.getBoolean(fieldName);
      return !rs.wasNull()? Boolean.valueOf(booleanValue) : null;
   }

   public static Integer getInteger(ResultSet rs, String fieldName) throws SQLException
   {
      int intValue = rs.getInt(fieldName);
      return !rs.wasNull()? Integer.valueOf(intValue) : null;
   }

   public static Double getDouble(ResultSet rs, String fieldName) throws SQLException
   {
      double doubleValue = rs.getDouble(fieldName);
      return !rs.wasNull()? Double.valueOf(doubleValue) : null;
   }

   public static Float getFloat(ResultSet rs, String fieldName) throws SQLException
   {
      float floatValue = rs.getFloat(fieldName);
      return !rs.wasNull()? Float.valueOf(floatValue) : null;
   }

   public static java.util.Date getDate(ResultSet rs, String fieldName) throws SQLException
   {
      java.sql.Date dateValue = rs.getDate(fieldName);
      return !rs.wasNull()? new java.util.Date(dateValue.getTime()) : null;
   }

   public static void setValue(int index, PreparedStatement stmt, String value) throws SQLException
   {
      if( value != null )
         stmt.setString(index, value);
      else
         stmt.setNull(index, Types.VARCHAR);
   }

   public static void setValue(int index, PreparedStatement stmt, Boolean value) throws SQLException
   {
      if( value != null )
         stmt.setBoolean(index, value.booleanValue());
      else
         stmt.setNull(index, Types.BOOLEAN);
   }

   public static void setValue(int index, PreparedStatement stmt, boolean value) throws SQLException
   {
      setValue(index, stmt, Boolean.valueOf(value) );
   }

   public static void setValue(int index, PreparedStatement stmt, Integer value) throws SQLException
   {
      if( value != null )
         stmt.setInt(index, value.intValue());
      else
         stmt.setNull(index, Types.INTEGER);
   }

   public static void setValue(int index, PreparedStatement stmt, int value) throws SQLException
   {
      setValue(index, stmt, Integer.valueOf(value));
   }

   public static void setValue(int index, PreparedStatement stmt, Double value) throws SQLException
   {
      if( value != null )
         stmt.setDouble(index, value.doubleValue());
      else
         stmt.setNull(index, Types.DOUBLE);
   }

   public static void setValue(int index, PreparedStatement stmt, double value) throws SQLException
   {
      setValue(index, stmt, Double.valueOf(value));
   }

   public static void setValue(int index, PreparedStatement stmt, Float value) throws SQLException
   {
      if( value != null )
         stmt.setFloat(index, value.floatValue());
      else
         stmt.setNull(index, Types.FLOAT);
   }

   public static void setValue(int index, PreparedStatement stmt, float value) throws SQLException
   {
      setValue(index, stmt, Float.valueOf(value));
   }

   public static void setValue(int index, PreparedStatement stmt, java.util.Date value) throws SQLException
   {
      if( value != null )
         stmt.setDate(index, new java.sql.Date(value.getTime()));
      else
         stmt.setNull(index, Types.DATE);
   }

}
 

DP

Top Contributor
string und date-werte werden mit hochkomma gesetzt.

Code:
insert into tab (n1, s1) values(0, 'toll')

oder per preparedstatement mit setString(int i, String s);

3527703217.01._SS500_SCLZZZZZZZ_V48778961_.jpg
 

DP

Top Contributor
Anonymous hat gesagt.:

ich würde es noch komplizierter machen und die werte bitweise per morser in die tabelle schicken :autsch:

Code:
pstmt = con.prepareStatement("INSERT INTO Personen(Name, Alias, Größe, Rasse, Lieblingswaffe, Sternzeichen, Geburtsdatum, Beschreibung) VALUES(?, ?, ?, ?, ?, ?, ?, ?)");

pstmt.setString(1, name);
pstmt.setString(2, alias);
.
.
.
.

pstmt.execute();

und feierabend.
 

Der Programmierer

Aktives Mitglied
Ähm vielen dank aber irgendwie klappt es immer noch nicht ganz!
Ich hab den Code genauso wie du gepostet hast. Natürlich die variabelnnamen angepasst aber er sagt:

"Operation muss eine aktualisierte Abfrage verwenden"
Code:
				PreparedStatement pstmt = verbindung.prepareStatement("INSERT INTO Personen(Name, Alias, Größe, Rasse, Lieblingswaffe, Sternzeichen, Geburtsdatum, Beschreibung) VALUES(?,?,?,?,?,?,?,?)"); 
				pstmt.setString(1, neue_person.name);
				pstmt.setString(2, neue_person.alias); 
				pstmt.setString(3, neue_person.size);
				pstmt.setString(4, neue_person.race); 
				pstmt.setString(5, neue_person.weapon);
				pstmt.setString(6, neue_person.star_sign); 
				pstmt.setString(7, neue_person.date);
				pstmt.setString(8, neue_person.descripton);

				pstmt.execute();
 

Der Programmierer

Aktives Mitglied
ich habs mal so getestet um auszuschließen, dasss es an den String liegt!

Code:
      try{
            pstmt = verbindung.prepareStatement("INSERT INTO Personen(Name, Alias, Größe, Rasse, Lieblingswaffe, Sternzeichen, Geburtsdatum, Beschreibung) VALUES(?,?,?,?,?,?,?,?)");
            pstmt.setString(1, "TEST");
            pstmt.setString(2,"TEST");
            pstmt.setString(3, "TEST");
            pstmt.setString(4, "TEST");
            pstmt.setString(5, "TEST");
            pstmt.setString(6, "TEST");
            pstmt.setString(7, "TEST");
            pstmt.setString(8, "TEST");

            pstmt.executeUpdate();

        
      }
      catch(Exception err)
      {
        err.printStackTrace();
      }

Aber das klappt auch nicht. Da steht immer noch, dass eine aktualisierte Anfrage verwendet werden muss!
Kann mir niemand helfen?

Schonmal vielen dank im vorraus!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Problem with INSERT.............ON DUPLICATE KEY Datenbankprogrammierung 3
W Problem mit Insert in zwei Tabellen Datenbankprogrammierung 8
M INSERT-Problem = integrity constraint violation: foreign key no parent Datenbankprogrammierung 5
W Problem bei Insert mit JDBC auf MS-SQL-Server 2005 Datenbankprogrammierung 7
D Problem: Prepared Statement (Insert) funktioniert nicht. Datenbankprogrammierung 3
EagleEye INSERT INTO Problem mit HSQLDB Datenbankprogrammierung 8
R "insert into" - Problem Datenbankprogrammierung 3
R Select und Insert in Schleife - Problem mit ResultSet Datenbankprogrammierung 2
C Problem mit Treiber? insert into Befehl geht nicht Datenbankprogrammierung 5
L SQL-Problem: Insert wird nicht ausgeführt Datenbankprogrammierung 5
L INSERT INTO - Problem unter Java Datenbankprogrammierung 8
M Problem mit Insert-Statements/ PreparedStatements Datenbankprogrammierung 6
J PC-Start Problem JDBC Connection Datenbankprogrammierung 10
C Problem mit Apache Poi Datenbankprogrammierung 6
N HSQLDB Problem mit Eclipselink in runnable Jar Datenbankprogrammierung 10
P GroupLayout-Problem Datenbankprogrammierung 12
F XAMPP max connections problem Datenbankprogrammierung 6
C MySQL Problem in phpMyAdmin Oberfläche Datenbankprogrammierung 5
C Problem with insertion in database. Datenbankprogrammierung 7
F Problem mit Hibernate c3p0 Datenbankprogrammierung 2
G MySQL Problem mit MySQL verbindung Datenbankprogrammierung 8
A kleines Problem Datenbankprogrammierung 6
T Problem mit Datenbankverbindung Datenbankprogrammierung 22
V Derby/JavaDB updateRow Problem Datenbankprogrammierung 0
G MySQL Java Problem: Nullpointer Exception obwohl Daten vorhanden sind? Datenbankprogrammierung 2
Nuiton EmbeddedDriver Problem Datenbankprogrammierung 6
A MongoDB Passwort Problem Datenbankprogrammierung 0
O HSQLDB Hibernate Criteria Problem Datenbankprogrammierung 3
F MySQL JDBC Problem Datenbankprogrammierung 5
Anfänger2011 Datenbankstruktur/aufbau (theoretisches Problem) Datenbankprogrammierung 5
M Derby/JavaDB Drop Database problem Datenbankprogrammierung 3
M Derby/JavaDB NOT LIKE problem Datenbankprogrammierung 19
N HSQLDB Problem mit EntityManager Datenbankprogrammierung 7
B MySQL JPAContainer Problem Datenbankprogrammierung 4
K Eclipse Apache Derby Treiber Problem Datenbankprogrammierung 4
C Problem oder Denkfehler mit H2-Database Datenbankprogrammierung 3
E Wie kann man das Problem mit der BLOB-Spalte lösen? Datenbankprogrammierung 1
M Problem mit jcouchdb und CouchDB - UTF8 kein gültiger Zeichentyp Datenbankprogrammierung 4
T MySQL Problem mit Datenbankanbindung Datenbankprogrammierung 4
P SQL Query Problem Datenbankprogrammierung 14
A MySQL Problem bei Tabelle ausgeben Datenbankprogrammierung 3
Q MySQL JDBC-Treiber Problem Datenbankprogrammierung 2
B SQLite Problem bei Planung der Datenbank [Jeopardy] Datenbankprogrammierung 3
A Problem mit dem Import und Export von Bildern Datenbankprogrammierung 4
P Oracle Problem mit Umlauten Datenbankprogrammierung 9
A Problem mit Create-Statement Datenbankprogrammierung 9
D Problem mit COLUMN_IDENTIFIERS Datenbankprogrammierung 8
Bluedaishi MySQL Abfrage Problem :-) Datenbankprogrammierung 21
M Problem mit mehreren Datasourcen Datenbankprogrammierung 3
R Resultset.last() Problem Datenbankprogrammierung 12
M Problem GroupBy Datenbankprogrammierung 3
S CURRENT_DATE problem Datenbankprogrammierung 2
M Problem mt JPA Id-Generators Datenbankprogrammierung 18
Gossi Oracle Problem mit group by... Datenbankprogrammierung 22
M MySQL SQL Abfrage Problem Datenbankprogrammierung 6
R MS-SQL Express Login-Problem Datenbankprogrammierung 8
P Lazy-Fetchig und Session-Problem mit Hibernate Datenbankprogrammierung 4
N HSQLDB Problem beim Treiberladen im Jar Datenbankprogrammierung 6
M Problem beim Erstellen einer Query Datenbankprogrammierung 7
C Hibernate ManyToMany zusammengesetzter Primärschlüssel, problem. Datenbankprogrammierung 3
M Problem mit HQL Syntax Datenbankprogrammierung 5
K Db4o Delete Problem Datenbankprogrammierung 11
Mike90 Deadlock/Lock Problem Datenbankprogrammierung 4
T Access 32bit on Win7 64Bit ODBC Problem Datenbankprogrammierung 1
C unverständliches DB Problem (Es ist kein temporärer Systemtabellenbereich mit einer ausreichenden..) Datenbankprogrammierung 5
S ODBC Treiber Problem/oder unvermögen Datenbankprogrammierung 18
J Problem bei Boolean in PreparedStatement Datenbankprogrammierung 5
C MySQL Problem mit UPDATE Abfrage Datenbankprogrammierung 13
C Problem mit SQL-Abfrage Datenbankprogrammierung 5
K Problem mit Datenbankverbindung via Eclipse Datenbankprogrammierung 2
A Problem mit Eintragen von Daten in eine Datenbank mittels DAO Datenbankprogrammierung 4
S Oracle Problem mit PreparedStatement.setString(1,"str") Datenbankprogrammierung 10
B MySQL Problem mit Datenbankanbindung an MySQL Datenbankprogrammierung 2
N Problem bei Erstellung eines Index Datenbankprogrammierung 12
C Hibernate Property-Problem Datenbankprogrammierung 5
J MyBatis - Update Problem Datenbankprogrammierung 4
S JPA: Problem mit Update von Daten Datenbankprogrammierung 7
c_sidi90 Hibernate Problem Table doesnt excist Datenbankprogrammierung 8
M Problem mit JPA - OneToMany-Relation Datenbankprogrammierung 3
I Hibernate: Composite Foreign Key Problem Datenbankprogrammierung 14
S JPA OptimisticLocking Problem Datenbankprogrammierung 11
I Derby/JavaDB Problem mit Befüllung von Tabelle Datenbankprogrammierung 7
JavaKaffee Derby/JavaDB Quartz-WebAnwendung - Connection/Treiber Problem Datenbankprogrammierung 47
I Problem mit ResultSet Datenbankprogrammierung 2
L Excel in MySQL importieren Problem Datenbankprogrammierung 5
S Problem beim Anlegen einer Tabelle Datenbankprogrammierung 5
R MS Access mit Java Problem mit Update Statment Datenbankprogrammierung 13
S MySQL Problem mit SELECT bzw encoding Datenbankprogrammierung 4
T Problem beim schreiben von daten Datenbankprogrammierung 4
M MySQL getConnection - Verbindung Problem Datenbankprogrammierung 2
K Hibernate + MySQL Problem... Datenbankprogrammierung 2
I MySQL MySQL – Proxy Problem Datenbankprogrammierung 4
M Problem mit Hibernate und Named Query Datenbankprogrammierung 1
M Problem mit Hibernate und Access Datenbankprogrammierung 9
C firebird problem Datenbankprogrammierung 5
F Problem mit Datenbankabfrage Datenbankprogrammierung 7
K SQL Problem mit Date Datenbankprogrammierung 3
jeppi MySQL Design-Problem: DB-Verbindung herstellen und halten - JdbcRowSet / Idle-Timeout? Datenbankprogrammierung 9
J sql abfrage ... Problem mit Datumswert Datenbankprogrammierung 3
G MySQL Connection Problem Datenbankprogrammierung 3

Ähnliche Java Themen

Neue Themen


Oben