Меню

Как подключить sqlite к java

Как подключить sqlite к java

GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.

GitHub is where the world builds software

Millions of developers and companies build, ship, and maintain their software on GitHub — the largest and most advanced development platform in the world.

Use Git or checkout with SVN using the web URL.

Work fast with our official CLI. Learn more.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

SQLite JDBC Driver

SQLite JDBC is a library for accessing and creating SQLite database files in Java.

Our SQLiteJDBC library requires no configuration since native libraries for major OSs, including Windows, Mac OS X, Linux etc., are assembled into a single JAR (Java Archive) file. The usage is quite simple; download our sqlite-jdbc library, then append the library (JAR file) to your class path.

Post bug reports or feature requests to Issue Tracker

SQLite JDBC is a library for accessing SQLite databases through the JDBC API. For the general usage of JDBC, see JDBC Tutorial or Oracle JDBC Documentation.

Sample.java

How to Specify Database Files

Here is an example to select a file C:\work\mydatabase.db (in Windows)

A UNIX (Linux, Mac OS X, etc) file /home/leo/work/mydatabase.db

How to Use Memory Databases

SQLite supports on-memory database management, which does not create any database files. To use a memory database in your Java code, get the database connection as follows:

sqlite-jdbc extracts a native library for your OS to the directory specified by java.io.tmpdir JVM property. To use another directory, set org.sqlite.tmpdir JVM property to your favorite path.

2016 09-26: sqlite-jdbc-3.14.2

2015 Oct 3rd: sqlite-jdbc-3.8.11.2

2015 August 3rd: sqlite-jdbc-3.8.11.1

2015 July 29th: sqlite-jdbc-3.8.11 release.

2015 July 27th: sqlite-jdbc-3.8.10.2 release (Thread-safe date time)

2015 May 11th: sqlite-jdbc-3.8.10.1 release

2015 May 7th: sqlite-jdbc-3.8.9.1 release

2014 October 20th: sqlite-jdbc-3.8.7 released.

2014 October 8th: sqlite-jdbc-3.8.6 released.

2014 January 5th: sqlite-jdbc4-3.8.2-SNAPSHOT Introduced JDBC4 version of driver. (Requires at least Java 6).

2013 August 27th: sqlite-jdbc-3.8.0 snapshot version is available

2013 January 22nd: The repositories and documentations were moved to the bitbucket.

2010 August 27th: sqlite-jdbc-3.7.2 released

2009 December 10th: sqlite-jdbc-3.6.20.1 release.

Read-only connection, recursive trigger, foreign key validation support etc. using SQLiteConfig class.

2009 November 12th: sqlite-jdbc-3.6.19 released.

2009 August 19th: sqlite-jdbc-3.6.17.1 released.

2009 February 18th: sqlite-jdbc-3.6.11 released.

2009 January 19th: sqlite-jdbc-3.6.10 released. This version is compatible with sqlite version 3.6.10. http://www.sqlite.org/releaselog/3_6_10.html

Added READ_UNCOMMITTED mode support for better query performance: (see also http://www.sqlite.org/sharedcache.html )

Читайте также:  Как подключить континент ап к интернету

2008 December 17th: sqlite-jdbc-3.6.7 released.

2008 December 1st: sqlite-jdbc-3.6.6.2 released,

2008 November 20th: sqlite-jdbc-3.6.6 release.

2008 November 11th: sqlite-jdbc-3.6.4.1. A bug fix release

2008 October 16th: sqlite-jdbc-3.6.4 released.

2008 October 14th: sqlite-jdbc-3.6.3 released. Compatible with SQLite 3.6.3.

2008 September 18th: sqlite-jdbc-3.6.2 released. Compatible with SQLite 3.6.2 and contains pure-java and native versions.

2008 July 17th: sqlite-jdbc-3.6.0 released. Compatible with SQLite 3.6.0, and includes both pure-java and native versions.

2008 July 3rd: sqlite-jdbc-3.5.9-universal released. This version contains both native and pure-java SQLite libraries, so it probably works in any OS environment.

2008 May 29th: Current development revision (sqlite-jdbc-3.5.9-1) can be compiled with JDK 6. No need to use JDK 1.5 for compiling SQLiteJDBC.

2008 May 20th: sqlite-jdbc-3.5.9 released.

2008 May 20th: sqlite-jdbc-3.5.8 released (corresponding to SQLite 3.5.8 and sqlite-jdbc-v047). From this release, Windows, Mac OS X, Linux (i386, amd64) and Solaris (SunOS, sparcv9) libraries are bundled into one jar file.

2008 May 1st: sqlite-jdbc is now in the maven central repository! How to use SQLiteJDBC with Maven2

2008 Mar. 18th: sqlite-jdbc-3.5.7 released.

2008 Mar. 10th: sqlite-jdbc-v042 released.

2008 Jan. 31st: sqlite-jdbc-v038.4 released.

2008 Jan. 11th: The Jar files for Windows, Mac OS X and Linux are packed into a single Jar file! So, no longer need to use an OS-specific jar file.

2007 Dec. 31th: Upgraded to sqlitejdbc-v038

Download the latest version of SQLiteJDBC from the downloads page.

The early releases (beta) of sqlite-jdbc with some advanced features are available from here

Supported Operating Systems

Since sqlite-jdbc-3.6.19, the natively compiled SQLite engines will be used for the following operating systems:

In the other OSs not listed above, the pure-java SQLite is used. (Applies to versions before 3.7.15)

If you want to use the native library for your OS, [build the source from scratch.

How does SQLiteJDBC work?

This program follows the Apache License version 2.0 (http://www.apache.org/licenses/ ) That means:

It requires you to:

It does not require you to:

Using SQLiteJDBC with Maven2

If you are familiar with Maven2, add the following XML fragments into your pom.xml file. With those settings, your Maven will automatically download our SQLiteJDBC library into your local Maven repository, since our sqlite-jdbc libraries are synchronized with the Maven’s central repository.

To use snapshot/pre-release versions, add the following repository to your Maven settings:

Hint for maven-shade-plugin

You may need to add shade plugin transformer to solve No suitable driver found for jdbc:sqlite: issue.

Using SQLiteJDBC with Tomcat6 Web Server

(The following note is no longer necessary since sqlite-jdbc-3.8.7)

Do not include sqlite-jdbc-(version).jar in WEB-INF/lib folder of your web application package, since multiple web applications hosted by the same Tomcat server cannot load the sqlite-jdbc native library more than once. That is the specification of JNI (Java Native Interface). You will observe UnsatisfiedLinkError exception with the message «no SQLite library found».

Читайте также:  Как подключить к компьютеру принтер epson l200

If you are using Maven for your web application, set the dependency scope as ‘provided’, and manually put the SQLite JDBC jar file into (TOMCAT_HOME)/lib folder.

What is different from Zentus’ SQLite JDBC?

The current sqlite-jdbc implementation is forked from Zentus’ SQLite JDBC driver. We have improved it in two ways:

Another difference is that we are keeping this SQLiteJDBC library up-to-date to the newest version of SQLite engine, because we are one of the hottest users of this library. For example, SQLite JDBC is a core component of UTGB (University of Tokyo Genome Browser) Toolkit, which is our utility to create personalized genome browsers.

Источник

Java SQLite ORM

БД имеют неприятную особенность, когда нужно создавать множество запросов, контролировать связи, формировать все вручную. Для облегчения жизни программиста есть ORM (Object Relation Mapping).

В данном уроке мы познакомимся с такой библиотекой как ORMLite. Эта библиотека позволяет создать представление таблиц и их отношений в виде обычных классов. Таким образом, мы уйдем от написания тяжелый и затрудняющих чтение и понимание классов к управлению объектами.

Шаг 1

Шаг 2

Создание таблички question:

Создание таблички category:

Создание таблички answer:

Шаг 3

После создания табличек, их нужно заполнить данными. Заполним полноценных 2 объекта. 1 question, 1 category, 2 answer.

category:

question:

answer:

Шаг 4

Теперь создадим соответствующие классы в нашем проекте. Классы должны содержать сеттеры, геттеры и конструктор по умолчанию.

Question:

Category:

Answer:

Шаг 5

Подключаем нашу библиотеку ORMLite. Ее можно взять с офф. сайта по ссылке: http://ormlite.com/releases/ или, подключить с помощью Maven.

Для того чтобы проверять правильность настройки можно использовать библиотеку Junit:

Шаг 6

Подключив библиотеки, приступаем к аннотированию классов, чтобы определить их связи.

Category:

@DatabaseTable – для указание на табличку с базы.

tableName – eсли имя класса не совпадает с именем таблички

@DatabaseField – указывает что поле является столбцом.

columnName – указать имя колонки самостоятельно. (Если имя колонки не совпадает с именем поля класса)
Id – поле является идентификатором
generatedId – идентификатор генерируется автоматиески
foreign – ссылается на другой класс, который также хранит в себе таблицу

Answer:

Question:

@ForeignCollectionField – получает коллекцию данных зависимой таблички.

Шаг 7

После создания сущностей и связывания их с табличками в БД создаем сервис, для управления их поведением. ORMLite дает легкий способ создания DAO (Data Accsess Object) который мы используем для построения нашего сервиса. Чтобы урок не разростался и дальше, приведу код одного из сервиса.

url – путь к нашей бд

source = new JdbcConnectionSource(url) – создаем подключение к нашей базе по url

dao = DaoManager.createDao(source,Question.class) – создание DAO для класса. Он будет использоваться
для того чтобы управлять объектом, выполнять над ним операции чтения, сохранения, удаления, изменения и т.д в базе.

dao.queryForAll() – возвращает все данные с таблички query и зависимых табличек.

Читайте также:  Как подключить духовку и варочную поверхность к одной розетке

Пример выполнения метода getAll() с тестового набора для класса Questions:

1 – это лог наших запросов, информация о работе библиотеки

2 – наш результат, который мы ждали. вывод с таблички answer есть корректным. Для вывода его в “человеческом” виде, достаточно сделать обработку этой коллекции.

В заключение, можно выполнять аналогичным образом операции CRUD (Create Read Update Delete), а также, есть пара дополнительных методов, которые добавят возможностей. Об этом, по необходимости, в следующем уроке.

Источник

Работа с базами данных SQLite

Подключение к базе данных SQLite

Чтобы использовать SQLite в Android, надо создать базу данных с помощью выражение на языке SQL. После этого база данных будет храниться в каталоге приложения по пути:

Класс android.database.sqlite.SQLiteCursor предоставляет запрос и позволяет возвращать набор строк, которые соответствуют этому запросу.

Класс android.database.sqlite.SQLiteQueryBuilder позволяет создавать SQL-запросы.

Класс android.database.sqlite.SQLiteOpenHelper позволяет создать базу данных со всеми таблицами, если их еще не существует.

В SQLite применяется следующая система типов данных:

INTEGER : представляет целое число, аналог типу int в java

REAL : представляет число с плавающей точкой, аналог float и double в java

TEXT : представляет набор символов, аналог String и char в java

BLOB : представляет массив бинарных данных, например, изображение, аналог типу int в java

Сохраняемые данные должны представлять соответствующие типы в java.

Создание и открытие базы данных

название для базы данных

числовое значение, которое определяет режим работы (как правило, в виде константы MODE_PRIVATE )

Например, создание базы данных app.db :

Для выполнения запроса к базе данных можно использовать метод execSQL класса SQLiteDatabase. В этот метод передается SQL-выражение. Например, создание в базе данных таблицы users:

Метод db.rawQuery() возвращает объект Cursor, с помощью которого мы можем извлечь полученные данные.

Возможна ситуация, когда в базе данных не будет объектов, и для этого методом query.moveToFirst() пытаемся переместиться к первому объекту, полученному из бд. Если этот метод возвратит значение false, значит запрос не получил никаких данных из бд.

Теперь для работы с базой данных сделаем простейшее приложение. Для этого создадим новый проект.

В файле activity_main.xml определим простейший графический интерфейс:

А в классе MainActivity определим взаимодействие с базой данных:

По нажатию на кнопку здесь вначале создается в базе данных app.db новая таблица users, а затем в нее добавляются два объекта в базу данных с помощью SQL-выражения INSERT.

Далее с помощью выражения SELECT получаем всех добавленных пользователей из базы данных в виде курсора Cursor.

Вызовом query.moveToFirst() перемещаемся в курсоре к первому объекту, и так как у нас может быть больше одного объекта, то проходим по всему курсору в цикле do. while.

После завершения работы с курсором и базой данных мы закрываем все связанные объекты:

Если мы не закроем курсор, то можем столкнуться с проблемой утечки памяти.

И если мы обратимся к приложению, то после нажатия на кнопку в текстовое поле будут выведены добавленные данные:

Источник