使用SQLite进行本地数据存储读取使用FlatList刷新列表

官网使用链接:https://www.npmjs.com/package/react-native-sqlite-storage

1,安装配置库环境:


 安装:npm install  --save  react-native-sqlite-storage;

 手动配置:file: 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')

}

手动配置:android/app/src/main/java/com/[YourAppName]/MainApplication.java

引入:import org.pgsqlite.SQLitePluginPackage;

添加:protected List<ReactPackage> getPackages() {
      return Arrays.<ReactPackage>asList(
        new SQLitePluginPackage(),      //  添加 SQLite Plugin here
        new MainReactPackage());
    }

 


2,使用基础知识:

      数据在什么时候被读取,插入?
   componentWillMount  将要装载,在render之前调用;

      componentDidMount,(装载完成),在render之后调用
      componentWillUnmount     将要卸载, 

扫描二维码关注公众号,回复: 6006758 查看本文章

     初始化需要定义这几个变量:
var database_name = "test.db";         //数据库文件
var database_version = "1.0";          //版本号
var database_displayname = "MySQLite";
var database_size = -1; var db;

      打开数据库(新建一个数据库对象):

db=SQLiteStorage.openDatabase(
    database_name,
    database_version,
    database_displayname,
    database_size,
    ()=>{
        this._successCB('open');
    },
    (err)=>{
        this._errorCB('open',err);
    });

   创建数据表:
db.transaction(  参数1,参数2,参数3)
参数1:(tx)=>{   tx.excuteSql(   SQLite操纵数据库语句 ,[] ,创建成功语句,创建失败语句 ) }
参数2: 创建失败返回错误信息语句;
参数3:创建成功返回信息语句;

      删除数据(删除表):
db.transaction(  (tx)=> {   tx.excuteSql(  删除数据语句)  } )

      插入数据:
db.transaction(   (tx)=>{
   for (var i=0;i<len; i++) {
      var user=userdata[i];       //这里datauser是一个数组,里面每个元素都是对象,所以是复杂数据结构;[{  },  { } ,...]
          let name=user.name;  
          let age=user.age;
          let  tall=user.tall;
             .......
      let sql = "INSERT INTO user(name,age,sex,phone,email,address)"+ "values(?,?,?,?,?,?)";
      tx.excuteSql(   sql ,    [name, age ,tall .....]  ,  error,   success  )

  获取数据:

db.transaction( (tx)=>{

  

          关闭数据库:
        db.close()

3,实战代码参考链接:https://blog.csdn.net/it_talk/article/details/53020068

这个源码是偷看别人的,里面只有增删改,没有查!这很奔溃啊!但是实在是找不到这个库的使用手册,只在github上找到了源码,但是想想分析了源码再去使用方法和属性还不是我这个菜鸟干的事情,所以决定使用,文档比较全面的realm。

 
 
 
 

    

猜你喜欢

转载自blog.csdn.net/kalinux/article/details/88806177