Flux rss
Collection CommentCaMarche.net
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

Comment connecter java à ma base access

Richard, le vendredi 4 avril 2008 à 13:46:07
Bonjour,

Je voudrais savoir ce qui ne va pas avec ce code que j’ai copié de l’Internet. J’ai aimé les explications du code parce qu’elles me semblent faciles à comprendre (je suis nouveau en java). J’ai pris soin d’installer l’ODBC pour Access comme le site suggère.

Toute fois, j’ai remplacé le nom de la base « bdVoyage » par « repertoire » et la table « T_destinations » par « repertoire » pour refléter ma base. la base de données et la seule table que j'ai crée pour assimiler l'exercice portent le même nom "repertoire".

Mais, quand je l’exécute, il me dit ceci :

--------------------------------------------------------------------------------------------------------
Exception in thread "main" java.lang.NullPointerException
at EssaiRepertoire.main(EssaiRepertoire.java:26)
--------------------------------------------------------------------------------------------------------

Voici le site où je l’ai tiré :
http://pagesperso-orange.fr/isabelle.thieblemont/java/chbd.html

Voici le code :

import java.sql.*;
import java.io.*;

public class EssaiRepertoire {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

String url = "jdbc:odbc:repertoire";
Connection con = null;

try {Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection(url,"","");
Statement requete = con.createStatement();
ResultSet resultatDest = requete.executeQuery("select * from repertoire");
while (resultatDest.next()) {
System.out.println(resultatDest.getInt(1)+" "+resultatDest.getString(2));
};
}

catch(Exception e) { System.out.println("Exception"); }
finally {
try {con.close();}
catch(SQLException e) {e.printStackTrace();}
}


}
}

Merci de m'aider car je ne peux pas avancer dans mes leçons si déjà je ne peux me connecter à la base.
Configuration: Windows XP
Internet Explorer 7.0
Répondre à Richard  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
sendoshi, le vendredi 4 avril 2008 à 13:54:53
Ta variable con n'est jamais initialisée, visiblement.
difficile d'appliquer la méthode close() sur un null... Ma science est telle la confiture de fraise fraîche, débouchée un matin de printemps devant un parterre de fleurs à la campagne à quelques lieues à peine de vladivostok: moins j'en ai, et plus je l'étale.
Répondre à sendoshi

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Richard, le vendredi 4 avril 2008 à 14:03:46
d'accord. Mais, une bonne initialisation serait quoi?

ou encore, à quoi sert cette instruction?
con = DriverManager.getConnection(url,"","");

Merci une fois de plus
Répondre à Richard

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Polux31, le vendredi 4 avril 2008 à 14:13:31
bonjour,

il n'y a nulle part le nom de ta base ??? et je pense que pour l'url tu dois faire comme ça :
String url ="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=D:\\cheminDeMaBaseEtNomdeLaBdd";


;o)

polux
Répondre à Polux31

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Richard, le vendredi 4 avril 2008 à 14:38:33
Polux31,

le nom de ma base est "reperoire". j'ai remplacé le nom de "bdVoyage" par "repertoire" que portent both my table and my database.
------------------------------------------------------
String url = "jdbc:odbc:repertoire"; // à la place de repertoire il y avait bdVoyage
--------------------------------------------------

quant à l'instruction que tu m'a suggéré:

String url ="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=D:\\cheminDeMaBaseEtNomdeLaBdd";

Il n'a pas amélioré les choses car je reçois toujours les mêmes messages. J'ai pensée que c'est peut-être moi qui l'ai pris littéralement. j'ai changé (*.mdb) par (repertoire.mdb), mais je reçois toujours le même message.
Répondre à Richard

5


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
Polux31, le vendredi 4 avril 2008 à 15:46:52
voilà la chaîne pour une base se trouvant sur le disque c: dans le dossier bdd\ :

String url ="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=c:\\bdd\\repertoire.mdb";

je pense que le chemin d'accès doit être complet, d'autre par il faut inclure dans les librairies ojdbc14.jar pour l'accès à access.
Répondre à Polux31

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Richard, le vendredi 4 avril 2008 à 16:25:16
J'ai tenté la ligne que vous m'avez suggéré
------------------------------------------------------------­---------------
String url ="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=c:\\bdd\\repertoire.mdb";
---------------------------------------------------------------------------

