سؤال

أنا منجذب إلى الدقة التي توفرها قاعدة بيانات ملف واحد.ما هي مكتبة برامج التشغيل/الموصلات المتوفرة للاتصال واستخدام SQLite مع Java.

لقد اكتشفت مكتبة مجمعة، http://www.ch-werner.de/javasqlite, ولكن هل هناك مشاريع أخرى أبرز؟

هل كانت مفيدة؟

المحلول

ال ويكي يسرد بعض الأغلفة الإضافية:

  • غلاف Java (حول واجهة SWIG): http://tk-software.home.comcast.net/
  • برنامج تعليمي جيد لاستخدام برنامج تشغيل JDBC لـ SQLite.(يعمل على الأقل!) http://www.ci.uchicago.edu/wiki/bin/view/VDS/VDSDevelopment/UsingSQLite
  • برنامج تشغيل JDBC متعدد الأنظمة يستخدم مكتبات SQLite الأصلية المضمنة على أنظمة التشغيل Windows وLinux وOS X، ويعود إلى تطبيق Java الخالص على أنظمة تشغيل أخرى: https://github.com/xerial/sqlite-jdbc (سابقا zentus)
  • جافا آخر - مجمع SWIG.يعمل فقط على Win32. http://rodolfo_3.tripod.com/index.html
  • سكليتي جافا شل:منفذ Java خالص بنسبة 100% من غلاف سطر الأوامر sqlite3 المبني باستخدام NestedVM.(هذا ليس برنامج تشغيل JDBC).
  • برنامج تشغيل SQLite JDBC لـ Mysaifu JVM:برنامج تشغيل SQLite JDBC لـ Mysaifu JVM ومكتبة SQLite JNI لنظام التشغيل Windows (x86) وLinux (i386/PowerPC).

نصائح أخرى

لقد وجدت سؤالك أثناء البحث عن المعلومات مع سكليتي وجافا.اعتقدت أنني سأضيف إجابتي التي نشرتها أيضًا على صفحتي مدونة.

لقد قمت بالبرمجة بلغة Java منذ فترة.لقد عرفت أيضًا عن SQLite ولكني لم أستخدمها مطلقًا... حسنًا، لقد استخدمتها من خلال مواقع أخرى التطبيقات ولكن لم يتم ذلك مطلقًا في التطبيق الذي قمت بترميزه.لذلك كنت بحاجة إليه لمشروع هذا الأسبوع وهو سهل الاستخدام للغاية!

لقد وجدت برنامج تشغيل Java JDBC لـ SQLite.فقط قم بإضافة ملف جار إلى مسار الفصل الخاص بك وقم باستيراد java.sql.*

سيقوم تطبيق الاختبار الخاص به بإنشاء ملف قاعدة بيانات، وإرسال بعض أوامر SQL لإنشاء جدول، وتخزين بعض البيانات في الجدول، وقراءتها مرة أخرى وعرضها على وحدة التحكم.سوف يقوم بإنشاء test.db الملف في الدليل الجذر للمشروع.يمكنك تشغيل هذا المثال باستخدام java -cp .:sqlitejdbc-v056.jar Test.

package com.rungeek.sqlite;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;

public class Test {
    public static void main(String[] args) throws Exception {
        Class.forName("org.sqlite.JDBC");
        Connection conn = DriverManager.getConnection("jdbc:sqlite:test.db");
        Statement stat = conn.createStatement();
        stat.executeUpdate("drop table if exists people;");
        stat.executeUpdate("create table people (name, occupation);");
        PreparedStatement prep = conn.prepareStatement(
            "insert into people values (?, ?);");

        prep.setString(1, "Gandhi");
        prep.setString(2, "politics");
        prep.addBatch();
        prep.setString(1, "Turing");
        prep.setString(2, "computers");
        prep.addBatch();
        prep.setString(1, "Wittgenstein");
        prep.setString(2, "smartypants");
        prep.addBatch();

        conn.setAutoCommit(false);
        prep.executeBatch();
        conn.setAutoCommit(true);

        ResultSet rs = stat.executeQuery("select * from people;");
        while (rs.next()) {
            System.out.println("name = " + rs.getString("name"));
            System.out.println("job = " + rs.getString("occupation"));
        }
        rs.close();
        conn.close();
    }
  }

أفهم أنك سألت على وجه التحديد عن SQLite، ولكن ربما قاعدة بيانات HSQL سيكون أكثر ملاءمة مع Java.إنه مكتوب بلغة Java نفسها، ويعمل في JVM، ويدعم جداول الذاكرة وما إلى ذلك.وكل هذه الميزات تجعله قابلاً للاستخدام تمامًا في النماذج الأولية واختبار الوحدات.

هناك مشروع جديد SQLJet هذا هو تطبيق Java خالص لـ SQLite.إنه لا يدعم جميع ميزات SQLite حتى الآن، ولكنه قد يكون خيارًا جيدًا جدًا لبعض مشاريع Java التي تعمل مع قواعد بيانات SQLite.

