Application portable avec base de donné

cs_charrynsasi Messages postés 52 Date d'inscription samedi 26 janvier 2008 Statut Membre Dernière intervention 13 avril 2012 - 5 juin 2010 à 20:03
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 - 7 juin 2010 à 17:16
Bonjours !

Je suis debutant en java et je voulais creer une petite application qui utilise l'api
JDBC donc pour la connexion à une base de donné.
Je choisi une base de donné SQL Server 2005 et l'application est vouée à être exportée
sur différents postes.

Quelle approche dois je utiliser pour rendre mon application de base de donné portable sans se soucier
de probleme de driver ODBC ou des driver de base de donné JDBC.

Merci pour vos reponse

3 réponses

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
6 juin 2010 à 07:33
En fait, la seule difficulté c'est que sur chaque ordinateur, tu vas devoir récupérer un identifiant, un mot de passe et un url de connexion qui sera différent.

Pour cela, tu peux stocker dans un fichier texte ces informations (pas dans la base de données surtout :) ) et donner la possibilité à l'utilisateur de les modifier via une fenêtre. Il serait peut être intéressant de crypter les données enregistrées.

Je ne sais pas quelle installation tu vs faire, mais, si tu utilises un .jar exécutable, attention à ne pas inclure ce fichier dans le .jar, tu ne pourrais pas le modifier.
0
cs_charrynsasi Messages postés 52 Date d'inscription samedi 26 janvier 2008 Statut Membre Dernière intervention 13 avril 2012
7 juin 2010 à 13:01
Bonjours

Alors comment m'y prendre !
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
7 juin 2010 à 17:16
Je te l'ai expliqué dans le deuxième paragraphe, tu stocke tout dans un fichier texte.

Le fichier texte aura 3 lignes admettons que tu stocke dans cet ordre :
url
identifiant
mot de passe

Pour lire les informations du fichier texte, utilise

/**
 * cette fonction va lire le contenu d'un fichier
 * @param nomFichier : nom du fichier en entree
 * @return resultat : liste des lignes
 */
public static List<String> lireFichier(String nomFichier){
BufferedReader fluxEntree=null;
String ligneLue;
List<String> lignes = new ArrayList<String>();
try{
fluxEntree = new BufferedReader(new ileReader(nomFichier));
ligneLue = fluxEntree.readLine();
while(ligneLue!=null){
lignes.add(ligneLue);
ligneLue = fluxEntree.readLine();
}
}
catch(IOException exc){
exc.printStackTrace();
}
try{
fluxEntree.close();
}
catch(IOException e){
e.printStackTrace();
}
return lignes;
}

Ce qui te donnera une liste get(0) te donnera l'url, get(1) l'identifiant ...

Pour écrire le fichier tu peux utiliser ca :

/**
 * Ce procédure écrit dans le fichier les lignes de la liste
 * @param nomFichier : nom du fichier dans lequel écrire
 * @param lignes : liste des lignes à écrire
 */
public static void ecrireFichier(String nomFichier, List<String> lignes){
Writer fluxSortie=null;
try{
fluxSortie = new PrintWriter(
new BufferedWriter(new FileWriter(nomFichier)));
for(int i=0;i<lignes.size()-1;i++){
fluxSortie.write(lignes.get(i)+"\n");
}
fluxSortie.write(lignes.get(lignes.size()-1));
}
catch(IOException exc){
exc.printStackTrace();
}
try{
fluxSortie.close();
}
catch(IOException e){
e.printStackTrace();
}
}


Ensuite, reste le problème de l'installation, et là ca dépend vraiment de ce que tu utilises, si tu fais un jar exécutable sous éclipse, il faut que tu lui demandes d'exporter des ressources en dehors du fichier .jar. Le problème est ensuite de retrouver l'adresse de ce fichier donc, tu as la solution d'imposer qu'il soit dans le dossier /home/ sous linux ou à la racine (C://) sous Windows pour être sur de le retrouver ou alors tu utilises JFileChooser et tu demandes à l'utilisateur de le sélectionner.

Mais il y a d'autres facons de faire, celle ci est la plus simple je pense.
0
Rejoignez-nous