Для написания приложений на React Native с использованием SQLite, мы можем использовать пакет react-native-sqlite-storage
. Это популярный пакет, который предоставляет удобный API для работы с базой данных SQLite на платформах Android и iOS.
Вот подробное описание шагов для правильного написания SQLite на React Native:
Шаг 1: Установка и настройка проекта
Первым шагом необходимо создать новый проект React Native, если у вас еще нет проекта. Для этого вы можете использовать следующую команду:
npx react-native init YourProjectName
Затем выполните команду для установки пакета react-native-sqlite-storage
:
npm install react-native-sqlite-storage --save
Шаг 2: Связь пакета с проектом
В файле android/settings.gradle
добавьте следующие строки:
include ':react-native-sqlite-storage' project(':react-native-sqlite-storage').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-sqlite-storage/src/android')
Далее, в файле android/app/build.gradle
добавьте следующую зависимость:
dependencies { implementation project(':react-native-sqlite-storage') }
Также в этом же файле, в раздел defaultConfig
, добавьте следующую строку:
multiDexEnabled true
И, наконец, в файле android/app/src/main/java/com/yourproject/MainApplication.java
импортируйте класс SQLitePluginPackage
и добавьте его в список пакетов:
import org.pgsqlite.SQLitePluginPackage; // ... @Override protected List<ReactPackage> getPackages() { @SuppressWarnings("UnnecessaryLocalVariable") List<ReactPackage> packages = new PackageList(this).getPackages(); packages.add(new SQLitePluginPackage()); // ... return packages; }
Шаг 3: Использование SQLite в приложении
Теперь вы можете начать использовать SQLite в вашем приложении. Вам нужно будет создать базу данных, создать таблицы и выполнять запросы.
Вот пример кода для открытия базы данных и создания таблицы:
import SQLite from 'react-native-sqlite-storage'; const database_name = "TestDatabase.db"; const database_version = "1.0"; const database_displayname = "Test DB"; const database_size = 200000; const db = SQLite.openDatabase({ name: database_name, version: database_version, displayname: database_displayname, size: database_size }); db.transaction((tx) => { tx.executeSql('CREATE TABLE IF NOT EXISTS MyTable (id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(255))'); });
Вы можете использовать метод executeSql
для выполнения SQL-запросов, например:
db.transaction((tx) => { tx.executeSql('INSERT INTO MyTable (name) VALUES (?)', ['John Doe'], (tx, results) => { if (results.rowsAffected > 0) { console.log('Successfully inserted'); } else { console.log('Insert failed'); } }); });
Шаг 4: Обработка ошибок
При использовании SQLite необходимо учитывать возможность возникновения ошибок при выполнении запросов. Будет полезно добавить обработку ошибок и логирование ваших SQL-запросов.
Вот пример обработки ошибки:
db.transaction((tx) => { tx.executeSql('SELECT * FROM NonExistentTable', [], (tx, results) => { console.log('Success: ', results); }, (err) => { console.log('Error: ', err); }); });
В заключение, пакет react-native-sqlite-storage
предоставляет удобный и эффективный способ использования SQLite в приложениях React Native. Помимо базовых операций, вы также можете выполнять сложные запросы, обрабатывать транзакции и многое другое.