Partage
  • Partager sur Facebook
  • Partager sur Twitter

DataSource java

Lise des fichier sql

    13 novembre 2019 à 18:00:08

    Bonjour, 

    J'ai un projet javaEE en cours et la base de données est sur des fichiers sql. 

    J'utilise netbeans et pour ouvir ma dataSource je doit faire ça avec un fichier java du type suivant : 

    public static DataSource getDataSource() {
    		org.apache.derby.jdbc.ClientDataSource ds = new org.apache.derby.jdbc.ClientDataSource();
    		ds.setDatabaseName("sample");
    		ds.setUser("app");
    		ds.setPassword("app");
    		// The host on which Network Server is running
    		ds.setServerName("localhost");
    		// port on which Network Server is listening
    		ds.setPortNumber(1527);
    		return ds;
    	}

    Mais je ne vois pas comment adapter ça a des fichiers sql donnée. 
    Merci de votre aide

    • Partager sur Facebook
    • Partager sur Twitter
      23 novembre 2019 à 15:36:16

      Salut,

      Que veux tu dire "la base de données est sur des fichiers sql" ???

      tu es sur que tu ne dois pas plutot executer ces script sql sur un bdd pour inserer des données ?

      Code Safe,

      DarkResus

      • Partager sur Facebook
      • Partager sur Twitter
        23 novembre 2019 à 22:24:05

        Effectivement, les fichiers SQL servent à initier la bdd, qui sera la datasource.
        A moins d'utiliser Spring boot (ça doit faire partie de la dépendance JPA, je pense), qui peut utiliser une fichier SQL pour initier la base. Mais le principe est le même: le fichier SQL sert à monter la base de données, ensuite le programme "parle" avec elle.

        -
        Edité par FrançoisChesneau 23 novembre 2019 à 22:24:46

        • Partager sur Facebook
        • Partager sur Twitter
          30 novembre 2019 à 14:01:47

          Oui je dois écrire en Java le programme qui initialise la BD. Mais je vois pas comment faire.

          J'utilise se code :

          package Controleur_Servelet;
          
          import java.io.OutputStream;
          import java.io.UnsupportedEncodingException;
          import java.sql.Connection;
          import java.sql.SQLException;
          import java.util.List;
          import java.util.logging.Level;
          import java.util.logging.Logger;
          import javax.servlet.ServletContextEvent;
          import javax.servlet.ServletContextListener;
          import javax.servlet.annotation.WebListener;
          import Modele.DAO;
          import Modele.DataSourceFactory;
          import Modele.ProductEntity;
          import org.apache.derby.tools.ij;
          
          /**
           * Web application lifecycle listener, initialise la base de données au démarrage de l'application si nécessaire
           */
          @WebListener()
          public class ApplicationListener implements ServletContextListener {
          
          	@Override
          	public void contextInitialized(ServletContextEvent sce) {
                      try {
                          if (!databaseExists()) {
                              initializeDatabase();
                          }
                      } catch (SQLException ex) {
                          Logger.getLogger(ApplicationListener.class.getName()).log(Level.SEVERE, null, ex);
                      }
          	}
          
          	@Override
          	public void contextDestroyed(ServletContextEvent sce) {
          
          	}
          
          	private boolean databaseExists() throws SQLException{
          		boolean result = false;
          
          		DAO dao = new DAO(DataSourceFactory.getDataSource());
                          List<ProductEntity> states = dao.allProduct();
                          Logger.getLogger("projetJavaEE").log(Level.INFO, "Database already exists");
                          result = true;
          		return result;
          	}
          
          	private void initializeDatabase() {
          		OutputStream nowhere = new OutputStream() {
          			@Override
          			public void write(int b) {
          			}
          		};
          		
          		Logger.getLogger("projetJavaEE").log(Level.INFO, "Creating databse from SQL script");
          		try {
          			Connection connection = DataSourceFactory.getDataSource().getConnection();
          			int result = ij.runScript(connection, this.getClass().getResourceAsStream("comptoir_schema_derby.sql"), "UTF-8", System.out, "UTF-8");
          			if (result == 0) {
          				Logger.getLogger("projetJavaEE").log(Level.INFO, "Database succesfully created");
          			} else {
          				Logger.getLogger("projetJavaEE").log(Level.SEVERE, "Errors creating database");
          			}
          
          		} catch (UnsupportedEncodingException | SQLException e) {
          			Logger.getLogger("projetJavaEE").log(Level.SEVERE, null, e);
          		}
          
          	}
          }
          

          Mais la base ne s'incréments pas...

          -
          Edité par Cam0202 30 novembre 2019 à 17:41:41

          • Partager sur Facebook
          • Partager sur Twitter

          DataSource java

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown