জাভা এবং এসকিউএলাইট [বন্ধ]


333

আমি একক ফাইল ডাটাবেস সরবরাহ করে এমন ঝরঝরে মনোযোগী। জাভা সহ এসকিউএলাইট সংযোগ এবং ব্যবহার করতে ড্রাইভার / সংযোগকারী লাইব্রেরিটি কী আছে।

আমি একটি মোড়কের লাইব্রেরিটি আবিষ্কার করেছি, http://www.ch-werner.de/javasqlite , তবে আরও কি আরও বিশিষ্ট প্রকল্পগুলি পাওয়া যায়?


9
আমি ভালবাসি যে শত শত উত্সাহের সাথে একটি প্রশ্ন, এবং যেগুলির উত্তরগুলির শত শত উপস্থাপনা রয়েছে, "অফ-টপিক" হিসাবে বন্ধ রয়েছে। এটি এম্বারসাইসিংয়ের মতো, LOL
অ্যান্ড্রু কোস্টার

উত্তর:


196

উইকি তালিকা আরো কিছু চাদরে:

  • জাভা মোড়ক (একটি SWIG ইন্টারফেসের চারপাশে): http://tk-software.home.comcast.net/
  • এসকিউএলাইটের জন্য জেডিবিসি ড্রাইভার ব্যবহার করার জন্য একটি ভাল টিউটোরিয়াল। (এটা অন্তত কাজ করে!) http://www.ci.uchicago.edu/wiki/bin/view/VDS/VDSDevelopment/UsingSQLite
  • ক্রস প্ল্যাটফর্ম জেডিবিসি ড্রাইভার যা উইন্ডোজ, লিনাক্স, ওএস এক্স-এ এম্বেডড নেটিভ এসকিউএলাইট লাইব্রেরি ব্যবহার করে এবং অন্যান্য ওএসগুলিতে খাঁটি জাভা প্রয়োগে ফিরে আসে: https://github.com/xerial/sqlite-jdbc (পূর্বে জেন্টাস )
  • আরেকটি জাভা - এসডব্লিউআইজি র‌্যাপার। এটি কেবল উইন 32 এ কাজ করে। http://rodolfo_3.tripod.com/index.html
  • স্ক্লাইট-জাভা-শেল: নেস্টেডভিএম দিয়ে নির্মিত স্কেলাইট 3 কমান্ডলাইন শেলের 100% খাঁটি জাভা বন্দর। (এটি জেডিবিসি ড্রাইভার নয়)।
  • মাইসাইফু জেভিএম-এর এসকিউএলাইট জেডিবিসি ড্রাইভার: মাইসাইফু জেভিএম এবং এসকিউএল জেএনআই লাইব্রেরির জন্য উইন্ডোজ (x86) এবং লিনাক্স (i386 / পাওয়ারপিসি)।

7
এই তালিকার সাথে আমার সংযোজনটি sqlite4java - code.google.com/p/sqlite4java - এটি একটি মোড়ক (কোনও জেডিবিসি নয়); উইন্ডোজ, ম্যাক, লিনাক্সের জন্য পূর্বনির্ধারিত। এটি ব্যবহার করা সহজ এবং এটি বিকাশকারীকে এসকিউএলাইটের অপব্যবহার এড়াতে সহায়তা করার জন্য কিছু চুক্তি প্রয়োগ করে।
সেরেদা

7
স্ক্লাইট 4 জাভা আকর্ষণীয় দেখায়, তবে তাদের এখানে বিভিন্ন র‍্যাপারগুলির একটি দুর্দান্ত তুলনাও
স্কট বেনেট-ম্যাকলিশ

1
জেন্টাস ড্রাইভারের সাথে আমি যে সমস্যাটি পেয়েছি তা কি কেডিটি হ'ল এটি মনে হচ্ছে যে এটি বিএলওবি'র সমর্থন করে না
মার্টিজন

12
@ মার্তিজন এক্সরিয়াল.আর / ট্র্যাক / এক্সারিয়াল / উইকি / এসকিউএলটিজেডিবিসি হ'ল জেন্টাসের ড্রাইভারের একটি কাঁটাচামচ এবং বিএলওবি সমর্থন করে (তাদের সাইটে একটি সংক্ষিপ্ত আলোচনা আছে)।
johnharris85


247

এসকিউএলাইট এবং জাভা সম্পর্কিত তথ্য অনুসন্ধান করার সময় আমি আপনার প্রশ্নটি পেয়েছি । ভেবেছিলাম আমি আমার উত্তর যুক্ত করব যা আমি আমার ব্লগে পোস্ট করেছি ।

আমি জাভাতে কিছুক্ষণের জন্য কোডিং করছি। আমি এসকিউএলাইট সম্পর্কেও জানলাম তবে এটি কখনও ব্যবহার করিনি ... ভাল আমি এটি অন্যান্য অ্যাপ্লিকেশনগুলির মাধ্যমে ব্যবহার করেছি তবে আমি কোড করেছিলাম এমন কোনও অ্যাপ্লিকেশন কখনও ব্যবহার করে নি। সুতরাং আমি এই সপ্তাহে একটি প্রকল্পের জন্য এটি প্রয়োজন এবং এটি এত সহজ ব্যবহার!

আমি এসকিউএলাইটের জন্য একটি জাভা জেডিবিসি ড্রাইভার পেয়েছি। আপনার ক্লাসপথে জার ফাইলটি যুক্ত করুন এবং java.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();
    }
  }

1
এই কারণেই আমি মনে করি যে জোয়েল বুল কথা বলছিল (গুগল প্রযুক্তি আলাপ: youtube.com/watch?v=NWHfY_lvKIQ ) যখন বলছিলেন যে স্ট্যাকওভারফ্লো ডটকমের ডিজাইনটি ইন্টারনেটে প্রায় "পুরানো" পোস্টের কারণে আরও ভাল। এটা শুধু একটি rechash।
নিকোলোস

26
এছাড়াও লক্ষ্য করুন যে ক্র্যাশওয়া প্রকল্পটি বিরতিতে দেখে মনে হচ্ছে, তবে এখানে কাঁটাচামচ করা হয়েছে এবং আপডেট হয়েছে: xerial.org/trac/Xerial/wiki/SQLiteJDBC
lapo

8
zentus.com ভাঙা মনে হচ্ছে, এখানে আয়না পাওয়া গেছে; priede.bf.lu.lv/pub/DatuBazes/SQLite/SkliteJDBC/about.htm
ড্যানিয়েল ম্যাগনসন

3
ধন্যবাদ @ ড্যানিয়েল ম্যাগনুসন, আপনি জীবন রক্ষাকারী। বিষয়টিতে থাকা সত্ত্বেও যে কেউ স্ক্লাইটজেডিবিসি ড্রাইভারের সন্ধান করছে সে priede.bf.lu.lv/pub/DatuBazes/SQLite/SqliteJDBC/… যেতে পারে যেহেতু সম্পর্কে htm লিঙ্কটি লিঙ্কটি ভুল।
জাভাতারz


30

আমি বুঝতে পেরেছি যে আপনি বিশেষত এসকিউএলাইট সম্পর্কে জিজ্ঞাসা করেছিলেন, তবে সম্ভবত এইচএসকিউএল ডাটাবেস জাভাটির সাথে আরও ভাল ফিট হবে। এটি নিজেই জাভাতে লেখা হয়েছে, জেভিএম-এ চালিত হয়, ইন-মেমরি টেবিলগুলি সমর্থন করে এবং এগুলি বৈশিষ্ট্যগুলি প্রোটোটাইপিং এবং ইউনিট-পরীক্ষার জন্য এটি যথেষ্ট ব্যবহারযোগ্য করে তোলে।


3
হ্যাঁ এইচএসকিউএল খুব ভাল পছন্দ এবং ভাল প্রভাবের জন্য আমি বেশ কয়েকটি ক্লায়েন্ট অ্যাপ্লিকেশনগুলিতে এটি বেশ ব্যাপকভাবে ব্যবহার করেছি। এই উদাহরণস্বরূপ, আমি সত্যই এসকিউএলাইট ব্যবহার করতে চাই না।
স্কট বেনেট-ম্যাকলিশ

18

ডেভিড ক্র্যাশো প্রকল্প (স্ক্লাইটেজেডবিসি-ভি056.জার) পুরানো মনে হচ্ছে এবং শেষ আপডেটটি ছিল 20 জুন, ২০০৯, উত্সটি এখানে

আমি ক্র্যাশওয়ালা স্ক্লাইটের মোড়কের জেরিয়ালস কাঁটাচামড়াটি পুনরায় পেশ করব। আমি serlitejdbc-v056.jar প্রতিস্থাপন করেছি জেরিয়ালস স্ক্লাইট- jdbc-3.7.2.jar ফাইলটি কোনও সমস্যা ছাড়াই।

বার্নির উত্তরের মতো একই সিনট্যাক্স ব্যবহার করে এবং আরও দ্রুত এবং সর্বশেষ স্ক্লাইট লাইব্রেরি সহ।

জেন্টাসের এসকিউএল জেডিবিসি থেকে আলাদা কী?

আসল জেন্টাসের এসকিউএল জেডিবিসি ড্রাইভার http://www.zentus.com/sqlitejdbc/ নিজেই জাভা ভাষা থেকে এসকিউএল ডাটাবেস ব্যবহার করার জন্য একটি দুর্দান্ত ইউটিলিটি এবং আমাদের এসকিউএলটিজেডিবিসি লাইব্রেরিও এর প্রয়োগের উপর নির্ভর করে। যাইহোক, এর খাঁটি-জাভা সংস্করণ, যা এসকিউএলাইটের সি / সি ++ কোডগুলিকে পুরোপুরি জাভাতে অনুবাদ করে, তার নেটিভ সংস্করণের তুলনায় উল্লেখযোগ্যভাবে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে এটি প্রতিটি ওএস (উইন, ম্যাক, লিনাক্স) জন্য সংকলিত এসকিউয়ালাইট বাইনারি ব্যবহার করে।

স্ক্লাইট-জেডিবিসি-র স্থানীয় সংস্করণটি ব্যবহার করতে, ব্যবহারকারীকে কমান্ড-লাইন আর্গুমেন্টগুলি ব্যবহার করে নেটিভ কোডগুলিতে (dll, jnilib, সুতরাং ফাইলগুলি, যা JNDI সি প্রোগ্রাম) একটি পথ নির্ধারণ করতে হয়েছিল, যেমন, -jj.library.path = (dll, jnilib, ইত্যাদির পথ), অথবা -Dorg.sqlite.lib.path, ইত্যাদি This এই প্রক্রিয়াটি প্রতিটি ব্যবহারকারীকে এই ভেরিয়েবলগুলি সেট করতে বলার জন্য ত্রুটি-প্রবণ এবং বিরক্তিকর ছিল। আমাদের এসকিউএলটিজেডিবিসি লাইব্রেরি এই অসুবিধাগুলি পুরোপুরি সরিয়ে দেয়।

আর একটি পার্থক্য হ'ল আমরা এই এসকিউএলটিজেডিবিসি লাইব্রিকে এসকিউএল ইঞ্জিনের নতুন সংস্করণে আপ টু ডেট রাখছি কারণ আমরা এই লাইব্রেরির অন্যতম জনপ্রিয় ব্যবহারকারী are উদাহরণস্বরূপ, এসকিউএল জেডিবিসি হ'ল ইউটিজিবি (টোকিও জিনোম ব্রাউজার বিশ্ববিদ্যালয়) টুলকিটের মূল উপাদান, যা ব্যক্তিগতকৃত জিনোম ব্রাউজারগুলি তৈরি করার জন্য আমাদের ইউটিলিটি।

সম্পাদনা : যথারীতি আপনি যখন কোনও কিছু আপডেট করেন তখন আপনার কোডের কিছু অস্পষ্ট জায়গায় সমস্যা হবে (আমার কাছে ঘটেছিল)। পরীক্ষা পরীক্ষা পরীক্ষা =)


1
sqlite-jdbcপ্রকল্পের মহান, কিন্তু সচেতন এটা যে হতে অ্যাপাচি লাইসেন্স । সুতরাং আপনার কোডটি FOSS বা স্বত্বাধিকারী কিনা তা আপনার ব্যবহার করতে হবে আপনাকে অবশ্যই এট্রিবিউশন দিতে হবে।
dotancohen

16

একটি নতুন প্রকল্প এসকিউএল জেট রয়েছে যা এসকিউএলাইটের খাঁটি জাভা বাস্তবায়ন। এটি এখনও সমস্ত এসকিউএল বৈশিষ্ট্য সমর্থন করে না, তবে জাভা প্রকল্পগুলির যে এসকিউএলাইট ডাটাবেসগুলির সাথে কাজ করে তাদের জন্য খুব ভাল বিকল্প হতে পারে।


4
এটি আশাব্যঞ্জক দেখাচ্ছে তবে মনে হচ্ছে এটি এখনও কোনও এসকিউএল ক্যোয়ারী ক্ষমতা সরবরাহ করে না, এটি আমার জন্য একধরণের চুক্তি ভঙ্গকারী।
স্কট বেনেট-ম্যাকলিশ

তবুও নিম্ন স্তরের এপিআই, এসকিউএল কোয়েরিগুলি সমর্থন করে না।
বাসেল শিশানী

অ্যাপ্লিকেশনগুলির জন্য এখনও খুব দরকারী যেখানে আপনাকে কেবল এসকিউএল ফাইল তৈরি করতে হবে, অর্থাত্ ডেটা অনুসন্ধানের জন্য এসকিউএল প্রয়োজন নেই।
13কেমিস্ট

5

বার্নির পোস্টটি খুব সহায়ক। ভোট দিতে পারেনি (পর্যাপ্ত খ্যাতি নেই :() But তবে এটি অনেক সাহায্য করেছে Just পুনরাবৃত্তি করার জন্য!

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

এখানে আপনি সর্বশেষতম এসকিউএল জেডিবিসি জারটি পেতে পারেন। আপনার ক্লাসপাথে কেবল বয়াম যুক্ত করুন এবং আপনার কাজ শেষ হয়েছে! :) সবকিছু ঠিক আছে কিনা তা পরীক্ষা করতে আপনি বার্নির নমুনা কোডটি চালাতে পারেন।

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

এখানে আপনি এসকিউএলাইটের জন্য এসকিউএল সিন্টেক্সে কিছু সহায়তা পেতে পারেন। এসকিউএলাইটে চিয়ার্স :)


3

আপনি যখন কোডটি সংকলন এবং চালনা করেন তখন আপনার ক্লাসপাথ বিকল্পগুলির মান সেট করা উচিত। ঠিক নীচের মত:

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

java -classpath .;sqlitejdbc-v056.jar Text

"দয়া করে মনোযোগ দিন।" এবং স্পারাট ";" (জয়, লিনাক্সটি ":")


3

sqlitejdbc কোডটি https://github.com/crawshaw/sqlitejdbc থেকে গিট ব্যবহার করে ডাউনলোড করা যায় ।

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

দ্রষ্টব্য: Makefile স্ক্লাইট লাইব্রেরি / ডিপো ডাউনলোড করতে কার্ল বাইনারি প্রয়োজন।


2

উদাহরণ কোড টমকেটে একটি মেমরি ফাঁসের দিকে পরিচালিত করে (ওয়েব অ্যাপ্লিকেশনটি প্রকাশ না করার পরে, ক্লাসলোডার এখনও স্মৃতিতে রয়ে গেছে) যা পরিণতি ঘটায় outofmemory। এটির সমাধানের উপায়টি স্ক্লাইট-জেডিবিসি-৩.7.৮.জার ব্যবহার করা ; এটি একটি স্ন্যাপশট, সুতরাং এটি maven জন্য প্রদর্শিত হবে না।


0

টাইপো: java -cp .:sqlitejdbc-v056.jar Test

হতে হবে: java -cp .:sqlitejdbc-v056.jar; Test

".jar" এর পরে সেমিকোলনটি লক্ষ্য করুন আমি আশা করি যে মানুষকে সাহায্য করে, অনেক ঝামেলা সৃষ্টি করতে পারে


বিশদ যত্ন? * নিক্সে; টেস্ট কমান্ড থেকে জাভা আলাদা করবে (এবং এর ফলে একটি ত্রুটি তৈরি করবে)। উইন্ডোজ দ্য সি: সিপেটর হিসাবে কাজ করবে না। সুতরাং সব .:xxx.jar;কিছু বোঝার জন্য না। এবং আপনাকে টেস্ট ক্লাসের জন্য প্যাকেজের নামও নির্দিষ্ট করতে হবে।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.