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, java 8 et sql


Sujet :

Spring Boot Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tchad

    Informations forums :
    Inscription : Juillet 2013
    Messages : 114
    Par défaut Spring boot, java 8 et sql
    Bonjour,
    je travaille sur un projet qui nécessiterait d'ajouter les dates. Je cherche un moyen de stocker la date en tant qu'objet Date dans une base de données d'accès, mais chaque méthode génère une erreur. J'utilise des pilotes spring boot avec Java 8.

    mon code:

    -------------------------classe entite--------------------------------------------------------
    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
    package vn.ifi.entities;
     
    import java.io.Serializable;
    import java.sql.Date;
     
     
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.Id;
     
    @Entity
    public class Order implements Serializable{
    	@Id
    	@GeneratedValue
    	private Long id;
    	private Date date;
    	private int quantite;
    	private double prix;
    	public Long getId() {
    		return id;
    	}
    	public void setId(Long id) {
    		this.id = id;
    	}
    	public Date getDate() {
    		return date;
    	}
    	public void setDate(Date date) {
    		this.date = date;
    	}
    	public int getQuantite() {
    		return quantite;
    	}
    	public void setQuantite(int quantite) {
    		this.quantite = quantite;
    	}
    	public double getPrix() {
    		return prix;
    	}
    	public void setPrix(double prix) {
    		this.prix = prix;
    	}
    	public Order(Date date, int quantite, double prix) {
    		super();
    		this.date = date;
    		this.quantite = quantite;
    		this.prix = prix;
    	}
    	public Order() {
    		super();
    	}
     
     
    }
    -----------------------------couche dao----------------------------------------
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    package vn.ifi.dao;
     
    import org.springframework.data.jpa.repository.JpaRepository;
     
    import vn.ifi.entities.Order;
     
    public interface OrderRepository extends JpaRepository<Order, Long>{
     
    }
    -------------------------------classe principale-------------------------------------------

    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
    package vn.ifi;
     
    import java.util.stream.Stream;
     
     
     
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.context.ApplicationContext;
     
    import vn.ifi.dao.OrderRepository;
    import vn.ifi.entities.Order;
     
     
    @SpringBootApplication
    public class ABourseOrderServiceApplication {
     
    	public static void main(String[] args) {
    		java.sql.Date date1 = java.sql.Date.valueOf("2016-10-25");
    		ApplicationContext ctx=SpringApplication.run(ABourseOrderServiceApplication.class, args);
    		OrderRepository orderRepository=ctx.getBean(OrderRepository.class);
    		Stream.of(date1,15,120).forEach(s->orderRepository.save(new Order(s,s,s)));
    		orderRepository.findAll().forEach(s->System.out.println(s.getId()+" "+s.getPrix()));
     
    	}
    }
    --------------------------message d'erreur----------------------------------
    Multiple markers at this line
    - The constructor Order(Object&Comparable<? extends Object&Comparable<?>&Serializable>&Serializable, Object&Comparable<?
    extends Object&Comparable<?>&Serializable>&Serializable, Object&Comparable<? extends Object&Comparable<?
    >&Serializable>&Serializable) is undefined
    - The method save(S) in the type CrudRepository<Order,Long> is not applicable for the arguments (Order)
    j'utilise la base de donnée H2.

  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
    Par défaut
    Bonjour,

    Ton problème n'a pas de liaison avec Spring boot mais la mauvaise utilisation de Stream.of()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Stream.of(date1,15,120).forEach(s->orderRepository.save(new Order(s,s,s)));
    Ça va instancier des Order comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    new Order(date1,date1,date1);
    new Order(15,15,15);
    new Order(120,120,120);
    d'où le message d'erreur.

    A+.

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tchad

    Informations forums :
    Inscription : Juillet 2013
    Messages : 114
    Par défaut
    Ça va instancier des Order comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    new Order(date1,date1,date1);
    new Order(15,15,15);
    new Order(120,120,120);
    d'où le message d'erreur.

    donc je remplace s par date1? puisque un order un composer date, quantite et prix.

  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
    Par défaut
    donc je remplace s par date1? puisque un order un composer date, quantite et prix.
    Non, avec Stream.of(date1,15,120), [date1,15,120] sera considéré comme une collection que tu itères et placer chaque valeur dans la varible s à chaque itération, d'où mon message précédent.
    Je te conseille de voir comment utiliser Stream. Dans ton cas, c'est inutile

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    orderRepository.save(new Order(date1,15,120));
    A+.

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tchad

    Informations forums :
    Inscription : Juillet 2013
    Messages : 114
    Par défaut
    Citation Envoyé par andry.aime Voir le message
    Non, avec Stream.of(date1,15,120), [date1,15,120] sera considéré comme une collection que tu itères et placer chaque valeur dans la varible s à chaque itération, d'où mon message précédent.
    Je te conseille de voir comment utiliser Stream. Dans ton cas, c'est inutile

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    orderRepository.save(new Order(date1,15,120));
    A+.
    c'est ça même, j'ai bien compris et effectivement Stream.of est inutile pour mon cas . maintenant j'ai transformé comme vous m'avez suggéré :
    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
    package vn.ifi;
     
     
     
     
     
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.CommandLineRunner;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
     
     
    import vn.ifi.dao.OrderRepository;
    import vn.ifi.entities.Order;
     
     
    @SpringBootApplication
    public class ABourseOrderServiceApplication implements CommandLineRunner{
    	@Autowired
    	private OrderRepository orderRepository;
     
    	public static void main(String[] args) {
    		SpringApplication.run(ABourseOrderServiceApplication.class, args);
     
    	}
     
    	@Override
    	public void run(String... args) throws Exception {
    		java.sql.Date date1 = java.sql.Date.valueOf("2016-10-25");
    		java.sql.Date date2 = java.sql.Date.valueOf("2016-10-26");
    		java.sql.Date date3 = java.sql.Date.valueOf("2016-10-27");
     
    		//OrderRepository orderRepository=ctx.getBean(OrderRepository.class);
    		orderRepository.save(new Order(date1,120,15));
    		orderRepository.save(new Order(date2,150,12));
    		orderRepository.save(new Order(date3,140,11));
    		orderRepository.findAll().forEach(s->System.out.println(s.getId()+" "+s.getPrix()));
     
    	}
    }
    mais j'ai reçu message d'erreur suivant:
    ... 23 common frames omitted
    Caused by: org.h2.jdbc.JdbcSQLException: Erreur de syntaxe dans linstruction SQL {0}; attendu {1}
    Syntax error in SQL statement {0}; expected {1}; SQL statement:
    insert into order (date, prix, quantite, id) values (?, ?, ?, ?) [42001-197]

  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
    Par défaut
    Bonjour,

    Met ton id en auto-incremente si tu utilises H2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	@GeneratedValue(strategy = GenerationType.IDENTITY)
    	private Long id;
    A+.

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

Discussions similaires

  1. appel d'une classe java dans pl/sql
    Par sirine1 dans le forum PL/SQL
    Réponses: 11
    Dernier message: 06/04/2009, 09h34
  2. Réponses: 1
    Dernier message: 19/02/2009, 11h59
  3. type ARRAY en Java et PL/SQL
    Par edenyorke dans le forum JDBC
    Réponses: 3
    Dernier message: 30/05/2007, 13h42
  4. Réponses: 1
    Dernier message: 02/05/2007, 12h53
  5. Java et PL SQL
    Par kameleo10 dans le forum JDBC
    Réponses: 3
    Dernier message: 28/09/2005, 17h01

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