Que dois-je faire pour éviter l'erreur “out of memory”, lors de la connexion jdbc avec base de données sqlite3?
Que dois-je faire pour éviter l'erreur "out of memory", lors de la connexion jdbc avec base de données sqlite3?
java.sql.SQLException: out of memory
at org.sqlite.DB.throwex(DB.java:288)
at org.sqlite.NestedDB._open(NestedDB.java:73)
at org.sqlite.DB.open(DB.java:77)
at org.sqlite.Conn.<init>(Conn.java:88)
at org.sqlite.JDBC.connect(JDBC.java:64)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at action.Actions.<init>(Actions.java:18)
at controler.ClientControler.<init>(ClientControler.java:14)
at main.Main.main(Main.java:20)
Class.forName("org.sqlite.JDBC");
conn = DriverManager.getConnection("jdbc:sqlite:clients.db");
- Quelle est la taille de la base de données et quels sont tes paramètres de la mémoire de la jvm (-Xmx)
- Cette base de données est de 4 ko, donc je pense que c'est un autre problème. J'ai lu quelque part, il peut être parce que le pilote ne peut pas trouver le fichier, mais j'ai mis le fichier dans diffrent des dossiers, il n'a pas aider... Peut-être que j'ai mis au mauvais dossier...
- Non, ce n'est pas ça.
- J'ai aussi ce problème, il est réel.
Vous devez vous connecter pour publier un commentaire.
Cette suggère que votre
clients.db
fichier n'a pas pu être trouvé. Essayez de localiser ce fichier de manière plus appropriée. Faites défiler jusqu'à la section intitulée "Comment Spécifier des Fichiers de Base de données".J'ai téléchargé le SQLite JAR, pour la mettre dans mon CLASSPATH, et a trouvé un tutoriel ici qui a fonctionné parfaitement, en moins de cinq minutes. Il a mis de test.db dans ma racine du projet, comme prévu.
J'ai réécrit le tutoriel de la façon dont je le ferais. Il fonctionne. Ne pas le dire, il n'apporte rien.
J'ai le même problème ici, et je pense que nous avons éprouvé quelques bug. L'exception n'est absolument pas causé par "le fichier non existant": j'ai soigneusement vérifié avec un bon scénario de test.
La base de données elle-même est créée à l'aide de sqlite3 officiel de l'outil de ligne de commande, donc pas de corrompre la base de données. Je peux vous dire que la lib est cassé en quelque sorte.
S'il vous plaît dites-moi quel est votre système d'exploitation et version JVM afin que je vois si elle correspond à la mienne, et nous pouvons préparer un rapport de bogue.
Oui, dans le cas d'un fichier non trouvé, il génère de ces étranges exception "out of memory".
Dans Eclipse IDE au lieu spécification de base de données le nom et le chemin d'accès séparément, mettre la base de données nom de fichier dans le champ: emplacement de Base de données.
Exemple: emplacement de Base de données: c:\temp\test.db
Si le chemin d'accès à votre base de données contient des espaces JDBC ne peut pas le trouver.
Par exemple
C:/Program Files
est faux. Doit êtreC:/Program_Files
.J'ai eu le même problème et maintenant ça fonctionne.
Je suis tombé sur cette question en essayant de vous connecter via Eclipse est "Source de Données de l'Explorateur".
Sur un Mac, quand j'ai double cliqué sur le nom de fichier dans la parcourir invite l'emplacement de base de données a été rempli avec le dossier et la base de données avec le nom de fichier. Quand j'ai ajouté manuellement le fichier de base de données pour la Base de données "location" j'étais alors en mesure de se connecter.
Comme DarkCthulhu déjà mentionné, vous ne devez pas avoir des espaces dans le chemin d'accès à votre fichier de base de données. Cela s'applique même si vous avez déclaré un chemin d'accès relatif (comme dans votre cas). Je parie que le chemin d'accès à votre projet contient un ou plusieurs espaces.
Vous pouvez le déclarer avec son chemin d'accès complet et des espaces échappé, ou en modifiant votre localisation du projet d'un chemin sans espaces!
J'ai juste connu le même problème et je l'ai résolu .
J'ai été en utilisant IntelliJ que mon IDE.
Je vais vous montrer comment j'ai résolu le problème par des captures d'écran , étape par étape.
Espérons que cela vous aidera .
1- allez dans affichage | de l'outil de windows | base de données .
2- maintenant, une fenêtre contenant le nom de votre base de données est ouverte dans la main droite.sélectionnez la base de données que vous souhaitez , puis appuyez sur "alt+Enter"
maintenant , sur la fenêtre qui s'ouvre , assurez-vous que vous avez rempli les zones de texte correct ! (ils doivent comprendre le "nom de fichier" . le répertoire n'est pas assez!!)
J'ai eu le même problème. Ma solution est de mettre à jour la dépendance sqlite-jdbc à partir de la version 3.7.2 pour 3.16.1