MyBatis - Update Problem

JayGabriel

Aktives Mitglied
Hallo,

ich hoff, hier kann mir jemand helfen:

Ich bin noch dabei mich in MyBatis einzuarbeiten und versuche gerade einfache SELECT und UPDATE Statements auszuführen. Das Select an sich klappt wunderbar, nur das UPDATE wirft mir ständig Exceptions um die Ohren.

Code:
Exception in thread "main" org.apache.ibatis.exceptions.PersistenceException: 
### Error updating database.  Cause: java.sql.DataTruncation: Data truncation
### The error may involve de.webservice.dbtest.data.UserMapper.setUserData-Inline
### The error occurred while setting parameters
### Cause: java.sql.DataTruncation: Data truncation
	at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:8)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:123)
	at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:62)
	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:38)
	at $Proxy1.setUserData(Unknown Source)
	at de.webservice.dbtest.connector.MyBatisTest.updateUser(MyBatisTest.java:86)
	at de.webservice.dbtest.connector.MyBatisTest.main(MyBatisTest.java:111)
Caused by: java.sql.DataTruncation: Data truncation
	at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:382)
	at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2820)
	at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2258)
	at net.sourceforge.jtds.jdbc.TdsCore.getMoreResults(TdsCore.java:632)
	at net.sourceforge.jtds.jdbc.JtdsStatement.processResults(JtdsStatement.java:584)
	at net.sourceforge.jtds.jdbc.JtdsStatement.executeSQL(JtdsStatement.java:546)
	at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.execute(JtdsPreparedStatement.java:558)
	at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:22)
	at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:51)
	at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:29)
	at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:88)
	at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:43)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:121)
	... 5 more

Meine Userklasse hat die Elemente, die einzig und allein geupdatetet werden können (in der DB gibts mehr Spalten).

Mein Vorgehen:
- erst hole ich mir den User in meinen User Datentyp (Name, Nachname, ID und Adresse).
- dann änder ich in dem gerade gefüllten Objekt den Nachnamen und wollte dann damit ein UPDATE machen.
- Daraufhin kommt jedoch die Exception.

Kennt jemand von euch diese Fehlermeldung und kann mir dabei helfen?

Configurationen:
[XML]
<typeAliases>
<typeAlias alias="User" type="de.webservice.dbtest.model.User"/>
</typeAliases>

<environments default="development">
...
</environments>

<mappers>
<mapper resource="de/webservice/dbtest/data/UserMapper.xml"/>
</mappers>
[/XML]

Mapper xml:
[XML]
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="de.webservice.dbtest.data.UserMapper">

<resultMap id="result" type="User">
<result property="id" column="CLIENTNO"/>
<result property="startdate" column="STARTDATE"/>
<result property="enddate" column="ENDDATE"/>
<result property="firstname" column="FIRSTNAME"/>
<result property="name" column="NAME"/>
<result property="street" column="STREET"/>
<result property="houseno" column="HOUSENO"/>
<result property="zipcode" column="ZIPCODE"/>
<result property="city" column="CITY"/>
</resultMap>

<select id="getUser4Id" parameterType="long" resultMap="result">
SELECT CLIENTNO, STARTDATE, ENDDATE, FIRSTNAME, NAME, STREET, HOUSENO, ZIPCODE, CITY
FROM ADDRESS adr
WHERE CLIENTNO = #{id}
</select>

<update id="setUserData" parameterType="User">
UPDATE ADDRESS
SET SURNAME = #{name}
WHERE CLIENTNO = #{id}
AND GETDATE() BETWEEN STARTDATE AND ENDDATE
</update>

</mapper>
[/XML]

Mapper Java
Java:
package de.webservice.dbtest.data;

import java.util.List;

import de.webservice.dbtest.model.User;

public interface UserMapper {
	List<User> getUser4Id(long customerid);
	
	void setUserData(User user);
}

User Klasse
Java:
package de.webservice.dbtest.model;

import java.sql.Date;

public class User {
  private String id;
  private long startdate;
  private long enddate;
  private String firstname;
  private String name;
  private String street;
  private String houseno;
  private String zipcode;
  private String city;

