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

JDBC Java Discussion :

Connexion H2 Jboss + JPA dans JSF


Sujet :

JDBC Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 109
    Points : 46
    Points
    46
    Par défaut Connexion H2 Jboss + JPA dans JSF
    Bonjour à tous,

    Déjà désolé pour le titre peut "parleur" mais je ne savais pas comment résumer mon gros problème, je suis complètement à l'ouest malgré les tuto du net (3 jours que je cherche)

    J'ai un projet à faire pour les cours. Une appli web en JPA/JSF avec un serveur JBOSS et une base de données "fichier" H2.

    Pour cela, nous avons comme base nos différents projets fait en cours :
    - 1 projet sur l'apprentissage de JPA (Base de données via un fichier de ressources XML)
    - 2 projet sur l'apprentissage de JSF (Sans base de donnée)

    J'ai un tuto de cours sur la création d'un profile de connexion H2 (URL de connexion du profil pointant vers jdbc:h2:C:/Appli/jboss-as-7.1.1.Final/standalone/data/bookstore).
    Je présume que mon serveur JBOSS, une fois lancé, possède bien cette base de données H2 bien que je ne sais pas comment le vérifier)

    Hors, je dois déjà réussir à mettre en lien cette base de données H2 avec mon projet JSF, ce que je ne sais pas faire. Puis "fusionner" mon projet JPA avec mon projet JSF, ce que je ne sais pas faire non plus dut à la différence d'arborescence.

    Nous avons eu une piste : Modification du persistence.xml. Hors ce persistance n'est que dans le projet JPA. Je présume qu'il faut donc dabor réussir à implanter JPA dans JSF puis on aura le persistence.xml dans notre jsf et il ne restera plus cas le configurer pour se connecter à la base H2 (Il faudra voir aussi le code pour se connecter en H2, je pense avec l'entity manager...)

    Auriez vous une aide ou un petit projet test existant pour m'indiquer le chemin à suivre svp ?

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 974
    Points : 1 825
    Points
    1 825
    Par défaut
    Pour H2

    http://www.h2database.com/html/download.html



    Citation Envoyé par chido Voir le message
    Nous avons eu une piste : Modification du persistence.xml. Hors ce persistance n'est que dans le projet JPA.
    META-INF/persistence.xml

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 109
    Points : 46
    Points
    46
    Par défaut
    Merci plawyx mais pour H2 c'est déjà en place et nous devons utiliser celui du tuto du prof (connection profil sous eclipse).

    Pour le persistence.xml, tu veux dire qu'il doit juste ce mettre au même endroit dans le projet jsf et jpa donc dans META-INF/ ?
    Si oui, je viens de le faire donc ça, c'est fait. Maintenant j'ai le profil de connexion H2 et le persistance positionné.

    Dans le projet jsf existant il y a un formulaire de connexion avec login/mdp.

    La méthode lancé se trouve dans une classe UserService et est la 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
     
    @Override
    	public User logUser(String login, String password)
    			throws UserUnknownException, InvalidPasswordException {
     
    		boolean userExists = login.equals("jdoee");
    		boolean passwordValid = password.equals("jdoejdoe");
     
     
    		if (!userExists){
    			throw new UserUnknownException("No user " + login + " exists.", null);
    		}
    		if (!passwordValid){
    			throw new InvalidPasswordException("Password given in invalid for user " + login + ".", null);		
    		}
     
    		User user = new User();
    		user.setEmail("jode@gmail.com");
    		user.setLogin(login);
    		user.setPassword(password);
    		return user;
    	}
    Hors moi je ne veux pas vérifier en dur mais belle et bien aller chercher dans ma base H2. Je présume donc que je dois créer mon entitymanager pour pouvoir faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    em.find(User.class, login);
    et comparer le mdp.

    Mais je ne sais pas comment me connecter à ma base, est-ce automatique uniquement via le persistence.xml ou doit on créer une classe de connexion comme celle que nous avions eu pour nous connecter dans le projet 1 - JPA avec BDD dans fichier 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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
     
    package com.bookstore.utils;
     
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
     
    import org.dbunit.database.DatabaseConnection;
    import org.dbunit.dataset.IDataSet;
    import org.dbunit.dataset.xml.XmlDataSet;
    import org.dbunit.operation.DatabaseOperation;
     
    public class TestUtils {
     
    	private static Connection connection;
    	private static IDataSet dbUnitDataset;
     
    	public static Connection getJDBCConnection(){
    		try{
    			if (connection == null){
    				 Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance();
    		         connection = DriverManager.getConnection("jdbc:derby:memory:BookStoreDB;");
    			}
    		}catch(Exception e){
    			e.printStackTrace();
    		}
    		return connection;
    	}
     
    	public static void reloadDbUnitData() throws Exception{
    		Connection connection = getJDBCConnection();
     
    		PreparedStatement stmt = connection
    				.prepareStatement("ALTER TABLE AUTHORS ALTER COLUMN id RESTART WITH 1");
    		stmt.execute();
    		stmt.close();
     
    		/* load the first time only */
    		if (dbUnitDataset == null){
    			dbUnitDataset = new XmlDataSet(Thread.currentThread()
    				.getContextClassLoader().getResourceAsStream("data-dbunit.xml"));
    		}
     
    		// Clean the data from previous test and insert new data test.
    		DatabaseOperation.CLEAN_INSERT.execute(new DatabaseConnection(connection), dbUnitDataset);
     
    		connection.commit();
    		closeJDBCConnection();
    	}
     
    	public static void closeJDBCConnection(){
    		if (connection != null){
    			try {
    				connection.close();
    			} catch (SQLException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    			connection = null;
    		}
    	}
     
    }

Discussions similaires

  1. Réponses: 10
    Dernier message: 03/05/2017, 12h09
  2. Connexion à une DataSource Postgresql dans JBoss 7.1.1
    Par lamipatterson dans le forum Wildfly/JBoss
    Réponses: 3
    Dernier message: 19/07/2014, 22h15
  3. Persistance JPA dans une page JSF
    Par Christophe39 dans le forum JSF
    Réponses: 16
    Dernier message: 01/12/2013, 14h09
  4. jointure en jpa dans une formulaire jsf
    Par tifawa dans le forum JSF
    Réponses: 10
    Dernier message: 21/06/2012, 17h22
  5. [DEBUTANT] Connexion à une base oracle dans eclipse
    Par marwaza22 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 10/07/2006, 17h25

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