How to connect SQLite with Java?
You need to have a SQLite JDBC driver in your classpath.
Taro L. Saito (xerial) forked the Zentus project and now maintains it under the name sqlite-jdbc. It bundles the native drivers for major platforms so you don’t need to configure them separately.
i am using this driver, and works fine. But why it is not compacting database while creating.With FireFox sqlite plugin Database compacted from 11.5MB to 11.3MB. how to do that with java.
@Dyapa You need to periodically run VACUUM ; since JDBC doesn’t actually interpret the SQL (for very good reasons) just send it over. Or use a pragma per connection to run in auto-vacuum mode.
For those experiencing this issue with Tomcat this jar needs to be put into the lib folder for respective Tomcat version. Tomcat will also need to be restarted. In the web application, the jar needs to be placed into the WEB-INF lib folder as well. You don’t need to add it to the build path because putting it in the WEB-INF lib folder places it there automatically.
If you are using netbeans Download the sqlitejdbc driver Right click the Libraries folder from the Project window and select Add Library , then click on the Create button enter the Library name (SQLite) and hit OK
You have to add the sqlitejdbc driver to the class path , click on the Add Jar/Folder.. button and select the sqlitejdbc file you’ve downloaded previously Hit OK and you are ready to go !
I struggled a lot because of this problem. I am a Java newbie and using Netbeans. It’s been a frustration. Finally, your answer saved my day.
If you are using Netbeans using Maven to add library is easier. I have tried using above solutions but it didn’t work.
I have added Maven dependency and java.lang.ClassNotFoundException: org.sqlite.JDBC error gone.
Создание небольшой БД SQLite в java
Появилась необходимость сделать приложение на java с подключением БД.
Сама программа будет находится на локальном компьютере слабой конфигурации и без сети. Поэтому выбрана была база SQLite.
Порывшись в сети на простые понятные примеры, ничего найти подходящего не удалось. Пришлось собирать все с разных статей и разных форумов. Надеюсь, данная информация будет полезной.
Для создания самой БД была использована утилита SQLiteadmin, найденная в просторах интернета.
Создание БД сводится к паре действий.
Создаем саму базу и указываем куда ее сохранить.
Появившиеся слева папки показывают о успешном создании БД.
Далее переходим к созданию проекта, заполняем необходимые данные, нажимаем NEXT и сразу подгружаем скачанную здесь библиотеку (библиотека для подключения БД к проекту).
После создания проекта, создаю 2 класса.
Первый класс для запуска:
import java.sql.SQLException; public class db < public static void main(String[] args) throws ClassNotFoundException, SQLException < conn.Conn(); conn.CreateDB(); conn.WriteDB(); conn.ReadDB(); conn.CloseDB(); >>
Во втором классе сделана основная реализация:
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class conn < public static Connection conn; public static Statement statmt; public static ResultSet resSet; // --------ПОДКЛЮЧЕНИЕ К БАЗЕ ДАННЫХ-------- public static void Conn() throws ClassNotFoundException, SQLException < conn = null; Class.forName("org.sqlite.JDBC"); conn = DriverManager.getConnection("jdbc:sqlite:TEST1.s3db"); System.out.println("База Подключена!"); >// --------Создание таблицы-------- public static void CreateDB() throws ClassNotFoundException, SQLException < statmt = conn.createStatement(); statmt.execute("CREATE TABLE if not exists 'users' ('id' INTEGER PRIMARY KEY AUTOINCREMENT, 'name' text, 'phone' INT);"); System.out.println("Таблица создана или уже существует."); >// --------Заполнение таблицы-------- public static void WriteDB() throws SQLException < statmt.execute("INSERT INTO 'users' ('name', 'phone') VALUES ('Petya', 125453); "); statmt.execute("INSERT INTO 'users' ('name', 'phone') VALUES ('Vasya', 321789); "); statmt.execute("INSERT INTO 'users' ('name', 'phone') VALUES ('Masha', 456123); "); System.out.println("Таблица заполнена"); >// -------- Вывод таблицы-------- public static void ReadDB() throws ClassNotFoundException, SQLException < resSet = statmt.executeQuery("SELECT * FROM users"); while(resSet.next()) < int name = resSet.getString("name"); String phone = resSet.getString("phone"); System.out.println( "ID = " + id ); System.out.println( "name = " + name ); System.out.println( "phone = " + phone ); System.out.println(); >System.out.println("Таблица выведена"); > // --------Закрытие-------- public static void CloseDB() throws ClassNotFoundException, SQLException < conn.close(); statmt.close(); resSet.close(); System.out.println("Соединения закрыты"); >>
После запуска получаем данный результат:
Коментарии по коду и вопрос, что за команда, можно поискать в интернете. Данная статья имеет вид знакомства создания БД SQLite в проекте Java.
Так же соблюдение всех пробелов и запятых значительно упростит создание проекта, проще копировать и изменять данные.
Sqlite in java project
Learn Latest Tutorials
Preparation
Trending Technologies
B.Tech / MCA
Javatpoint Services
JavaTpoint offers too many high quality services. Mail us on h[email protected], to get more information about given services.
- Website Designing
- Website Development
- Java Development
- PHP Development
- WordPress
- Graphic Designing
- Logo
- Digital Marketing
- On Page and Off Page SEO
- PPC
- Content Development
- Corporate Training
- Classroom and Online Training
- Data Entry
Training For College Campus
JavaTpoint offers college campus training on Core Java, Advance Java, .Net, Android, Hadoop, PHP, Web Technology and Python. Please mail your requirement at [email protected].
Duration: 1 week to 2 week
Like/Subscribe us for latest updates or newsletter
Работа с SQLite в Java
Всем доброго времени суток. На связи Алексей Гулынин. В данной статье я бы хотел рассказать, как работать с SQLite в Java. При работе с базами данных на Java будем использовать технологию JDBC (Java DataBase Connectivity)) . JDBC — это API для работы с базами данных на Java. Компания Oracle разработала универсальный интерфейс для работы с драйверами JDBC. Допустим, вы написали какую-то СУБД. Для того, чтобы программа на Java могла работать с вашей СУБД вам необходимо реализовать данный интерфейс.
В данном примере мы будем работать с SQLite . Для этого скачаем драйвер JDBC для SQLite (в поисковике можете прямо так и указать).
Для того, чтобы подключить данный драйвер БД нужно зайти в File — Project Structure (Ctrl + Alt + Shift + S) — Libraries и указываем путь до драйвера, который скачали.
Создадим простую базу данных по учету расходов. Будет всего 1 таблица: Products . Таблица Products будет состоять из следующих столбцов: id , good (наименование товара), category_name (наименование категории, к которой относится товар), price (цена товара).
Файл базы данных вместе с проектом можно скачать по ссылке.
Создадим класс Product , в котором будет находиться информация по нашему продукту:
public class Product < // Поля класса public int id; public String good; public double price; public String category_name; // Конструктор public Product(int id, String good, double price, String category_name) < this.id = id; this.good = good; this.price = price; this.category_name = category_name; >// Выводим информацию по продукту @Override public String toString() < return String.format("ID: %s | Товар: %s | Цена: %s | Категория: %s", this.id, this.good, this.price, this.category_name); >>
Создадим класс DbHandler , в котором будет находиться вся логика работы с базой данных:
import org.sqlite.JDBC; import java.sql.*; import java.util.*; public class DbHandler < // Константа, в которой хранится адрес подключения private static final String CON_STR = "jdbc:sqlite:D:/myfin.db"; // Используем шаблон одиночка, чтобы не плодить множество // экземпляров класса DbHandler private static DbHandler instance = null; public static synchronized DbHandler getInstance() throws SQLException < if (instance == null) instance = new DbHandler(); return instance; >// Объект, в котором будет храниться соединение с БД private Connection connection; private DbHandler() throws SQLException < // Регистрируем драйвер, с которым будем работать // в нашем случае Sqlite DriverManager.registerDriver(new JDBC()); // Выполняем подключение к базе данных this.connection = DriverManager.getConnection(CON_STR); >public List getAllProducts() < // Statement используется для того, чтобы выполнить sql-запрос try (Statement statement = this.connection.createStatement()) < // В данный список будем загружать наши продукты, полученные из БД Listproducts = new ArrayList(); // В resultSet будет храниться результат нашего запроса, // который выполняется командой statement.executeQuery() ResultSet resultSet = statement.executeQuery("SELECT id, good, price, category_name FROM products"); // Проходимся по нашему resultSet и заносим данные в products while (resultSet.next()) < products.add(new Product(resultSet.getInt("id"), resultSet.getString("good"), resultSet.getDouble("price"), resultSet.getString("category_name"))); >// Возвращаем наш список return products; > catch (SQLException e) < e.printStackTrace(); // Если произошла ошибка - возвращаем пустую коллекцию return Collections.emptyList(); >> // Добавление продукта в БД public void addProduct(Product product) < // Создадим подготовленное выражение, чтобы избежать SQL-инъекций try (PreparedStatement statement = this.connection.prepareStatement( "INSERT INTO Products(`good`, `price`, `category_name`) " + "VALUES(?, ?, ?)")) < statement.setObject(1, product.good); statement.setObject(2, product.price); statement.setObject(3, product.category_name); // Выполняем запрос statement.execute(); >catch (SQLException e) < e.printStackTrace(); >> // Удаление продукта по id public void deleteProduct(int id) < try (PreparedStatement statement = this.connection.prepareStatement( "DELETE FROM Products WHERE < statement.setObject(1, id); // Выполняем запрос statement.execute(); >catch (SQLException e) < e.printStackTrace(); >> >
Напишем основной класс Main , в котором будут вызываться все наши методы:
import java.sql.SQLException; import java.util.List; public class Main < public static void main(String[] args) < try < // Создаем экземпляр по работе с БД DbHandler dbHandler = DbHandler.getInstance(); // Добавляем запись //dbHandler.addProduct(new Product("Музей", 200, "Развлечения")); // Получаем все записи и выводим их на консоль Listproducts = dbHandler.getAllProducts(); for (Product product : products) < System.out.println(product.toString()); >// Удаление записи с //dbHandler.deleteProduct(8); > catch (SQLException e) < e.printStackTrace(); >> >
В данном примере мы рассмотрели как работать с базой данных в Java на примере SQLite. Рассмотрели операции: выборка данных, добавление и удаление данных. Операцию по обновлению данных оставляю в качестве домашнего задания. В следующих статьях я покажу вам, как работать с графическим интерфейсом (используя Swing ) на примере создания игры крестики-нолики. Консольный вариант игры мы уже сделали, теперь сделаем — графический. Также вы можете выполнить все эти манипуляции с базой данных, используя графический интерфейс.
На связи был Алексей Гулынин, оставляйте свои комментарии, увидимся в следующих статьях.
SQLite Java
This SQLite Java section teaches you step by step how to interact with SQLite using Java JDBC API.
There are some interfaces that you can use to interact with SQLite using the Java language. Some of these are the native C API wrapper while the other implement the standardized Java Database Connectivity (JDBC) API.
In this section, we will introduce you to a modern JDBC driver which is called SQLiteJDBC package. The SQLiteJDBC package contains both Java classes, as well as native SQLite libraries for Windows, Mac OS X, and Linux.
- Connecting to an SQLite database: this tutorial shows you how to download SQLiteJDBC driver and connect to an existing SQLite database using JDBC.
- Creating a new SQLite database – in this tutorial, we will show you how to create a new SQLite database from a Java program using SQLiteJDBC driver.
- Creating a new table using JDBC – before working with data, you need to create a table. This tutorial shows you how to create a new table in an SQLite database from a Java program.
- Inserting data into a table from a Java program – this tutorial walks you through the steps for inserting data into a table from a Java program
- Querying data from a table with or without parameters – after having the data in the table, we show you how to query data using a SELECT statement. You will learn how to issue a simple SELECT statement to query all rows from a table, as well as use a query with parameters to select data based on user’s input.
- Updating existing data using PreparedStatement object – this tutorial guides you how to update existing data in a table.
- Deleting data from a table – this tutorial provides the steps for deleting existing data in a table.
- Managing transaction – this tutorial shows you how to manage SQLite transaction using Java JDBC API such as setAutoCommit , commit , and rollback .
- Writing and Reading SQLite BLOB – we will show you how to update the SQLite BLOB data into a table and query BLOB data for displaying.