先日、React Native アプリで SQLite を実装する方法について紹介しましたが、今回はその続きでデータの追加についてです。
MySQL などのデータベースを扱った経験があれば、恐らくそう難しくないかと思います。
早速ですが、サンプルコードは下記のとおりです。
import SQLite from 'react-native-sqlite-storage';
SQLite.enablePromise(true);
SQLite.openDatabase(
{
name: 'example.db',
location: 'default',
createFromLocation: '~www/example.db',
},
(db) => {
db.transaction(tx => {
const insert = "INSERT INTO members (id, name, age) VALUES (?, ?, ?)";
const values = [1, "山田太郎", 30];
tx.executeSql(insert, values, (trans, results) => {
console.log(results);
},
(error) => {
console.log(error);
});
});
}
);
しかし、私の環境では上記を実行しても、カラムが存在しないとか、カラムの型とデータが一致しないとかで警告が発生し、一向にデータが登録できませんでした。
ですが、DB Browser for SQLite というアプリで、データベースの内容を確認すると、カラムも存在しているし、型も合っています…。
しばらく悩んだのですが、試しにスマートフォンからアプリを削除し、再インストールしてみたところ、何とすんなり動作しました。
データベースへの登録もできましたし、登録したデータを取得したところ、こちらも問題なく保存されていました。
おそらくキャッシュか何かが残っていたのだと思います。
気付くまでに少々時間がかかりましたが…もし同じようなことでお悩みだったら、一度アプリの削除・再インストールを試してみるのもいいかもしれません。
以上、React Native の「react-native-sqlite-storage」ライブラリを使って SQLite データベースにデータを追加する方法についてでした。
ご参考になれば幸いです。