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 Java Discussion :

Spring Dao [SimpleJdbcTemplate] [Data]


Sujet :

Spring Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 54
    Par défaut Spring Dao [SimpleJdbcTemplate]
    Bonjour à tous,
    j'essaie d'effectuer une recherche sur une base postgres via le SimpleJdbcTemplate de Spring.
    Je veux faire une selection de tous les objets dont le libelle contient une partie d'un mot. Pour l'instant la recherche ne me retourne que les objets dont le libelle est exactement identique au mot. En fait je ne sais pas ou placer le % lorsque je forme ma requete , si je le place juste apres le? ca ne marche pas. Voila 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
     
    public BasicListData rechercherListeObjet(IData pData)
        {
     
    	String query = "select * from permis where libelle like ?";
     
    	ParameterizedRowMapper<ExempleObject> mapper = new ParameterizedRowMapper<ExempleObject>()
    	{
    	    public ExempleObject mapRow(ResultSet rs, int rowNum) throws SQLException
    	    {
     
    		ExempleObject eo = new ExempleObject();
    		eo.setIdentifiant(rs.getInt("id"));
    		eo.setLibelle(rs.getString("libelle"));
    		eo.setRemarque(rs.getString("description"));
     
     
    		return eo;
    	    }
    	};
    	BasicListData b = (BasicListData)pData;
    	List<ExempleObject> list = this.template.query(query, mapper, b.getCritere());
    	b.setList(list);
    	return b;
    }
    Merci de votre aide

  2. #2
    Membre averti
    Inscrit en
    Décembre 2002
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 23
    Par défaut
    est ce que la syntaxe d'une requete sql ne doit pas etre du genre :

    select * from matable where matable.libelle like '%mavaleur%'

  3. #3
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 54
    Par défaut
    Si normalement c'est comme ca. Mais comme c'est la fonction query qui utilise le string "mavaleur", on ne sait pas trop ce qui se passe et j'ai une exception qui est levée qui me dit qu'il y a une erreur avec %.
    Sinon j'ai trouvé cette solution. le meme code avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string query = "select * from permis where libelle ~* ?"
    Le point d'interrogation est remplacé par le dernier parametre de la fonction template.query, et j'utilise un operateur qui recherche l'expression reguliere dans les tables.

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

Discussions similaires

  1. [Data] [Spring Dao][JDBC] SimpleJdbcTemplate, RowMapper et collections
    Par Invité dans le forum Spring
    Réponses: 2
    Dernier message: 22/05/2008, 17h07
  2. [SPRING] DAO faire un INSERT avec idbparameters
    Par meda dans le forum ASP.NET
    Réponses: 3
    Dernier message: 17/05/2008, 17h39
  3. Réponses: 1
    Dernier message: 15/05/2008, 10h11
  4. [Data] Problème spring DAO JDBC
    Par Ethylene dans le forum Spring
    Réponses: 1
    Dernier message: 07/03/2008, 20h34
  5. Comparatif Spring DAO/Hibernate
    Par joseph_p dans le forum JDBC
    Réponses: 3
    Dernier message: 23/02/2007, 14h29

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