2010-03-24 4 views
1

Je souhaite écrire un programme Java qui automatise le travail effectué par l'Administrateur de sources de données ODBC dans Windows. C'est-à-dire, étant donné un nom de connexion ODBC et un chemin d'accès à la base de données sur le disque dur, je veux créer la connexion.Configuration de la connexion ODBC en Java

Je ne sais vraiment pas par où commencer. J'ai regardé this mais il a dit que c'était pour C et je ne pense pas que ce soit très utile. Si quelqu'un pouvait me diriger dans la bonne direction, je l'apprécierais.

(je me rends compte de cette question est vraiment vague, mais c'est toutes les informations que j'ai reçu.)

+0

J'utilise JDBC toute la journée. Je pense que votre question est bonne depuis, parfois vous voulez être capable de créer un DSN ODBC à partir de Java sans avoir besoin d'utiliser le panneau de configuration ODBC. La raison en est simple: le DSN n'existe peut-être pas encore et le port JDBC de votre base de données n'est peut-être pas à l'écoute. Actuellement, je crée des DSN à partir d'un fichier de commandes en exécutant un fichier .reg. Il serait plus agréable de le faire par programmation avec Java, si possible. – djangofan

Répondre

1

Vous voulez regarder dans JDBC.

+0

J'ai utilisé JDBC, mais toute mon expérience avec elle a été soit avec une base de données MySQL ou SQL ou avec une base de données qui a une connexion ODBC que j'ai déjà configuré en utilisant l'administrateur de sources de données ODBC. Puis-je l'utiliser pour configurer cette connexion au lieu de l'administrateur de source de données? – Jessica

+0

@Jessica Je ne pense pas. Je crois que vous devez avoir une configuration de source de données ODBC. –

1

Toute configuration ODBC est dans le registre Windows ou odbc.ini sous Linux (je n'ai pas utilisé ODBC sur d'autres plateformes). Au début, vous devez créer une telle configuration à l'aide du gestionnaire ODBC, puis vérifier ce qui a été enregistré dans la configuration et écrire le programme qui fait la même chose. Si vous travaillez avec Windows 32 bits, vérifiez le registre au HKEY_LOCAL_MACHINE\SOFTWARE\ODBC. Windows 64 bits ont des configurations différentes pour les applications 32 bits et les applications 64 bits (il suffit de rechercher odbc.ini chaîne dans le registre).

Je pense que Java est pas la meilleure langue pour changer quelque chose dans le registre Windows, mais avec Java, vous pouvez créer .reg fichier texte qui peut être importé par regedit.exe, ou vous pouvez utiliser d'autres langues comme Python avec des extensions win32 (actif Python a par défaut).

+0

Plus des points pour comprendre la question. Malheureusement, je pense que ce type recherche une bibliothèque Java .jar avec la possibilité de modifier les DSN plutôt qu'une solution de fichiers par lots. – djangofan

3

La réponse à la question est que vous n'avez pas besoin d'un DSN enregistré.

Voici un exemple d'utilisation d'une connexion ODBC (pas JDBC) à partir de Java, à l'aide du pilote système ODBC. Au lieu de modifier le Registre pour créer une source de données enregistrée, votre alternative est d'utiliser une source de données non enregistré, comme ceci:

Driver=sun.jdbc.odbc.JdbcOdbcDriver 
Source=jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=C:/Dir/DB/MyDB.mdb; 

Ou, en utilisant SQL Server:

Driver=sun.jdbc.odbc.JdbcOdbcDriver 
Source=jdbc:odbc:Driver={SQL Server};SERVER=127.1;DATABASE=MyDB;UID=sa;PWD=mypass 
0

vérifier celui-ci. Java Database Connectivity (JDBC) prend en charge les bases de données ODBC et fournit une base de données indépendante.

Connection connection = null; 
    try { 
     DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); 
     connection = DriverManager.getConnection("connection string", "userName", "password"); 
    } catch (SQLException e) { 


    } 

    return connection; 
0
String driver ="sun.jdbc.odbc.JdbcOdbcDriver" 
String url = "jdbc:odbc:Driver={Microsoft Access Text Driver (*.txt, *.csv)};DBQ=C:/CSVFolder 

query = select * from myfile.csv 
+0

Comment cela répond-il à la question? S'il vous plaît fournir plus de contexte, c'est un fragment de code hors contexte. –

0

Je n'ai jamais eu à se connecter à MS SQL Server avant. J'ai toujours utilisé DB2 ou Derby, MYSQL et tout était toujours pareil pour créer une connexion. C'est ce que je devais faire pour SQL Server.

private final String driver = "sun.jdbc.odbc.JdbcOdbcDriver"; 

Class.forName(driver); 

url="jdbc:odbc:;DRIVER={SQL Server};SERVER="+server+","+port+";DATABASE="+dbName; 
connection = DriverManager.getConnection(url,user,password); 
Questions connexes