官网使用链接: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 将要卸载,
初始化需要定义这几个变量:
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。