IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

[jdbc] erreur : com.mysql.jdbc.MysqlDataTruncation


Sujet :

JDBC Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2003
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2003
    Messages : 131
    Points : 82
    Points
    82
    Par défaut [jdbc] erreur : com.mysql.jdbc.MysqlDataTruncation
    Bonjour,

    J'ai de gros problème pour insérer une nouvelle ligne dans ma base de données MySql. Je travaille sous Ubuntu Breezy, Eclipse, j'ai connector J 3.1.13.

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    package testConnectorJ;
     
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
     
     
    public class DataBase
     
    {
     
    	 Connection con;
     
    	// ----------------------------
     
    		String dbUrl = "jdbc:mysql://localhost/InformationPanneau";
        String user = "tvbuilder";
        String password = pass
     
        public DataBase ( )
     
    	{
     
    		try
    		{
    	    Class.forName("com.mysql.jdbc.Driver").newInstance();
    		}
    		catch ( Exception e )
    		{
    		}
     
    	}
     
    	// ------------------------------------------------------
     
    	public void open ( )
     
    	{
    		try
    			{
    				con = DriverManager.getConnection(dbUrl, user, password);
    			}
    			catch ( SQLException e )
    			{
    			}
     
    	}
     
    	// -----------------
     
    	public void close ( )
     
    	{
     
    		try
    		{
     
    			con.close( );
     
    		}
     
    		catch ( Exception e )
    		{
     
    			System.out.println( "echec lors de la fermeture:" + e.getMessage( ) );
     
    		}
     
    	}
     
     
    	public PreparedStatement prepareStatement(String sql)
    	{
    		PreparedStatement ps = null;
    		try
    		{
    			ps = (PreparedStatement) con.prepareStatement(sql);
    		}
    		catch ( SQLException e )
    		{
    		}
     
    		return ps;
     
    	}
    }
    seconde classe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    package testConnectorJ;
     
     
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
     
     
    public class SqlManager
    {
     
     
    	// DataBase db;
     
     
    	private DataBase			db;
     
    	// CONSTRUCTOR //
     
    	public SqlManager ( )
    	{
     
    		db = new DataBase( );
     
    	}
     
    	// PUBLIC METHODS //
     
     
    	public void insertNewAuthor ( int login )
    	{
     
    		db.open( );
     
    		String sqlInsert = "INSERT INTO Author ( authorCreat , authorModif , isVisible )	VALUES (?,?,?)";
    		PreparedStatement ps = db.prepareStatement( sqlInsert );
    		try
    		{
    			 ps.setInt( 1, login ); 
    			 ps.setNull( 2, 0);
    			 ps.setString( 3, "true" ); 
    			 ps.executeUpdate( );
    		}
    		catch ( SQLException e )
    		{
    			System.out.println( "SqlManager :: insertNewAuthor :: " + e.toString( ) );
    		}
    		finally {
    			db.close();
    		}
    	}
     
     
    }
    et dans une dernière classe, on appelle l'objet ms = new SqlManager();

    et j'obtiens l'erreur :

    SqlManager :: insertNewAuthor :: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data truncated for column 'isVisible' at row 1
    or voici ma table :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     id   	               int(11)  	   	   	 auto_increment
    authorCreat   	int(11)  	   	   	
    authorModif   	int(11)  	   	   	
    isVisible   	    enum('true', 'false')
    Des idées ? Là, je sèche lamentablement.

  2. #2
    Membre éclairé Avatar de g_rare
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 608
    Points : 683
    Points
    683
    Par défaut
    http://forums.mysql.com/read.php?39,15869,45230
    http://bugs.mysql.com/bug.php?id=13588

    Sinon tu veux faire quoi avec ce code ?
    Citation Envoyé par Mascotte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ps.setNull( 2, 0);
    " Jag blev dömd för fildelning och allt jag fick var en sketen t-shirt. " (tankafritt.nu)
    PAS DE REPONSE PAR MESSAGE PRIVE ! Penser au bouton Résolu en bas de la discussion...

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2003
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2003
    Messages : 131
    Points : 82
    Points
    82
    Par défaut
    merci pour les liens.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Août 2003
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2003
    Messages : 131
    Points : 82
    Points
    82
    Par défaut
    Alors, je n'ai plus le message d'erreurs par contre, j'ai toujours un petit soucis.

    mes valeurs de ma ligne sont [1, null, true] avec 1 un int et true un String.

    or dans ma base, je trouve :

    ce qui n'est pas exactement ce que j'attendais.


  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Août 2003
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2003
    Messages : 131
    Points : 82
    Points
    82
    Par défaut
    Citation Envoyé par g_rare

    J'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	 ps.setNull( 2, java.sql.Types.INTEGER);
    et je n'obtiens rien de mieux.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Août 2003
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2003
    Messages : 131
    Points : 82
    Points
    82
    Par défaut
    J'ai trouvé !

    Ici bug similaire

    http://bugs.mysql.com/bug.php?id=11874

    J'ai changé de connector comme indiqué

    http://downloads.mysql.com/snapshots.php#connector-j

    et ça fonctionne !

    Merci à tous ceux qui m'ont répondu. Sincèrement ça m'a aidé.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 01/11/2014, 12h55
  2. Réponses: 2
    Dernier message: 10/06/2014, 13h50
  3. Réponses: 1
    Dernier message: 16/04/2010, 03h05
  4. Réponses: 1
    Dernier message: 20/04/2009, 09h37
  5. [JDBC]pb com.mysql.jdbc.Driver
    Par fafaroro dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 30/12/2005, 20h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo