SQLite JDBC هي مكتبة للوصول إلى ملفات قاعدة بيانات SQLite وإنشائها في Java.
لا تتطلب مكتبة SQLiteJDBC الخاصة بنا أي تكوين نظرًا لأن المكتبات الأصلية لأنظمة التشغيل الرئيسية، بما في ذلك Windows وmacOS وLinux وما إلى ذلك، يتم تجميعها في ملف JAR (أرشيف Java) واحد.
تتم صيانة المشروع، ولكن لا يتم تطويره بشكل نشط:
نحن نتابع كل إصدار جديد من SQLite وسنقوم بإصدار نسخة مقابلة من برنامج التشغيل الخاص بنا.
سيتم التحقيق في الأخطاء وإصلاحها إن أمكن.
الميزات الجديدة مدفوعة بطلبات السحب.
المشرف الحالي على المشروع هو gotson.
➡️ المزيد من أمثلة الاستخدام والتكوين متوفرة في USAGE.md
SQLite JDBC هي مكتبة للوصول إلى قواعد بيانات SQLite من خلال JDBC API. للاستخدام العام لـ JDBC، راجع برنامج JDBC التعليمي أو وثائق Oracle JDBC.
قم بتنزيل sqlite-jdbc-3.47.1.0.jar
ثم قم بإلحاق ملف jar هذا في مسار الفصل الدراسي الخاص بك.
افتح اتصال قاعدة بيانات SQLite من التعليمات البرمجية الخاصة بك. (انظر المثال أدناه)
بافتراض أن sqlite-jdbc-3.47.1.0.jar
تم وضعه في الدليل الحالي.
> javac Sample.java
> java -classpath " .;sqlite-jdbc-3.47.1.0.jar " Sample # in Windows
or
> java -classpath " .:sqlite-jdbc-3.47.1.0.jar " Sample # in macOS or Linux
name = leo
id = 1
name = yui
id = 2
import java . sql . Connection ;
import java . sql . DriverManager ;
import java . sql . ResultSet ;
import java . sql . SQLException ;
import java . sql . Statement ;
public class Sample
{
public static void main ( String [] args )
{
// NOTE: Connection and Statement are AutoCloseable.
// Don't forget to close them both in order to avoid leaks.
try
(
// create a database connection
Connection connection = DriverManager . getConnection ( "jdbc:sqlite:sample.db" );
Statement statement = connection . createStatement ();
)
{
statement . setQueryTimeout ( 30 ); // set timeout to 30 sec.
statement . executeUpdate ( "drop table if exists person" );
statement . executeUpdate ( "create table person (id integer, name string)" );
statement . executeUpdate ( "insert into person values(1, 'leo')" );
statement . executeUpdate ( "insert into person values(2, 'yui')" );
ResultSet rs = statement . executeQuery ( "select * from person" );
while ( rs . next ())
{
// read the result set
System . out . println ( "name = " + rs . getString ( "name" ));
System . out . println ( "id = " + rs . getInt ( "id" ));
}
}
catch ( SQLException e )
{
// if the error message is "out of memory",
// it probably means no database file is found
e . printStackTrace ( System . err );
}
}
}
تحتوي حزمة برامج تشغيل SQLite JDBC الخاصة بنا (على سبيل المثال، sqlite-jdbc-3.47.1.0.jar
) على ثلاثة أنواع من مكتبات SQLite الأصلية ( sqlitejdbc.dll
و sqlitejdbc.dylib
و sqlitejdbc.so
)، وقد تم تجميع كل منها لأنظمة Windows وmacOS وLinux. . يتم استخراج ملف المكتبة الأصلية المناسب تلقائيًا إلى المجلد المؤقت لنظام التشغيل لديك، عندما يقوم برنامجك بتحميل برنامج التشغيل org.sqlite.JDBC
.
منذ sqlite-jdbc-3.6.19، سيتم استخدام محركات SQLite المترجمة أصلاً لأنظمة التشغيل التالية:
x86 | x86_64 | Armv5 | Armv6 | Armv7 | ذراع64 | ppc64 | riscv64 | |
---|---|---|---|---|---|---|---|---|
ويندوز | ✔ | ✔ | ✔ | ✔ | ||||
ماك | ✔ | ✔ | ||||||
لينكس (ليبك) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
لينكس (مصل) | ✔ | ✔ | ✔ | |||||
أندرويد (مستوى واجهة برمجة التطبيقات 24+) | ✔ | ✔ | ✔ | ✔ | ||||
فري بي إس دي | ✔ | ✔ | ✔ |
في أنظمة التشغيل الأخرى غير المذكورة أعلاه، يتم استخدام Java SQLite النقي. (ينطبق على الإصدارات قبل 3.7.15)
إذا كنت تريد استخدام المكتبة الأصلية لنظام التشغيل لديك، فقم ببناء المصدر من البداية.
يدعم Sqlite JDBC صورة GraalVM الأصلية المبتكرة بدءًا من الإصدار 3.40.1.0. كان هناك دعم أولي لبعض الإصدارات قبل ذلك، ولكن لم يتم اختبار ذلك بشكل فعال بواسطة CI.
افتراضيًا، سيتم تضمين مكتبة sqlitejdbc
لهدف التجميع في الصورة الأصلية، مصحوبة بتكوين JNI المطلوب. في وقت التشغيل، سيتم استخراج هذه المكتبة إلى المجلد المؤقت وتحميلها من هناك. ومع ذلك، لبدء تشغيل أسرع، فمن المستحسن تعيين الخاصية org.sqlite.lib.exportPath
في وقت الإنشاء. سيؤدي هذا إلى تصدير مكتبة sqlitejdbc
في وقت الإنشاء إلى الدليل المحدد، ولن يتم تضمين المكتبة كمورد. ونتيجة لذلك، ستكون الصورة الأصلية نفسها أصغر قليلاً وسيتم التخلص من الحمل الزائد لتصدير المكتبة في وقت التشغيل، ولكن عليك التأكد من إمكانية العثور على المكتبة في وقت التشغيل. أفضل طريقة للقيام بذلك هي ببساطة وضع المكتبة بجوار الملف القابل للتنفيذ.
native-image -Dorg.sqlite.lib.exportPath= ~ /outDir -H:Path= ~ /outDir -cp foo.jar org.example.Main
سيؤدي هذا إلى وضع كل من مكتبة sqlitejdbc
المشتركة ومخرجات الصورة الأصلية في المجلد ~/outDir
.
يستخدم هذا المثال المكوّن الإضافي maven الأصلي:
< plugin >
< groupId >org.graalvm.buildtools</ groupId >
< artifactId >native-maven-plugin</ artifactId >
< configuration >
< buildArgs >
< buildArg >-Dorg.sqlite.lib.exportPath=${project.build.directory}</ buildArg >
</ buildArgs >
</ configuration >
</ plugin >
سيؤدي هذا تلقائيًا إلى وضع مكتبة sqlitejdbc
في المجلد /target
الخاص بمشروعك، مما يؤدي إلى إنشاء بيئة تنفيذ وظيفية. عند تعبئة التطبيق الناتج، ما عليك سوى تضمين المكتبة في حزمة التوزيع.
قم بالتنزيل من Maven Central أو من صفحة الإصدارات.
< dependencies >
< dependency >
< groupId >org.xerial</ groupId >
< artifactId >sqlite-jdbc</ artifactId >
< version >3.47.1.0</ version >
</ dependency >
</ dependencies >
تتوفر لقطات من إصدار التطوير في مستودع لقطات Sonatype.
يتم توقيع موارد Maven Central باستخدام GPG وتتوفر ملفات التوقيع التي تنتهي بـ .asc في نفس الموقع مثل التنزيلات الأخرى.
يُستخدم المفتاح التالي حاليًا لتوقيع الإصدارات:
-----بدء كتلة المفاتيح العامة لـ PGP----- تعليق: C1CB A75E C9BD 0BAF 8061 9354 59E0 5CE6 1818 7ED4 التعليق: Taro L. Saito (لإجراءات GitHub) <[email protected]> xjMEYuRVGhYJKwYBBAHaRw8BAQdA2Dp4m1Yhtb1g94pQzzL24FuP6b9KXF8lP9Dh hZnynhfNM1Rhcm8gTC4gU2FpdG8gKEZvciBHaXRIdWIgQWN0aW9ucykgPGxlb0B4 ZXJpYWwub3JnPsKUBBMWCgA8FiEEwcunXsm9C6+AYZNUWeBc5hgYftQFAmLkVRoC GwMFCwkIBwIDIGIBBhUKCQgLAgQWAgMBah4HAheAAAAoJEFngXOYYGH7UfPwBAK7x TVRebZeWcAwmGaMUsbg7SgJou8xnkhByObPLUC/4AQDPsZeYmi4KXyXPzmqhCicd Y+ZSJWIDQqitK2ujPDFXA844BGLkVRoSCisGAQQBl1UBBQEBB0Atu9kejBi+6wfO T0a9z/LYEEdNXM/VX6xt1onKToPPdQMBCAfCeAQYFgoAIBYhBMHLp17JvQuvgGGT VFngXOYYGH7UBQJi5FUaAhsMAAoJEFngXOYYGH7UlMABAKyRCazhVyUFg5FOpAnm ckBY38CaMGPPPLXVyY8Kr6dYFAP9wYLu7nsDZCOXkAgS+et4Pk1WZCggoYUkxsX1o 0KZXBQ== =واياس -----نهاية كتلة المفاتيح العامة لـ PGP-----
يتبع إصدار المشروع إصدار مكتبة SQLite المجمعة في الجرة، مع رقم إضافي للإشارة إلى زيادة المشروع.
على سبيل المثال، إذا كان إصدار SQLite هو 3.39.2
، فسيكون إصدار المشروع 3.39.2.x
، حيث يبدأ x
عند 0، ويتزايد مع كل إصدار لا يغير إصدار SQLite.
إذا تم تحديث إصدار SQLite إلى 3.40.0
، فسيتم تحديث إصدار المشروع إلى 3.40.0.0
.
قد تحتاج إلى إضافة محول البرنامج المساعد الظل لحل مشكلة No suitable driver found for jdbc:sqlite:
< transformer
implementation= " org.apache.maven.plugins.shade.resource.AppendingTransformer " >
< resource >META-INF/services/java.sql.Driver</ resource >
</ transformer >
< dependency >
< groupId >org.xerial</ groupId >
< artifactId >sqlite-jdbc</ artifactId >
< version >3.47.1.0</ version >
</ dependency >
نحن نبحث دائما عن:
المراجعين للقضايا أو العلاقات العامة، يمكنك التحقق
المساهمين لتقديم العلاقات العامة، يمكنك التحقق و
يرجى قراءة دليل المساهمة لدينا.