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

Spring Boot Java Discussion :

Spring boot jpa hibernate : activer l'encodage utf-8 sur la base de donnée


Sujet :

Spring Boot Java

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2012
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2012
    Messages : 92
    Points : 61
    Points
    61
    Par défaut Spring boot jpa hibernate : activer l'encodage utf-8 sur la base de donnée
    Bonjour,

    J'ai développe une appli spring boot(version 2.1) jpa hibernate avec Microsoft SQL server 2017.

    J'ai créé un controleur en post où je recupère un fichier json et je fais jpaRepository.save() pour ajouter mes données en base de données.

    Mon soucis est que l'ajout à la base des données des caractères accentués s'affiche très mal .

    Exemple : 12 Allée Hélène BOUCHER s'enregistre 12 All?e H?l?ne BOUCHER.

    Comment activer l'encodage utf-8 sur mes controleurs et sur le fichier application.properties de Spring.

    J'ai beau essayé sans succès.

    Quelqu'un a une idée ??

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour

    Dans ton application.properties
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    # pour la connexion avec la base :
    spring.datasource.connectionProperties=useUnicode=true;characterEncoding=utf-8;
    # Pour les requêtes http
    spring.http.encoding.charset=UTF-8
    spring.http.encoding.enabled=true
    A+.

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2012
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2012
    Messages : 92
    Points : 61
    Points
    61
    Par défaut
    Merci Andry,
    Pour la version de mon projet spring boot 2.0.2, spring.datasource.connectionProperties n'existe pas. Je ne sais pas comment le remplacer.La propriété connectionProperties n'est pas définie, comment le remplacer.

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Tu le mets directement dans l'url

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    spring.datasource.url=jdbc:sqlserver://****;useUnicode=true;characterEncoding=UTF-8
    A+.

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2012
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2012
    Messages : 92
    Points : 61
    Points
    61
    Par défaut
    Je veux tester en faisant :jdbc:sqlserver://monIP:1433;databaseName=maBaseDeDonnee;useUnicode=true;characterEncoding=UTF-8

    ET dans la même ordre d'idée, j'aimerai dans mon controleur qui renvoyé un objet json avec status = succes ou non

    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
     
     @RestController
    @RequestMapping("/api")
    class MyRestController
    {
     
        @PostMapping(path = "/employe")
        public JSONObject saveEmploye(Employe e)
        {
           //if(sauvegardeEmploye ok )
            return new JSONObject("{'status':'success'}");
             else 
             return new JSONObject("{'status':'not success'}");
        }
     
     
    }
    ça ne marche pas. avez vous une idée?

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Citation Envoyé par lnquaidorsay Voir le message
    Je veux tester en faisant :jdbc:sqlserver://monIP:1433;databaseName=maBaseDeDonnee;useUnicode=true;characterEncoding=UTF-8
    Et qu'est ce qui c'est passé?
    Citation Envoyé par lnquaidorsay Voir le message
    ET dans la même ordre d'idée, j'aimerai dans mon controleur qui renvoyé un objet json avec status = succes ou non

    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
     
     @RestController
    @RequestMapping("/api")
    class MyRestController
    {
     
        @PostMapping(path = "/employe")
        public JSONObject saveEmploye(Employe e)
        {
           //if(sauvegardeEmploye ok )
            return new JSONObject("{'status':'success'}");
             else 
             return new JSONObject("{'status':'not success'}");
        }
     
     
    }
    ça ne marche pas. avez vous une idée?
    Tu ne dois pas retourner un JSON, retourne un Map ou un String
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public JSONObject saveEmploye(Employe e)
        {
    JSONObject json = new JSONObject();
    if(test){
    json.put("status", "success");
    }else{
    ...
    }
    return json.toString();
    }
    Sinon, tu dois nous montrer ton vrai code, nous citer le message d'erreur. Ça ne marche pas n'est pas un symptôme.

    A+.

  7. #7
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2012
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2012
    Messages : 92
    Points : 61
    Points
    61
    Par défaut
    j'ai resolu mon soucis en créant une classe qui me set le statut success ou ko de la manière suivante :
    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
     
    public class ReponseStatut {
    	String status;
     
    	public ReponseStatut() {
    		super();
    	}
     
    	public ReponseStatut(String status) {
    		super();
    		this.status = status;
    	}
     
    	public String getStatus() {
    		return status;
    	}
     
    	public void setStatus(String status) {
    		this.status = status;
    	}
     
    }
    Et du coup au niveau de mon controller des employés , je fais ceci
    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
     
     @RestController
    @RequestMapping("/api")
    class MyRestController
    {
     
        @PostMapping(path = "/employe")
        public ResponseEntity<ReponseStatut> saveEmploye(Employe e)
     
        {
          ReponseStatut reponseStatut = new ReponseStatut();
           //if(e ) {
             reponseStatut.setStatus("success");
            return new ResponseEntity<ReponseStatut>(reponseStatut, HttpStatus.OK);
           } else {
                           reponseStatut.setStatus("error");
    			return new ResponseEntity<ReponseStatut>(reponseStatut, HttpStatus.BAD_REQUEST);
     
    }
        }
     
     
    }

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

Discussions similaires

  1. Spring boot jpa hibernate probleme recuperation element par son id
    Par lnquaidorsay dans le forum Spring Boot
    Réponses: 5
    Dernier message: 21/05/2018, 13h10
  2. Spring Boot : Configurer Hibernate Session
    Par paladice dans le forum Spring Boot
    Réponses: 1
    Dernier message: 26/05/2016, 09h27
  3. Réponses: 0
    Dernier message: 26/03/2015, 19h11
  4. [Security] Spring Security + JPA +Hibernate
    Par gabz57 dans le forum Spring
    Réponses: 0
    Dernier message: 01/05/2011, 02h21

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