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

Création automatique de ma BD de la même façon que les EJB


Sujet :

Spring Web Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de geforce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    1 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 055
    Par défaut Création automatique de ma BD de la même façon que les EJB
    Bonjour,

    Existe t'il un mécanisme avec Spring & Hibernate pour crées le schéma de mes tables dans ma BD (la 1er fois quand elle est vide) de la même façon que c'est fait dans les EJB avec leur fichier persistance.xml


    Merci

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Par défaut
    Oui c'est tout à fait possible.
    Il faut gérer la propriété hibernate.hbm2ddl.auto dans ton fichier de configuration si tu utilises Hibernate.

  3. #3
    Membre éprouvé
    Avatar de geforce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    1 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 055
    Par défaut
    Citation Envoyé par fr1man Voir le message
    Oui c'est tout à fait possible.
    Il faut gérer la propriété hibernate.hbm2ddl.auto dans ton fichier de configuration si tu utilises Hibernate.
    ok je suis ce tuto http://blog.netapsys.fr/index.php/po...iers-d-imports

    aussi voilà mon fichier persistance.xml (qui contient mes config hbm2ddl.auto)
    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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
        <persistence-unit name="e-ticket-jpa-hibernate-postgresPU" transaction-type="RESOURCE_LOCAL">
            <props>
                <!--  Génère le schema de base -->
                <prop key="hibernate.hbm2ddl.auto">create</prop>
                <!--  Fichiers d'alimentation de données -->		
                <prop key="hibernate.hbm2ddl.import_files">/import.sql</prop>          
            </props>
            <class>ca.etsmtl.gti525.entity.presentation.Artiste</class>
            <class>ca.etsmtl.gti525.entity.presentation.Representation</class>
            <class>ca.etsmtl.gti525.entity.presentation.Spectacle</class>
            <class>ca.etsmtl.gti525.entity.presentation.Billet</class>
            <class>ca.etsmtl.gti525.entity.presentation.Salle</class>
            <class>ca.etsmtl.gti525.entity.vente.Adresse</class>
            <class>ca.etsmtl.gti525.entity.vente.CarteCredit</class>
            <class>ca.etsmtl.gti525.entity.vente.Client</class>
            <class>ca.etsmtl.gti525.entity.vente.Reservation</class>
        </persistence-unit>
    </persistence>
    et ma config spring-config-dao.xml
    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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:tx="http://www.springframework.org/schema/tx"
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
     
        <!-- couches applicatives -->
        <bean id="daoVente" class="ca.etsmtl.gti525.dao.vente.DaoJpaVente" />
        <bean id="daoPresentation" class="ca.etsmtl.gti525.dao.presentation.DaoJpaPresentation" />
     
     
        <!-- EntityManagerFactory -->
        <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
            <property name="dataSource" ref="dataSource" />
            <property name="jpaVendorAdapter">
                <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
                    <property name="databasePlatform" value="org.hibernate.dialect.PostgreSQLDialect" />
                    <!--
                    <property name="showSql" value="true" />
                    <property name="generateDdl" value="true" />
                    -->
                </bean>
            </property>
        </bean>
     
        <!-- la source de donnéees DBCP -->
        <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">     
            <property name="driverClassName" value="org.postgresql.Driver"/> 
            <property name="url" value="jdbc:postgresql://localhost:5432/e-ticket"/>
            <property name="username" value="*****"/>
            <property name="password" value="*****"/>                    
        </bean>
     
     
        <!-- le gestionnaire de transactions -->
        <tx:annotation-driven transaction-manager="txManager" />
        <bean id="txManager" class="org.springframework.orm.jpa.JpaTransactionManager">
            <property name="entityManagerFactory" ref="entityManagerFactory" />
        </bean>
     
        <!-- traduction des exceptions -->
        <bean class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" />
     
        <!-- persistence -->
        <bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />        
     
    </beans>
    aussi j'ai mis le fichier import.sql dans le racine elle fait juste un crée table d'une seul table "Artiste" )

    Merci de me dire si je fait bien les chose parce-que ma table n'est pas crées.

  4. #4
    Membre éprouvé
    Avatar de geforce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    1 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 055
    Par défaut
    Citation Envoyé par fr1man Voir le message
    Oui c'est tout à fait possible.
    Il faut gérer la propriété hibernate.hbm2ddl.auto dans ton fichier de configuration si tu utilises Hibernate.
    Hi,
    Quelqu'un peux me dire ce qui n'a pas fonctionner dans mon précédant exemple ?
    ou
    sinon dit-moi si tu déjà fait ça et si tu as déjà suivi un tutoriel pour le quel tés sûr que sa marche (un lien pourrais suffire)

    Merci d'avance.

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Par défaut
    Je ne configure pas mes projets comme cela.

    Voilà le contenu de mon persistence.xml
    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
     
    <persistence xmlns="http://java.sun.com/xml/ns/persistence"
                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                 xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
                 version="2.0">
       <persistence-unit name="sample">
     
    	<provider>org.hibernate.ejb.HibernatePersistence</provider>
     
    	<properties>
    		<property name="hibernate.hbm2ddl.auto" value="update" />
    		<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
    		<property name="hibernate.show_sql" value="true" />
    	</properties>
       </persistence-unit>
    </persistence>
    Puis la conf de mon entity manager dans mon fichier de conf spring (je fais référence au persistence unit de mon persistence.xml):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    		<property name="persistenceUnitName" value="sample"/>
    		<property name="dataSource" ref="dataSource"/>
    	</bean>

  6. #6
    Membre éprouvé
    Avatar de geforce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    1 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 055
    Par défaut
    Merci sa marcher très bien.

    La prochaine étape c'est d'intégré JavaDB (derby) en embraqué dans mon application.


    je cherche quelque chose qui est équivalent a ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <property hibernate  org.apache.derby.jdbc.EmbeddedDriver Auto-start
    merci de me dire si sa existe (j'ai pas trouvés des ref sur le net)

  7. #7
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Par défaut
    A toi de bien paramétrer ton datasource avec le bon driver et la bonne url.
    Essaie ces valeurs :
    Driver embedded Derby: org.apache.derby.jdbc.EmbeddedDriver
    Url de connexion: jdbc:derby:test;create=true
    Le create sert à créer la base nommée test si elle n'existe pas.
    A tester...

  8. #8
    Membre éprouvé
    Avatar de geforce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    1 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 055
    Par défaut
    Citation Envoyé par fr1man Voir le message
    A toi de bien paramétrer ton datasource avec le bon driver et la bonne url.
    Essaie ces valeurs :
    Driver embedded Derby: org.apache.derby.jdbc.EmbeddedDriver
    Url de connexion: jdbc:derby:test;create=true
    Le create sert à créer la base nommée test si elle n'existe pas.
    A tester...
    Oui c'est exactement ce que j'ai fait : (je les mis dans autre post) ici : http://www.developpez.net/forums/d13...ernate-tomcat/

    Mais j'ai besoin que la JavaDB (Derby) se lancer au déploiement ou au build de l'application par exemple. (bien sûr en utilisant Derby que j'ai mis dans mon POM.xml)

Discussions similaires

  1. [XL-2007] Rendre les combobox visble au même nombre que les textBox
    Par maxval18 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 23/03/2012, 21h00
  2. [XL-2003] Formulaire, copier une textbox dans la même ligne que les autres
    Par jbelleng dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 30/08/2011, 13h25
  3. Réponses: 7
    Dernier message: 09/07/2011, 23h06
  4. [XL-2007] Génération de graphique sur la même feuille que les données
    Par _shuriken_ dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 19/01/2010, 23h46
  5. Réponses: 5
    Dernier message: 03/08/2006, 16h13

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