React NativeでのSqliteデータベースの利用例を詳しく解説

零下一度
リリース: 2017-06-24 14:35:13
オリジナル
3294 人が閲覧しました
Sqllite を使用して作成されたプロジェクトは、異なる環境で作成される場合があります。たとえば、Expo を使用して作成されたプロジェクトは、これとは異なる場合があります。しかし、具体的なアイデアは同じです。この記事が皆さんのお役に立てれば幸いです。

1. インストール

コマンドラインは ReactNative プロジェクトのルートディレクトリに入り、

npm install React-native-sq を実行します。ライトストレージ --s ave

2. グローバル Gradle 設定を作成します
android/settings.gradle ファイルを編集し、次の内容を追加します
「:react-native-sqlite-storage」
プロジェクトを含めます(':react-native -sqlite-storage').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-sqlite-storage/src/android')
3. Android を変更します。 /app/build.gradle ファイル

依存関係を追加コンパイルプロジェクト(':react-native-sqlite-storage')


4 MainApplication.Java ファイルを編集し、MainActivitiy.java に sqlite モジュールを登録しますimport org.pgsqlite.SQLitePluginPackage;


[java]

プレーンコピーを表示
@Override
  1. protected List getPackages() {

  2. return Arrays.asList(

  3. new SQLitePluginPackage()、

  4. }

  5. スクリーンショットは次のとおりです:

  6. 5 を使用します。
  7. sqlite.js ファイルを作成し、コンポーネント import SQLiteStorage を導入しますfrom 'react-native-sqlite-storage';
  8. すべての
print 例外に注意してください。そうしないと、何が問題になったのか分からなくなる可能性があります

[javascript]
プレーンコピーを表示

  1. import React,{Component} from 'react';

  2. SQLiteStorage をインポートする
  3. 'react-native-sqlite-storage';

  4. SQLiteStorage.DEBUG(

    true);

  5. var データベース名 =

    "test.db";
  6. //データベースファイル
  7. vardatabase_version =
  8. "1.0";

    //バージョン番号

  9. vardatabase_displayname = "MySQLite"; _size = -1 ;//- 1 は無制限を意味します componentWillUnmount(){

  10. if(db ){

  11. }

    else {

    console.log(
  12. "SQLiteStorage が開いていません");
  13. }

    }
  14. open() {

  15. db = SQLiteS torage.openDatabase(

    データベース名, E データベース バージョン,

  16. データベース表示名,
  17. データベース サイズ,
  18. () = & gt; This._successcb ('Open ');

  19. (err)=>{
  20. return db;
  21. createTable( ){
  22. if (!db) {

  23. this.open() }

  24. //ユーザーテーブルを作成します
  25. db.transaction((tx)=> {
  26. ID INTEGER PRIMARY KEY AUTOINCREMENT,' +
  27. E m'Name Varchar, '+
  28. 電話 VARCHAR,' + VARCHAR)'

  29. 、 ], ()=> {

    " this._errorCB(

    'executeSql', err); ,そうしないと、どこで間違いを犯すべきかわからない可能性があります。
  30. this._successCB(
  31. 'トランザクション');

  32. })

  33. }

    deleteData(){

  34. if (!db) {

  35. This.open();

  36. db.transaction((tx)=>{
  37. });

  38. }
  39. dropTable(){

  40. db.transaction((tx)=>{
  41. tx.executeSql(
  42. 'ドロップテーブルユーザー',[] ,() => CB(

    'トランザクション',エラー);

    },()=>{
  43. this._successCB(
  44. });

    }
  45. insertUserData(userData) {

  46. let len = userData.length

  47. if (!db) {
  48. }

  49. this.createTable(); ;len; i++){

  50. 名前 = user.name;
  51. 性別 = user.sex;
  52. let phone = user.phone;  

  53. let email = user.email;  

  54. let qq = user.qq;  

  55. let sql = "INSERT INTO user(name,age,sex,phone,email,qq)"+

  56. "values(?,?,?,?,?,?)";  

  57. tx.executeSql(sql,[名前,年齢,性別,電話番号,メールアドレス,qq],()=>{

  58. },(err)=>{

  59. console.log(err);

  60. }

  61. );  

  62. }

  63. },(error)=>{

  64. this._errorCB('transaction', error);  

  65. ToastAndroid.show(

    "データベース插入失败",ToastAndroid.SHORT);  

  66. },()=>{

  67. this._successCB('トランザクション挿入データ');  

  68. ToastAndroid.show(

    "成功插入 "+len+" 条用户データベース",ToastAndroid.SHORT);  

  69. });  

  70. }

  71. close(){

  72. if(db){

  73. this._successCB( 「閉じる」);  

  74. db.close();  

  75. }

    else {

  76. console.log(

    "SQLiteStorage 開いていません");  

  77. }

  78. db =

    null;  

  79. }

  80. _successCB(name){

  81. console.log(

    "SQLiteStorage "+name+" success");  

  82. }

  83. _errorCB(name, err){

  84. console.log(

    "SQLiteStorage "+name);  

  85. console.log(err);  

  86. }

  87. render(){

  88. return null;  

  89. }

  90. };  

'反応';

  • インポートテキスト、

  • ビュー、

  • ナビゲーター、

  • スタイルシート、

  • } から

    '反応ネイティブ';
  • から SQLite をインポートします'./sqlite';
  • クラスアプリ拡張コンポーネント{

  • compennetDidUnmount(){

    sqLite.close() }
  • コンポーネントWillMount (){

  • //データベースを開く
  • if(!db){
  • db = sqLite.open();

  • }

  • //テーブルを構築

  • sqLite.createTable();
  • / /データの削除
  • sqLite.deleteData();
  • //データの一部をシミュレート

  • var userData = [];
  • var ユーザー = {};

  • user.name = "张三";

  • user.age =

    "2 8";
  • ユーザー.phone =

    "18900001111";

  • user.email =

  • user.qq = "111222";

  • userData.push(ユーザー);
  • //データを挿入
  • sqLite.insertUserData(userData);

  • db.transaction( (tx)=>{

  • tx.executesql(

    "select * from user"、[]、(tx、results)=> {

  • varlen = results .rows.length;
  • / /通常、データが見つかった後、ページを再レンダリングするために setState 操作が必要になる場合があります

  • alert(
  • "Name: "+u.name+

    ", Age: "+ u.age+", 電話: "+u .phone);

  • }

  • });

  • console.log(エラー);
  • });  

  • }

  • render(){

  • return null;  

  • }

  • }

以上がReact NativeでのSqliteデータベースの利用例を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!