(1) je l'ai testé telle qu'elle

(2) j'ai remplacé "c:\\bdd\\repertoire.mdb"; " par " C:\Documents and Settings\Richard\Mes documents\Richard\Repertoire" comme le chemin d'accès à ma base "repertoire" apparait dans l'Windows Explorer.

(3) j'ai aussi tenté de remplacer (*.mdb) par (repertoire.mdb)

mais ca n'a pas marché; je reçois toujours les mêmes messages. En plus, quand j'importe ojdbc14.jar, il refuse même d'aller plus loin en disant qu'il ne peut executer cette instruction.

Comme toutes les ressources (livres, sites Internets) semblent suggerer la même façon d'écrire ces instructions pourriez-vous, m'écrire ici quelque chose qui a marché et moi je vais essayer de l'executer chez moi.

Merci de m'aider de cette façon car je ne peut faire plus si je n'arrive pas à me connecter d'abord
Répondre à Richard

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Polux31, le vendredi 4 avril 2008 à 16:56:31
il faut doubler toutes les '\' dans l'adresse ... c'est bien "c:\\doc..." et non "c:\doc..."

voilà ce que j'utilise pour me connecter à une basse access, avec un fichier main.properties :
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.swing.JOptionPane;
import org.apache.log4j.Logger;

/**
 * Gestion de la connection à la base de données Access.
 * @version 1.0.0
 *
 */
public enum DbConnection {
	
	ACCESS(Controller.getInstance().getConfigManager().getAccessJdbcDriver(), 
		   Controller.getInstance().getConfigManager().getAccessJdbcUrl(), 
		   Controller.getInstance().getConfigManager().getAccessJdbcUser(),
		   Controller.getInstance().getConfigManager().getAccessJdbcPassword());

	Logger logger = Logger.getLogger(DbConnection.class);
	public Connection connection;

	private DbConnection(String jdbcDriver, String jdbcUrl, String jdbcUser, String jdbcPassword) {
		try {
			logger.info("Tentative de connection à la base de donnée");
			checkConnected(jdbcDriver, jdbcUrl, jdbcUser, jdbcPassword);
		} catch (DatabaseException dbEx) {
			logger.fatal("Echec de connection à la base de donnée");
			JOptionPane.showMessageDialog(null,
					dbEx.getMessage(),
                    "Magasin",
                    JOptionPane.ERROR_MESSAGE);
		}
	}
	/**
	 * Vérifie que la connexion est établie. Si ce n'est pas le cas, crée la
	 * connexion à partir des paramètres fournis dans le fichier de
	 * configuration
	 */
	private void checkConnected(String jdbcDriver, String jdbcUrl,
			String jdbcUser, String jdbcPassword) throws DatabaseException {
		if (connection == null) {
			try {
				Class.forName(jdbcDriver);
			} catch (ClassNotFoundException e) {
				throw new DatabaseException(
						"Impossible de trouver la classe du driver JDBC '"
								+ jdbcDriver + "' !", e);
			}

			try {
				connection = DriverManager.getConnection(jdbcUrl,
						jdbcUser, jdbcPassword);
			} catch (SQLException e) {
				throw new DatabaseException(
						"Erreur lors de la connexion à la base de données :\n"
								+ e.getMessage(), e);
			}
		}
	}
}


et le fichier main :
# Fichier main.properties
##################################################
# Propriétés JDBC

# Url JDBC de la base
# Attention : remplacer les '\' par des '\\' !!!
jdbc.access.url = jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=c:\\Bdd\\dbMag\\magasin.mdb

# Driver JDBC
jdbc.access.driver = sun.jdbc.odbc.JdbcOdbcDriver

# User JDBC
jdbc.access.user =

# Password JDBC
jdbc.access.password =


bon courage

;o)
Répondre à Polux31

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Richard, le vendredi 4 avril 2008 à 17:05:11
Merci pour ce code. je vais m'y mettre tout de suite...
Répondre à Richard

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 mariah.i, le mardi 22 avril 2008 à 16:32:15
j'ai un problème avec un sujet que je dois le faire c'est le chat entre client et serveur (comminication via les socket) et gestion d'une base de donnée contient le client et les voiture car le sujet c'est location de voiture
Répondre à mariah.i

Résultats pour Comment connecter java à ma base access

