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 :

[Debutant] Requetes SELECT et Spring


Sujet :

Spring Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Août 2006
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1
    Par défaut [Debutant] Requetes SELECT et Spring
    Bonjour a tous,

    J'ai recemment commence a developper une petite appli MVC en utilisant struts pour la partie affichage des donnees et spring DAO pour la partie acces BDD.
    J'utilise Oracle 10 comme BDD.
    J'ai parcouru a peu pres tout les tutoriels spring sur le site, et je suis bloque au niveau des requetes.

    Je desire faire une requete qui va me chercher un utilisateur dans la table correspondante, par rapport au nom entre dans le champ. Simplement une requete de la forme "SELECT * FROM login WHERE login=" + variable

    Et je n'arrive malheureusement pas a faire fonctionner cette requete. Pour l'instant j'arrive a recuperer tout les utilisateurs de la table et a les afficher en console.

    Voici la classe qui contient la requete "SELECT *" :

    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
     
    public class UserDaoImp implements UserDao {
     
    	private JdbcTemplate jdbcTemplate;
    	private DataFieldMaxValueIncrementer userIncrementer;
     
     
    	public void setJdbcTemplate(JdbcTemplate jdbcTemplate){
    		this.jdbcTemplate=jdbcTemplate;
    	}
     
    	public void setUserIncrementer(DataFieldMaxValueIncrementer userIncrementer){
    		this.userIncrementer=userIncrementer;
    	}
     
    	public List getUsers(){
    		String sql="SELECT * FROM LOGIN";
    		return jdbcTemplate.query(sql, new UserRowMapper());
    	}
    }
    Et une partie de la classe de test qui va me faire l'affichage :

    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
     
    public class TestUser {
     
    	/**
             * @param args
             */
    	public static void main(String[] args){
    		TestUser testUser = new TestUser();
    		testUser.testUsingJava();
    	}
     
    	private void testUsingJava(){
    		UserDao userDao = init();
    		testShowUsers(userDao);
    	}
     
    	private void testShowUsers(UserDao userDao){
    		System.out.println("List Users:");
    		List allUsers = userDao.getUsers();
    		for (Iterator iter = allUsers.iterator(); iter.hasNext();){
    			LoginForm element = (LoginForm) iter.next();
    			System.out.println("User: " + element.getLogin() + " Password: " + element.getPassword());
    		}
    	}
     
    	private UserDao init(){
    		JdbcTemplate jdbcTemplate = new JdbcTemplate(getDataSource());
    		DataFieldMaxValueIncrementer incrementer = new OracleSequenceMaxValueIncrementer(getDataSource(), "user_login_seq");
    		UserDao userDao = new UserDaoImp();
    		((UserDaoImp) userDao).setUserIncrementer(incrementer);
    		((UserDaoImp) userDao).setJdbcTemplate(jdbcTemplate);
    		return userDao;
    	}
    Est-ce que quelqu'un pourrait-il eclairer ma lanterne quand a la methode a utiliser?

    Merci d'avance

  2. #2
    Membre éclairé Avatar de Rocket
    Profil pro
    Inscrit en
    Février 2003
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 72
    Par défaut
    Je ne sais pas trop je n'ai pas essayé d'utiliser directement le JDBC.
    Par contre, j'utilise IBATIS pour accéder à ma base de donnée.

    C'est plutôt simple à utiliser, et tu exportes toutes tes requêtes dans un XML, tu uyilises une interface, plus une classe SQLMAP...

  3. #3
    Membre expérimenté
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2002
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mars 2002
    Messages : 192
    Par défaut
    Citation Envoyé par speedsweep
    Est-ce que quelqu'un pourrait-il eclairer ma lanterne quand a la methode a utiliser?
    Rien de plus simple, il suffit d'utiliser la methode query de la facon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        public List getUserByName(String name) {
            return jdcTemplate.query("SELECT * FROM USERS WHERE NAME = ?", new Object[] {name}, userRowMapper);
        }
    Bon courage,

    Matthieu

    PS : pr certaines bases de données (Oracle notament), il vaut mieux utiliser la version de query pour laquelle on spécifie le type de données en arguments. Cela évite de problèmes avec les champs NULL. Dans ce cas, la méthode query à utiliser est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        public List getUserByName(String name) {
            return jdcTemplate.query("SELECT * FROM USERS WHERE NAME = ?", new Object[] {name}, new int[] {Types.VARCHAR}, userRowMapper);
        }

Discussions similaires

  1. [debutant]SQL 2005 + requete select ?
    Par christopheEU dans le forum Développement
    Réponses: 1
    Dernier message: 04/04/2008, 14h26
  2. [Debutant] Requete SELECT enregistrement NULL
    Par brak__ dans le forum Requêtes et SQL.
    Réponses: 16
    Dernier message: 22/12/2006, 16h03
  3. [D5][FireBird][Debutant]Lenteur requete SELECT
    Par Benj2007 dans le forum Bases de données
    Réponses: 2
    Dernier message: 01/09/2006, 12h02
  4. [hibernate][spring]requete select from where IN
    Par whilecoyote dans le forum Hibernate
    Réponses: 1
    Dernier message: 07/04/2006, 09h06
  5. [Debutant][Requete] problème de select
    Par Super Castor dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 01/02/2006, 17h42

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