  /**
   * Getter und Setter Block
   */
  [...]

Habe ich irgendwie etwas vergessen? Oder fällt euch ein Fehler auf?
Ich arbeite mit MyBatis 3.0.5 und einer MSSQL DB.

Grüße,
Jay
 

JayGabriel

Aktives Mitglied
Oh!

Danke für die Hilfe, DAS war der Fehler!
Ich frag mich, warum der Zweitname nur 5 Zeichen beinhalten darf, aber gut...

Vielen Dank, für die schnelle Hilfe! :)

Gruß,
Jay
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
pkm PostgreSQL Kann mit mybatis einen Parameter für eine postgreSQL-Abfrage nicht übergeben. Datenbankprogrammierung 5
L Mybatis Datenbankabfragen in Java Datenbankprogrammierung 1
F myBatis und komplexe Abfragen Datenbankprogrammierung 3
B MySQL myBatis INSERT Datenbankprogrammierung 13
T compiler fehler: should be mapped with insert="false" update="false" Datenbankprogrammierung 1
bueseb84 Spring Boot : Update Mysql Datenbank Datenbankprogrammierung 1
OnDemand Mysql UPDATE if condition Datenbankprogrammierung 14
OnDemand Select vs Update ins blaue, was ist teurer? Datenbankprogrammierung 11
OnDemand MySQL Trigger löst nicht aus bei Hibernate Update Datenbankprogrammierung 12
R HSQLDB ResultSet update aktualisiert DB, aber nicht das ResultSet Datenbankprogrammierung 2
F UPDATE - Befehl nur in einer Zeile Datenbankprogrammierung 11
L SQL-Statement INSERT INTO ON DUPLICATE KEY UPDATE funktioniert nicht Datenbankprogrammierung 5
M SQL-Statement SQL mit Java, Update Fehler Datenbankprogrammierung 1
OnDemand Update auf Mysql läuft nicht durch Datenbankprogrammierung 30
OnDemand SQL-Statement Update mit innerjoin Datenbankprogrammierung 18
OnDemand Update table SET will nicht Datenbankprogrammierung 9
P MySQL INSERT / UPDATE MySQL - perStoredProcedure oder direkt im Code Datenbankprogrammierung 3
S Update Tabelle aus Textfeld Datenbankprogrammierung 2
S JPA: update von Schlüsselwerten Datenbankprogrammierung 2
ruutaiokwu sql server werte swappen beim update-vorgang mit unique-constraints..? Datenbankprogrammierung 2
M Update Befehl Datenbankprogrammierung 1
S MySQL Nach wiederholtem Update falsche Werte (im Speicher?) Datenbankprogrammierung 1
M SQL-Statement Datentypen in Kriterienausdruck unverdräglich bei Update auf DB von Java aus Datenbankprogrammierung 0
M SQL UPDATE richtig anwenden BITTE um HILFE Datenbankprogrammierung 3
M SQL UPDATE führt zu JAVA Absturz Datenbankprogrammierung 6
S HSQLDB Verbieten eines update auf eine bestimmte reihe Datenbankprogrammierung 4
M Derby/JavaDB Neu geschriebener Eintrag per UPDATE lässt sich nicht unmittelbar abrufen Datenbankprogrammierung 2
S UPDATE user Datenbankprogrammierung 4
R Fehler 2601 trotz SQL-UPDATE ? Datenbankprogrammierung 2
B DB Update via batch Datenbankprogrammierung 3
H Update ganze zeile Datenbankprogrammierung 4
R sqlite UPDATE wirkt nicht aus Java Datenbankprogrammierung 7
S ID Wert von Insert über jdbcTemplate.update Datenbankprogrammierung 3
D Error 1452: Cannot add or update a child row: a foreign key constraint fails Datenbankprogrammierung 15
D SQL Update auf eine Query möglich? Datenbankprogrammierung 4
5 Datenbank Update Datenbankprogrammierung 8
A Oracle Update Befehl in Datenbank anhand einer Schleife Datenbankprogrammierung 8
turmaline Oracle "Häppchenweises" Update durchführen Datenbankprogrammierung 4
C MySQL Problem mit UPDATE Abfrage Datenbankprogrammierung 13
D ArrayIndexOutOfBoundsException bei Update von JTable und Model Datenbankprogrammierung 13
M Access Update Statement Fehler update -> unmöglich? Datenbankprogrammierung 3
S JPA: Problem mit Update von Daten Datenbankprogrammierung 7
I Derby/JavaDB Update Fehler Datenbankprogrammierung 4
N Update Prepared Statement Fehler bei Argumenten Datenbankprogrammierung 3
N batch-Update wird nicht durchgeführt Datenbankprogrammierung 2
R MS Access mit Java Problem mit Update Statment Datenbankprogrammierung 13
1 On duplicate Key update Datenbankprogrammierung 3
M DB update geht einfach nicht Datenbankprogrammierung 2
F ResultSet kann Datenbank nicht update, warum? Datenbankprogrammierung 3
G MySQL Update Datenbankprogrammierung 5
M MySQL größere von zwei Zahlen in Update Statement Datenbankprogrammierung 2
T Update an SQL Tabelle ?! Datenbankprogrammierung 10
C MySQL Update funktioniert nicht Datenbankprogrammierung 11
C Update Table1 mit Relationship Table2 Datenbankprogrammierung 6
prakdi einzelnen SQL Eintrag finden der "update" enthält Datenbankprogrammierung 3
V Datenbank Update Datenbankprogrammierung 7
A update methode für datenbank Datenbankprogrammierung 2
M Hibernate: Insert statt Update Datenbankprogrammierung 8
E Update DB; Werte aus Feldern übernehmen Datenbankprogrammierung 5
H Batch Update/Insert Datenbankprogrammierung 4
E Insert oder Update- Prüfung Datenbankprogrammierung 3
H Datenbank Update Datenbankprogrammierung 3
J SQL Abfrage: Verschiedene Werte in einer Spalte mit einem Update Befehl? Datenbankprogrammierung 7
cosmic Problem beim Update einer Oracle DB Datenbankprogrammierung 7
M Update mysql Fehler ?? Datenbankprogrammierung 4
T Problem beim Update in die Access DB Datenbankprogrammierung 9
R Update Time auslesen Datenbankprogrammierung 2
T DB2 delete/update über 2 Tabellen Datenbankprogrammierung 2
K Ist mein UPDATE fehlerhaft? Datenbankprogrammierung 3
G Update-Befehl Fehlerhaft ?? Datenbankprogrammierung 2
G Update Befehl funkt nicht. WARUM? Datenbankprogrammierung 5
S Update Problem Datenbankprogrammierung 3
M Insert Update usw. Datenbankprogrammierung 2
S CashedRowSet update - oder was mache ich falsch - Datenbankprogrammierung 6
B [SQL] UPDATE oder REPLACE INTO Befehl Datenbankprogrammierung 10
S Update mit null Datenbankprogrammierung 11
H UPDATE . Datenbankprogrammierung 3
S PostgreSQL SELECT/UPDATE etc. Datenbankprogrammierung 4
T Update-Frage Datenbankprogrammierung 11
Y Hibernate - Update bestimmter Spalten Datenbankprogrammierung 2
G update sperren bei client/server anwendung Datenbankprogrammierung 7
T Diverse JDBC Probleme (inner join, rs.last(), update) Datenbankprogrammierung 2
B Update funktioniert nicht Datenbankprogrammierung 8
R Update und Insert Gleichzeitig? Datenbankprogrammierung 2
K MsAccess immer beim zweiten Update java.sql.SQLException Datenbankprogrammierung 28
N Hibernate & hsqldb: Problem bei db-update Datenbankprogrammierung 7
T Problem beim Update vom Resultset + Firebird Datenbankprogrammierung 2
G Update Statement automatisch unterteilen lassen Datenbankprogrammierung 3
G ist hieran was falsch ? UPDATE Anweisung Datenbankprogrammierung 8
W Hibernate Update Problem Datenbankprogrammierung 3
A Syntaxfehler bei update. Datenbankprogrammierung 8
O Update-Problem mit Hibernate-Framework Datenbankprogrammierung 5
L Problem mit Update Datenbankprogrammierung 14
L UPDATE löst Exception aus Datenbankprogrammierung 6
G Problem mit Datums-Format bei UPDATE Datenbankprogrammierung 3
F Update mit Prepared Statements Datenbankprogrammierung 10
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

Ähnliche Java Themen

Neue Themen


Oben