Migration base access vers SQL (Résolu) Bonjour, Je tente de migrer une base access vers SQL. Pour les tables, pas de problème. Mais pour les requêtes, je rencontre quelques difficultés. En effet, j'ai codé des fonction en VB que j'appelle dans la requête. Exemple (VB): Function... www.commentcamarche.net/forum/affich-1150570-migration-base-access-vers-sql
Taille base access (Résolu) Bonjour, Je souhaiterai savoir s'il y a un moyen pour réduire la taille d'une base access. je travaille sur une base access qui aprés suppression de tout les enregistrements, attachement de deux tables et compactage fait 1.66Go, comme je... www.commentcamarche.net/forum/affich-7148970-taille-base-access
Probleme Base access (Résolu) Bonjour, Je travaille actuellement sur une base access 2003 que j'ai repris. Cette base est en deux partie, une partie ou sont stockés les données et une autre ou il ya ce qu'on peut appeler l'interface graphique. Je voudrais modifier... www.commentcamarche.net/forum/affich-3268589-probleme-base-access

Résultats pour Comment connecter java à ma base access

Connexion à une base Oracle en php1. Périmètre Cet article est un exemple de connexion à une base Oracle par le biais d'un script php. Cet article ne traite pas la configuration de votre serveur Oracle, et de votre client Oracle. Nous partons du principe que vous pouvez accéder à... www.commentcamarche.net/faq/sujet-123-connexion-a-une-base-oracle-en-php

Résultats pour Comment connecter java à ma base access

Ajout de champ dans une base Access existante (Résolu)Bonjour, Pour mon stage, je dois créer une base Access pour gérer un parc d'instruments et je rencontre quelques difficultés à l'élaborer. En fait je crée des tables pour différents services (chaque table ayant les 3 mêmes champs) et je... www.commentcamarche.net/forum/affich-5958950-ajout-de-champ-dans-une-base-access-existante
Ajouter enregistrament dans une base access+v (Résolu)Bonjour, je veux savoir comment ajouter des enregistrements à partir d'un text box dans une base access sachant que je trvail avec vb6. et est-ce-que vous pouvez me denner le format de la requette "INSERT" merci www.commentcamarche.net/forum/affich-4767764-ajouter-enregistrament-dans-une-base-access-v
Php/acces connection a la base (Résolu)Bonjour, je sui entrain de créer un site php/html reposant sur une base access. Afin de se connecter a la base j'utilise cette fonction: $connect=odbc_connect("NOM","UTILISATEUR","MOT DE PASSE") Neamoins je souhaiterai pouvoir masquer le mot de... www.commentcamarche.net/forum/affich-1606353-php-acces-connection-a-la-base

Résultats pour Comment connecter java à ma base access

SMCWAPS-G EZ Connect g Wireless Access Point StorageType:Wireless Access Point,Type de clôture:Externe,Data Link Protocole:Fast Ethernet,IEEE 802.11b,IEEE 802.11g,Support IEEE 802.11b,Support IEEE 802.11g,Normes conciliantes:IEEE 802.3u,IEEE 802.11b,IEEE 802.11g,IEEE 802.3,Vitesse max du... www.commentcamarche.net/guide-achat/smcwaps-g-ez-connect-g-wireless-access-point-storage-659684-fiche-technique

Résultats pour Comment connecter java à ma base access

Java - L'accessibilitéLa notion d'accessibilité Le concept d'accessibilité (généralement appelé encapsulation) définit la possibilité qu'a le concepteur d'une classe de restreindre l'accès à certaines données, ou plus généralement à certains éléments (méthodes, classes,... www.commentcamarche.net/contents/java/javaaccess.php3
Connexion à la base de données avec JDBCConnexion à la base de données L'API (Application Programming Interface) JDBC, c'est-à-dire la bibliothèque de classes JDBC, se charge de trois étapes indispensables à la connexion à une base de données : la création d'une connexion à la... www.commentcamarche.net/contents/jdbc/jdbcconnect.php3
Java - L'API JDBCIntroduction à JDBC La technologie JDBC (Java DataBase Connectivity) est un ensemble de classes permettant de développer des applications capables de se connecter à des serveurs de bases de données (SGBD). L'accès aux bases de données avec... www.commentcamarche.net/contents/java/javajdbc.php3