يبدو مشروع David Crawshaw (sqlitejdbc-v056.jar) قديمًا وآخر تحديث كان في 20 يونيو 2009، المصدر هنا

أود أن أوصي شوكة زيريال من مجمع Crawshaw sqlite.لقد قمت باستبدال sqlitejdbc-v056.jar بملف Xerials sqlite-jdbc-3.7.2.jar دون أي مشكلة.

يستخدم نفس بناء الجملة كما في إجابة بيرني وهو أسرع بكثير ومع أحدث مكتبة sqlite.

ما الذي يختلف عن SQLite JDBC الخاص بـ Zentus؟

برنامج تشغيل Zentus SQLite JDBC الأصلي http://www.zentus.com/sqlitejdbc/ نفسها هي أداة ممتازة لاستخدام قواعد بيانات SQLite من لغة Java ، كما تعتمد مكتبة SQLiteJDBC لدينا أيضًا على تنفيذها.ومع ذلك ، فإن إصدارها النقي ، الذي يترجم تمامًا رموز C/C ++ من SQLite إلى Java ، أبطأ بشكل كبير مقارنةً بإصدارها الأصلي ، والذي يستخدم ثنائيات SQLite التي تم تجميعها لكل نظام تشغيل (Win ، Mac ، Linux).

لاستخدام الإصدار الأصلي من SQLite-JDBC ، كان على المستخدم تعيين مسار على الرموز الأصلية (DLL ، JNILIB ، لذلك الملفات ، وهي برامج JNDI C) باستخدام وسيطات سطر الأوامر ، على سبيل المثال ، -djava.library.path = (المسار إلى DLL ، Jnilib ، إلخ) ، أو -dorg.sqlite.lib.path ، إلخ.كانت هذه العملية معرضة للخطأ ومزعجة في إخبار كل مستخدم بتعيين هذه المتغيرات.تعمل مكتبة SQLiteJDBC الخاصة بنا على التخلص تمامًا من هذه المضايقات.

هناك اختلاف آخر هو أننا نحتفظ بـ SQLiteJDBC Libray على أحدث إصدار من أحدث إصدار من SQLite Engine ، لأننا واحد من أهم مستخدمي هذه المكتبة.على سبيل المثال ، تعد SQLite JDBC مكونًا أساسيًا لمجموعة أدوات UTGB (University of Tokyo Genome Browser) ، وهي فائدتنا لإنشاء متصفحات جينوم مخصصة.

يحرر :كالعادة عندما تقوم بتحديث شيء ما، ستكون هناك مشكلات في مكان غامض في الكود الخاص بك (حدث لي).اختبار اختبار اختبار =)

مشاركة بيرني مفيدة جدًا.لم أستطع التصويت لصالح (ليس لديك سمعة كافية :( ).لكنها ساعدت كثيرا.فقط للتكرار!

http://www.zentus.com/sqlitejdbc/

هنا يمكنك العثور على أحدث إصدار من SQLite JDBC.ما عليك سوى إضافة الجرة إلى مسار الفصل الدراسي الخاص بك، وبذلك تكون قد انتهيت!:) يمكنك تشغيل نموذج التعليمات البرمجية الخاص ببيرني لاختبار ما إذا كان كل شيء على ما يرام.

http://souptonuts.sourceforge.net/readme_sqlite_tutorial.html http://www.sqlite.org/lang.html

هنا يمكنك العثور على بعض المساعدة حول بناء جملة SQL لـ SQLite.تحياتي لـ SQLite :)

عند تجميع التعليمات البرمجية وتشغيلها، يجب عليك تعيين قيمة خيارات مسار الفئة.تماما مثل ما يلي:

javac -classpath .;sqlitejdbc-v056.jar Text.java

java -classpath .;sqlitejdbc-v056.jar Text

يرجى الانتباه إلى ". والتفرقة "؛" (الفوز ، Linux IS ":")

يمكن تنزيل كود sqlitejdbc باستخدام git من https://github.com/crawshaw/sqlitejdbc.

# git clone https://github.com/crawshaw/sqlitejdbc.git sqlitejdbc
...
# cd sqlitejdbc
# make

ملحوظة:يتطلب Makefile حليقة ثنائية لتنزيل مكتبات/deps sqlite.

يؤدي رمز المثال إلى تسرب الذاكرة في Tomcat (بعد إلغاء نشر تطبيق الويب، يظل أداة تحميل الفصل في الذاكرة) مما سيؤدي إلى حدوث خطأ outofmemory مؤخراً.طريقة حلها هي استخدام sqlite-jdbc-3.7.8.jar;إنها لقطة، لذلك لم تظهر للمخضرم بعد.

خطأ مطبعي: java -cp .:sqlitejdbc-v056.jar Test

يجب ان يكون: java -cp .:sqlitejdbc-v056.jar; Test

لاحظ الفاصلة المنقوطة بعد ".jar" وآمل أن يساعد الناس، ويمكن أن يسبب الكثير من المتاعب

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top