Créer un fichier base de données Access (.mdb ou .accdb) à l'aide de Java
Actuellement, j'ai une application dans laquelle je suis en mesure d'accéder .mdb ou .accdb
fichier avec JdbcOdbcDriver pour ajouter des données.
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection("jdbc:odbc:MsAccessDSN");
mais dans ce, j'ai besoin de configurer un DSN Système. Nous avons besoin d'ajouter une nouvelle Source de Données (Microsoft Access Driver) et ensuite besoin de fournir de l'emplacement de l' .fichier mdb. Seulement alors le code ci-dessus fonctionne.
Supposons que je veux exécuter mon application sur d'autres système alors que je dois faire la même chose à l'ordinateur.
Si je donne mon application pour le client et qu'il/elle ne sais pas comment le configurer .fichier mdb. Puis tout mon effort de déchets.
Si un pilote est disponible par lequel j'ai créer .fichier mdb par mon Code Java, puis ajouter toutes les données dans la table de .fichier mdb.
Ou est-il un autre moyen, d'où le code Java peut créer .fichier mdb et en mesure d'accéder à ce fichier de base de données.
J'ai essayé ce code d'ajouter des données sans configuration Système DNS:
public class TestMsAccess {
private static Connection con;
private static Statement stm;
private static String tableName = "EmpDetail";
private static int id_is = 2;
private static String name_is = "Employee1";
public static void main(String[] args) throws ClassNotFoundException, SQLException {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=D:\\MSAccessProject/Employee.mdb", "", "");
stm = con.createStatement();
//enter value into table
String addRow = "INSERT INTO " + tableName + " VALUES ( "
+ id_is + ", '"
+ name_is + "')";
stm.execute(addRow);
if (con != null) { con.close(); }
if (stm != null) { stm.close(); }
}
}
Mais le problème est que ce code ne pas créer .mdb fichier automatiquement mais quand j'en créer .mbd fichier et tableau avant d'exécuter ce code.
OriginalL'auteur Vinit Vikash | 2012-03-03
Vous devez vous connecter pour publier un commentaire.
Mise à jour pour Jackcess 2.x: les Bases de données sont maintenant créés (ou ouvert) à l'aide de
DatabaseBuilder
, afin de créer un nouveau fichier de base de données, nous neRéponse originale à cette question pour Jackcess 1.x (obsolète):
Si vous souhaitez créer le “.mdb” fichier par l'intermédiaire de java, vous pouvez utiliser le Jackcess bibliothèque Java qui est l'un des pure Java Bibliothèque pour la lecture et l'écriture à des bases de données MS Access. Actuellement en charge les versions incluent la période 2000-2007, je suppose. Veuillez vous référer à l'exemple ci-dessous pour mieux comprendre:
de http://jackcess.sourceforge.net/
et commons-logging-1.1.jar
de http://commons.apache.org/logging/download_logging.cgi
et commons-lang-2.0.jar
de http://www.findjar.com/index.x?query=commons-lang
Oups! Encore une bibliothèque nécessaires pour exécuter le code ci-dessus. C'est commons-lang-2.0.jar. J'ai oublié de mentionner à ce sujet dans le post précédent. Extrêmement désolés pour la gêne occasionnée. Vous pouvez télécharger le commons-lang-2.0.jar à partir de findjar.com/index.x?query=commons-lang. Une fois qu'il est téléchargé, ajouter ce fichier jar au classpath & exécuter le code ci-dessus à nouveau. Cela permettra d'économiser votre but!!
Comme je le mentionne dans ma réponse, UCanAccess est une pure Java JDBC pilote qui peut aussi créer .mdb et .accdb fichiers de base de données. UCanAccess utilise Jackcess pour lire et écrire les fichiers de base de données, mais depuis UCanAccess est un pilote JDBC nous pouvons utiliser le plus familier des instructions SQL (DML et DDL) au lieu d'avoir à apprendre le Jackcess API. Plus de détails ici.
OriginalL'auteur Sarath Kumar Sivan
Maintenant que le JDBC-ODBC Bridge a été supprimé à partir de Java (Java 8), les futurs lecteurs pourraient être intéressés par UCanAccess, gratuit et open-source Java pur pilote JDBC pour l'Accès aux bases de données. UCanAccess comprend un
newdatabaseversion
paramètre de connexion qui permettra de créer de l'Accès .accdb ou .mdb fichier si il n'existe pas déjà.Exemple de code:
Pour plus de détails sur comment configurer UCanAccess voir
Manipulation d'une base de données Access à partir de Java sans ODBC
Je crée des tableaux et ajouter des données" Oui. L'exemple de code ci-dessus en fait de créer un "Clients" de la table si elle n'existe pas déjà. C'est ce que l'
CREATE TABLE ...
d'instruction n'.File fichier = new File("testDb.accdb"); fichier.createNewFile(); String dbFileSpec = fichier.getAbsolutePath(); je suis entrain de créer un nouveau fichier et en utilisant toute votre logique et je suis d'exception: net.ucanaccess.jdbc.UcanaccessSQLException: Vider le fichier de base de données.
Dans mon cas d'utilisation j'ai besoin de créer de nouveaux fichiers et ajouter des données. Quand je suis en train de créer un nouveau fichier, puis il jette un UcanaccessSqlException: Vider le fichier de base de données. Comment puis-je gérer cela?
N'utilisez pas de
file.createNewFile()
. Il suffit d'inclure le chemin d'accès au fichier dans l'URL de connexion avec le;newdatabaseversion=V2010
paramètre et UCanAccess va créer le fichier pour vous. Si vous avez besoin de plus d'aide, veuillez poser une nouvelle question.OriginalL'auteur Gord Thompson
Vous pouvez utiliser la méthode ci-dessous au lieu de la configuration de source de données Système dans votre machine.
Ici "votre-base de données-fichier.mdb" est votre MS-Access, fichier. Vous pouvez donner le chemin complet de votre fichier de base de données dans votre code pour établir la connexion. Vous pouvez aussi conserver le fichier de base de données dans votre projet(application) de dossier. Dans ce cas, vous serez en mesure de donner à votre fichier de base de données avec la demande du client et qu'il/elle peut utiliser votre demande sans plus de configuration de source de données.
Espère que cela répond à vos fins!
Grâce à vous!
OriginalL'auteur Sarath Kumar Sivan
télécharger jackcess bibliothèque
utiliser cette bibliothèque qui va créer .fichier mdb.Soufflet est le code snipet
télécharger jackcess bibliothèques de emplacement ci-dessus. ajouter des fichiers jar dans le chemin de classe.
`
`
OriginalL'auteur Sarang A
Il semble qu'il y est au moins une option pour connecter directement .mdb sans JdbcOdbcDriver, que cette option est commercial. Voir ici. Si l'installation est ce que vous essayez d'éviter, avez-vous envisagé d'utiliser quelque chose d'une base de données incorporée comme sqlite?
OriginalL'auteur drew