先日、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 データベースにデータを追加する方法についてでした。
ご参考になれば幸いです。