{"id":6004,"date":"2020-05-29T14:13:36","date_gmt":"2020-05-29T08:43:36","guid":{"rendered":"https:\/\/www.innovationm.com\/blog\/?p=6004"},"modified":"2023-01-20T18:55:21","modified_gmt":"2023-01-20T13:25:21","slug":"sqlite-database-in-react-native","status":"publish","type":"post","link":"https:\/\/www.innovationm.com\/blog\/sqlite-database-in-react-native\/","title":{"rendered":"SQLite database in React Native"},"content":{"rendered":"<p><b>Introduction<\/b><\/p>\n<p><span style=\"font-weight: 400;\">SQLite is an open-source SQL database used for storing data in mobile devices in the form of text files. It supports all the relational database features. There is no need to establish any linking or connection for performing any operations on the database. It works like other SQL databases, where we can perform any query and get our desired output. Since all the data resides in a text file, access to it involves time taking tasks, so it is advisable to perform such operation in the background so that one cannot block the UI.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Here in this blog, we focused on how to connect our application with SQLite and perform basic crud operations. We will use the SQLite3 Native Plugin, which will work in both Android and iOS for performing our task.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Let us develop an application that performs the essential operation:<\/span><\/p>\n<p><b>Register User: <\/b><span style=\"font-weight: 400;\">For saving user details(Create\/insert)<\/span><\/p>\n<p><b>View All User: <\/b><span style=\"font-weight: 400;\">Get all details of all users. (Read)<\/span><\/p>\n<p><b>View Single User: <\/b><span style=\"font-weight: 400;\">Get all details of single users. (Read by Id)<\/span><\/p>\n<p><b>Update User: <\/b><span style=\"font-weight: 400;\">Update details of a user. (Update by Id)<\/span><\/p>\n<p><b>Delete User: <\/b><span style=\"font-weight: 400;\">Delete the user. (Delete by Id).<\/span><\/p>\n<p><span style=\"font-weight: 400;\">How to Use SQLite Storage?\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">To begin with, we have to import a npm library react-native-SQLite-storage in our newly created project. For this we need to run this command on terminal:<\/span><\/p>\n<pre class=\"lang:default decode:true\">npm\u00a0 install --save react-native-SQLite-storage<\/pre>\n<p><b>Or\u00a0<\/b><\/p>\n<pre class=\"lang:default decode:true\">yarn add react-native-SQLite-storage<\/pre>\n<p><span style=\"font-weight: 400;\">After a successful installation, we need to update our pod file for the newly added package. For this run the command below:<\/span><\/p>\n<pre class=\"lang:default decode:true\">cd ios &amp;&amp; pod install &amp;&amp; cd ..<\/pre>\n<p><span style=\"font-weight: 400;\">Now in order to use this package, first of all, import this package in our app.js file.<\/span><\/p>\n<pre class=\"lang:default decode:true\">import { open database } from 'react-native-SQLite-storage';<\/pre>\n<p><span style=\"font-weight: 400;\">and open the database using<\/span><\/p>\n<pre class=\"lang:default decode:true\">var DB = open database({ name: 'UserDatabase.db' });<\/pre>\n<p><span style=\"font-weight: 400;\">We can use the DB variable to execute the database query whenever we need to make a database call.<\/span><\/p>\n<pre class=\"lang:default decode:true\">db.transaction(function(txn) {\r\n\r\n\u00a0txn.executeSql(\u00a0\u00a0\u00a0\u00a0\r\n\r\nquery, \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\r\n\r\nargsToBePassed[],\u00a0 \u00a0 \u00a0\r\n\r\n\u00a0function(tx, res) {} \u00a0\r\n\r\n});<\/pre>\n<p><b>Steps to use sqlite in our project<\/b><\/p>\n<ol>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Open the project directory and replace the following code.<\/span><\/li>\n<\/ol>\n<pre class=\"lang:js decode:true \">\/\/App.js\r\nimport React from 'react';\r\nimport { createStackNavigator } from '@react-navigation\/stack';\r\nimport HomeNavigator from '.\/src\/navigator\/homeNavigator';\r\nimport { NavigationContainer } from '@react-navigation\/native';\r\nconst Stack = createStackNavigator();\r\nconst App = (props) =&gt; {\r\n\treturn(\r\n\t\t&lt;NavigationContainer&gt;\r\n\t\t\t&lt;Stack.Navigator headerMode=\"none\"&gt;\r\n\t\t\t\t&lt;Stack.Screen name=\"Home\" component={HomeNavigator} \/&gt;\r\n\t\t\t&lt;\/Stack.Navigator&gt;\r\n\t\t&lt;\/NavigationContainer&gt;\r\n\t)\r\n}\r\nexport default App;\r\n<\/pre>\n<p><span style=\"font-weight: 400;\">2. Now make a src folder and then make a navigator folder in the src folder in the root directory of your project and generate a file homeNavigator.js and paste the following code.<\/span><\/p>\n<pre class=\"lang:js decode:true \">import React from 'react';\r\nimport { createStackNavigator } from '@react-navigation\/stack';\r\nconst Stack = createStackNavigator();\r\nimport HomeScreen from '..\/screens\/HomeScreen';\r\nimport Register from '..\/screens\/RegisterUser';\r\nimport View from '..\/screens\/ViewUser';\r\nimport ViewAll from '..\/screens\/ViewAllUser';\r\nimport Delete from '..\/screens\/DeleteUser';\r\nimport Update from '..\/screens\/UpdateUser';\r\nconst homeNavigator = (props) =&gt; {\r\n    return &lt;Stack.Navigator \r\n    initialRouteName = \"HomeScreen\"    \r\n          &lt;Stack.Screen \r\n            name=\"HomeScreen\" \r\n            component={HomeScreen} \r\n            options={{\r\n                headerTitle:\"Home\",\r\n            }} \/&gt;\r\n        &lt;Stack.Screen \r\n            name=\"Register\" \r\n            component={Register} \r\n            options={{\r\n                headerTitle:\"Register User\",\r\n            }} \/&gt;\r\n        &lt;Stack.Screen \r\n            name=\"Update\" \r\n            component={Update} \r\n            options={{\r\n                headerTitle:\"Update User\",\r\n            }} \/&gt;\r\n        &lt;Stack.Screen \r\n            name=\"Delete\" \r\n            component={Delete} \r\n            options={{\r\n                headerTitle:\"Delete User\",\r\n            }} \/&gt;\r\n        &lt;Stack.Screen \r\n            name=\"View\" \r\n            component={View} \r\n            options={{\r\n                headerTitle:\"View User\",\r\n            }} \/&gt;\r\n        &lt;Stack.Screen \r\n            name=\"ViewAll\" \r\n            component={ViewAll} \r\n            options={{\r\n                headerTitle:\"View All User\",\r\n            }} \/&gt;\r\n    &lt;\/Stack.Navigator&gt;\r\n}\r\nexport default homeNavigator;\r\n<\/pre>\n<p>3.\u00a0<span style=\"font-weight: 400;\">Now make a component folder in the src folder in the root directory of your project and generate the following file Mybutton.js, Mytext.js and Mytextinput.js and paste the following code.<\/span><\/p>\n<p><b>Mybutton.js<\/b><\/p>\n<pre class=\"lang:js decode:true \">import React from 'react';\r\nimport { TouchableOpacity, Text, StyleSheet } from 'react-native';\r\nconst Mybutton = props =&gt; {\r\n  return (\r\n    &lt;TouchableOpacity style={styles.button} onPress={props.customClick}&gt;\r\n      &lt;Text style={styles.text}&gt;{props.title}&lt;\/Text&gt;\r\n    &lt;\/TouchableOpacity&gt;\r\n  );\r\n};\r\nconst styles = StyleSheet.create({\r\n  button: {\r\n    alignItems: 'center',\r\n    backgroundColor: '#f05555',\r\n    color: '#ffffff',\r\n    padding: 10,\r\n    marginTop: 16,\r\n    marginLeft: 35,\r\n    marginRight: 35,\r\n  },\r\n  text: {\r\n    color: '#ffffff',\r\n  },\r\n});\r\nexport default Mybutton;\r\n<\/pre>\n<p><b>Mytext.js<\/b><\/p>\n<pre class=\"lang:js decode:true \">import React from 'react';\r\nimport { TouchableHighlight, Text, StyleSheet } from 'react-native';\r\nconst Mytext = props =&gt; {\r\n  return &lt;Text style={styles.text}&gt;{props.text}&lt;\/Text&gt;;\r\n};\r\nconst styles = StyleSheet.create({\r\n  text: {\r\n    color: '#111825',\r\n    fontSize: 18,\r\n    marginTop: 16,\r\n    marginLeft: 35,\r\n    marginRight: 35,\r\n  },\r\n});\r\nexport default Mytext;\r\n<\/pre>\n<p><b>Mytextinput.js<\/b><\/p>\n<pre class=\"lang:js decode:true \">import React from 'react';\r\nimport { View, TextInput } from 'react-native';\r\nconst Mytextinput = props =&gt; {\r\n  return (\r\n    &lt;View\r\n      style={{\r\n        marginLeft: 35,\r\n        marginRight: 35,\r\n        marginTop: 10,\r\n        borderColor: '#000000',\r\n        borderWidth: 1,\r\n      }}&gt;\r\n      &lt;TextInput\r\n        underlineColorAndroid=\"transparent\"\r\n        placeholder={props.placeholder}\r\n        placeholderTextColor=\"#000000\"\r\n        keyboardType={props.keyboardType}\r\n        onChangeText={props.onChangeText}\r\n        returnKeyType={props.returnKeyType}\r\n        numberOfLines={props.numberOfLines}\r\n        multiline={props.multiline}\r\n        onSubmitEditing={props.onSubmitEditing}\r\n        style={props.style}\r\n        blurOnSubmit={false}\r\n        value={props.value}\r\n      \/&gt;\r\n    &lt;\/View&gt;\r\n  );\r\n};\r\nexport default Mytextinput;\r\n<\/pre>\n<ul>\n<li><b><span style=\"font-weight: 400;\">Now<\/span> <span style=\"font-weight: 400;\">create another folder named screen which contains the following files:<\/span><\/b><\/li>\n<\/ul>\n<ol>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">HomeScreen.js<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">RegisterUser.js<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">UpdateUser.js<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">ViewAllUser.js<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">ViewUser.js<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">DeleteUser.js<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">and paste the following code in their respective files.<\/span><\/p>\n<p><b>HomeScreen.js<\/b><\/p>\n<pre class=\"lang:js decode:true \">import React from 'react';\r\nimport { View } from 'react-native';\r\nimport Mybutton from '..\/components\/Mybutton';\r\nimport Mytext from '..\/components\/Mytext';\r\nimport { openDatabase } from 'react-native-sqlite-storage';\r\nvar db = openDatabase({ name: 'UserDatabase.db' });\r\nexport default class HomeScreen extends React.Component {\r\n  constructor(props) {\r\n    super(props);\r\n    db.transaction(function(txn) {\r\n      txn.executeSql(\r\n        \"SELECT name FROM sqlite_master WHERE type='table' AND name='table_user'\",\r\n        [],\r\n        function(tx, res) {\r\n          console.log('item:', res.rows.length);\r\n          if (res.rows.length == 0) {\r\n            txn.executeSql('DROP TABLE IF EXISTS table_user', []);\r\n            txn.executeSql(\r\n              'CREATE TABLE IF NOT EXISTS table_user(user_id INTEGER PRIMARY KEY AUTOINCREMENT, user_name VARCHAR(20), user_contact INT(10), user_address VARCHAR(255))',\r\n              []\r\n            );\r\n          }\r\n        }\r\n      );\r\n    });\r\n  }\r\n  render() {\r\n    return (\r\n      &lt;View\r\n        style={{\r\n          flex: 1,\r\n          backgroundColor: 'white',\r\n          flexDirection: 'column',\r\n        }}&gt;\r\n        &lt;Mytext text=\"SQLite Example\" \/&gt;\r\n        &lt;Mybutton\r\n          title=\"Register\"\r\n          customClick={() =&gt; this.props.navigation.navigate('Register')}\r\n        \/&gt;\r\n        &lt;Mybutton\r\n          title=\"Update\"\r\n          customClick={() =&gt; this.props.navigation.navigate('Update')}\r\n        \/&gt;\r\n        &lt;Mybutton\r\n          title=\"View\"\r\n          customClick={() =&gt; this.props.navigation.navigate('View')}\r\n        \/&gt;\r\n        &lt;Mybutton\r\n          title=\"View All\"\r\n          customClick={() =&gt; this.props.navigation.navigate('ViewAll')}\r\n        \/&gt;\r\n        &lt;Mybutton\r\n          title=\"Delete\"\r\n          customClick={() =&gt; this.props.navigation.navigate('Delete')}\r\n        \/&gt;\r\n      &lt;\/View&gt;\r\n    );\r\n  }\r\n}\r\n<\/pre>\n<p><b>RegiserUser.js<\/b><\/p>\n<pre class=\"lang:js decode:true \">import React from 'react';\r\nimport { View, ScrollView, KeyboardAvoidingView, Alert } from 'react-native';\r\nimport Mytextinput from '..\/components\/Mytextinut';\r\nimport Mybutton from '..\/components\/Mybutton';\r\nimport { openDatabase } from 'react-native-sqlite-storage';\r\nvar db = openDatabase({ name: 'UserDatabase.db' });\r\nexport default class RegisterUser extends React.Component {\r\n  constructor(props) {\r\n    super(props);\r\n    this.state = {\r\n      user_name: '',\r\n      user_contact: '',\r\n      user_address: '',\r\n    };\r\n  }\r\n  register_user = () =&gt; {\r\n    var that = this;\r\n    const { user_name } = this.state;\r\n    const { user_contact } = this.state;\r\n    const { user_address } = this.state;\r\n    \/\/alert(user_name, user_contact, user_address);\r\n    if (user_name) {\r\n      if (user_contact) {\r\n        if (user_address) {\r\n          db.transaction(function(tx) {\r\n            tx.executeSql(\r\n              'INSERT INTO table_user (user_name, user_contact, user_address) VALUES (?,?,?)',\r\n              [user_name, user_contact, user_address],\r\n              (tx, results) =&gt; {\r\n                console.log('Results', results.rowsAffected);\r\n                if (results.rowsAffected &gt; 0) {\r\n                  Alert.alert(\r\n                    'Success',\r\n                    'You are Registered Successfully',\r\n                    [\r\n                      {\r\n                        text: 'Ok',\r\n                        onPress: () =&gt;\r\n                          that.props.navigation.navigate('HomeScreen'),\r\n                      },\r\n                    ],\r\n                    { cancelable: false }\r\n                  );\r\n                } else {\r\n                  alert('Registration Failed');\r\n                }\r\n              }\r\n            );\r\n          });\r\n        } else {\r\n          alert('Please fill Address');\r\n        }\r\n      } else {\r\n        alert('Please fill Contact Number');\r\n      }\r\n    } else {\r\n      alert('Please fill Name');\r\n    }\r\n  };\r\n  render() {\r\n    return (\r\n      &lt;View style={{ backgroundColor: 'white', flex: 1 }}&gt;\r\n        &lt;ScrollView keyboardShouldPersistTaps=\"handled\"&gt;\r\n          &lt;KeyboardAvoidingView\r\n            behavior=\"padding\"\r\n            style={{ flex: 1, justifyContent: 'space-between' }}&gt;\r\n            &lt;Mytextinput\r\n              placeholder=\"Enter Name\"\r\n              onChangeText={user_name =&gt; this.setState({ user_name })}\r\n              style={{ padding:10 }}\r\n            \/&gt;\r\n            &lt;Mytextinput\r\n              placeholder=\"Enter Contact No\"\r\n              onChangeText={user_contact =&gt; this.setState({ user_contact })}\r\n              maxLength={10}\r\n              keyboardType=\"numeric\"\r\n              style={{ padding:10 }}\r\n            \/&gt;\r\n            &lt;Mytextinput\r\n              placeholder=\"Enter Address\"\r\n              onChangeText={user_address =&gt; this.setState({ user_address })}\r\n              maxLength={225}\r\n              numberOfLines={5}\r\n              multiline={true}\r\n              style={{ textAlignVertical: 'top',padding:10 }}\r\n            \/&gt;\r\n            &lt;Mybutton\r\n              title=\"Submit\"\r\n              customClick={this.register_user.bind(this)}\r\n            \/&gt;\r\n          &lt;\/KeyboardAvoidingView&gt;\r\n        &lt;\/ScrollView&gt;\r\n      &lt;\/View&gt;\r\n    );\r\n  }\r\n}\r\n<\/pre>\n<p><b>UpdateUser.js<\/b><\/p>\n<pre class=\"lang:js decode:true \">import React from 'react';\r\nimport { View, YellowBox, ScrollView, KeyboardAvoidingView, Alert, } from 'react-native';\r\nimport Mytextinput from '..\/components\/Mytextinut';\r\nimport Mybutton from '..\/components\/Mybutton';\r\nimport { openDatabase } from 'react-native-sqlite-storage';\r\nvar db = openDatabase({ name: 'UserDatabase.db' });\r\n \r\nexport default class UpdateUser extends React.Component {\r\n  constructor(props) {\r\n    super(props);\r\n    this.state = {\r\n      input_user_id: '',\r\n      user_name: '',\r\n      user_contact: '',\r\n      user_address: '',\r\n    };\r\n  }\r\n  searchUser = () =&gt; {\r\n    const {input_user_id} =this.state;\r\n    console.log(this.state.input_user_id);\r\n    db.transaction(tx =&gt; {\r\n      tx.executeSql(\r\n        'SELECT * FROM table_user where user_id = ?',\r\n        [input_user_id],\r\n        (tx, results) =&gt; {\r\n          var len = results.rows.length;\r\n          console.log('len',len);\r\n          if (len &gt; 0) {\r\n            console.log(results.rows.item(0).user_contact);\r\n            this.setState({\r\n             user_name:results.rows.item(0).user_name,\r\n            });\r\n            this.setState({\r\n             user_contact:results.rows.item(0).user_contact,\r\n            });\r\n            this.setState({\r\n             user_address:results.rows.item(0).user_address,\r\n            });\r\n          }else{\r\n            alert('No user found');\r\n            this.setState({\r\n              user_name:'',\r\n              user_contact:'',\r\n              user_address:'',\r\n            });\r\n          }\r\n        }\r\n      );\r\n    });\r\n  };\r\n  updateUser = () =&gt; {\r\n    var that=this;\r\n    const { input_user_id } = this.state;\r\n    const { user_name } = this.state;\r\n    const { user_contact } = this.state;\r\n    const { user_address } = this.state;\r\n    if (user_name){\r\n      if (user_contact){\r\n        if (user_address){\r\n          db.transaction((tx)=&gt; {\r\n            tx.executeSql(\r\n              'UPDATE table_user set user_name=?, user_contact=? , user_address=? where user_id=?',\r\n              [user_name, user_contact, user_address, input_user_id],\r\n              (tx, results) =&gt; {\r\n                console.log('Results',results.rowsAffected);\r\n                if(results.rowsAffected&gt;0){\r\n                  Alert.alert( 'Success', 'User updated successfully',\r\n                    [\r\n                      {text: 'Ok', onPress: () =&gt; that.props.navigation.navigate('HomeScreen')},\r\n                    ],\r\n                    { cancelable: false }\r\n                  );\r\n                }else{\r\n                  alert('Updation Failed');\r\n                }\r\n              }\r\n            );\r\n          });\r\n        }else{\r\n          alert('Please fill Address');\r\n        }\r\n      }else{\r\n        alert('Please fill Contact Number');\r\n      }\r\n    }else{\r\n      alert('Please fill Name');\r\n    }\r\n  };\r\n \r\n  render() {\r\n    return (\r\n      &lt;View style={{ backgroundColor: 'white', flex: 1 }}&gt;\r\n        &lt;ScrollView keyboardShouldPersistTaps=\"handled\"&gt;\r\n          &lt;KeyboardAvoidingView\r\n            behavior=\"padding\"\r\n            style={{ flex: 1, justifyContent: 'space-between' }}&gt;\r\n            &lt;Mytextinput\r\n              placeholder=\"Enter User Id\"\r\n              style={{ padding:10 }}\r\n              onChangeText={input_user_id =&gt; this.setState({ input_user_id })}\r\n            \/&gt;\r\n            &lt;Mybutton\r\n              title=\"Search User\"\r\n              customClick={this.searchUser.bind(this)}\r\n            \/&gt;\r\n            &lt;Mytextinput\r\n              placeholder=\"Enter Name\"\r\n              value={this.state.user_name}\r\n              style={{ padding:10 }}\r\n              onChangeText={user_name =&gt; this.setState({ user_name })}\r\n            \/&gt;\r\n            &lt;Mytextinput\r\n              placeholder=\"Enter Contact No\"\r\n              value={''+ this.state.user_contact}\r\n              onChangeText={user_contact =&gt; this.setState({ user_contact })}\r\n              maxLength={10}\r\n              style={{ padding:10 }}\r\n              keyboardType=\"numeric\"\r\n            \/&gt;\r\n            &lt;Mytextinput\r\n              value={this.state.user_address}\r\n              placeholder=\"Enter Address\"\r\n              onChangeText={user_address =&gt; this.setState({ user_address })}\r\n              maxLength={225}\r\n              numberOfLines={5}\r\n              multiline={true}\r\n              style={{textAlignVertical : 'top', padding:10}}\r\n            \/&gt;\r\n            &lt;Mybutton\r\n              title=\"Update User\"\r\n              customClick={this.updateUser.bind(this)}\r\n            \/&gt;\r\n          &lt;\/KeyboardAvoidingView&gt;\r\n        &lt;\/ScrollView&gt;\r\n      &lt;\/View&gt; );}}\r\n<\/pre>\n<p><b>ViewAllUser.js<\/b><\/p>\n<pre class=\"lang:js decode:true \">import React from 'react';\r\nimport { FlatList, Text, View } from 'react-native';\r\nimport { openDatabase } from 'react-native-sqlite-storage';\r\nvar db = openDatabase({ name: 'UserDatabase.db' }); \r\nexport default class ViewAllUser extends React.Component {\r\n  constructor(props) {\r\n    super(props);\r\n    this.state = {\r\n      FlatListItems: [],\r\n    };\r\n    db.transaction(tx =&gt; {\r\n      tx.executeSql('SELECT * FROM table_user', [], (tx, results) =&gt; {\r\n        var temp = [];\r\n        for (let i = 0; i &lt; results.rows.length; ++i) {\r\n          temp.push(results.rows.item(i));\r\n        }\r\n        this.setState({\r\n          FlatListItems: temp,\r\n        });\r\n      });\r\n    });\r\n  }\r\n  ListViewItemSeparator = () =&gt; {\r\n    return (\r\n      &lt;View style={{ height: 0.2, width: '100%', backgroundColor: '#808080' }} \/&gt;\r\n    );\r\n  };\r\n  render() {\r\n    return (\r\n      &lt;View&gt;\r\n        &lt;FlatList\r\n          data={this.state.FlatListItems}\r\n          ItemSeparatorComponent={this.ListViewItemSeparator}\r\n          keyExtractor={(item, index) =&gt; index.toString()}\r\n          renderItem={({ item }) =&gt; (\r\n            &lt;View key={item.user_id} style={{ backgroundColor: 'white', padding: 20 }}&gt;\r\n              &lt;Text&gt;Id: {item.user_id}&lt;\/Text&gt;\r\n              &lt;Text&gt;Name: {item.user_name}&lt;\/Text&gt;\r\n              &lt;Text&gt;Contact: {item.user_contact}&lt;\/Text&gt;\r\n              &lt;Text&gt;Address: {item.user_address}&lt;\/Text&gt;\r\n            &lt;\/View&gt;\r\n          )}\r\n        \/&gt;\r\n      &lt;\/View&gt;\r\n    );\r\n  }\r\n}\r\n<\/pre>\n<p><b>ViewUser.js<\/b><\/p>\n<pre class=\"lang:js decode:true \">import React from 'react';\r\nimport { Text, View, Button } from 'react-native';\r\nimport Mytextinput from '..\/components\/Mytextinut';\r\nimport Mybutton from '..\/components\/Mybutton';\r\nimport { openDatabase } from 'react-native-sqlite-storage';\r\nvar db = openDatabase({ name: 'UserDatabase.db' }); \r\nexport default class ViewUser extends React.Component {\r\n  constructor(props) {\r\n    super(props);\r\n    this.state = {\r\n      input_user_id: '',\r\n      userData: '',\r\n    };\r\n  }\r\n  searchUser = () =&gt; {\r\n    const { input_user_id } = this.state;\r\n    console.log(this.state.input_user_id);\r\n    db.transaction(tx =&gt; {\r\n      tx.executeSql(\r\n        'SELECT * FROM table_user where user_id = ?',\r\n        [input_user_id],\r\n        (tx, results) =&gt; {\r\n          var len = results.rows.length;\r\n          console.log('len', len);\r\n          if (len &gt; 0) {\r\n            this.setState({\r\n              userData: results.rows.item(0),\r\n            });\r\n          } else {\r\n            alert('No user found');\r\n            this.setState({\r\n              userData: '',\r\n            });\r\n          }\r\n        }\r\n      );\r\n    });\r\n  };\r\n  render() {\r\n    return (\r\n      &lt;View&gt;\r\n        &lt;Mytextinput\r\n          placeholder=\"Enter User Id\"\r\n          onChangeText={input_user_id =&gt; this.setState({ input_user_id })}\r\n          style={{ padding:10 }}\r\n        \/&gt;\r\n        &lt;Mybutton\r\n          title=\"Search User\"\r\n          customClick={this.searchUser.bind(this)}\r\n        \/&gt;\r\n        &lt;View style={{ marginLeft: 35, marginRight: 35, marginTop: 10 }}&gt;\r\n          &lt;Text&gt;User Id: {this.state.userData.user_id}&lt;\/Text&gt;\r\n          &lt;Text&gt;User Name: {this.state.userData.user_name}&lt;\/Text&gt;\r\n          &lt;Text&gt;User Contact: {this.state.userData.user_contact}&lt;\/Text&gt;\r\n          &lt;Text&gt;User Address: {this.state.userData.user_address}&lt;\/Text&gt;\r\n        &lt;\/View&gt;\r\n      &lt;\/View&gt;\r\n    );\r\n  }\r\n}\r\n<\/pre>\n<p><b>DeleteUser.js<\/b><\/p>\n<pre class=\"lang:js decode:true \">import React from 'react';\r\nimport { Button, Text, View, Alert } from 'react-native';\r\nimport Mytextinput from '..\/components\/Mytextinut';\r\nimport Mybutton from '..\/components\/Mybutton';\r\nimport { openDatabase } from 'react-native-sqlite-storage';\r\nvar db = openDatabase({ name: 'UserDatabase.db' });\r\nexport default class UpdateUser extends React.Component {\r\n  constructor(props) {\r\n    super(props);\r\n    this.state = {\r\n      input_user_id: '',\r\n    };\r\n  }\r\n  deleteUser = () =&gt; {\r\n    var that = this;\r\n    const { input_user_id } = this.state;\r\n    db.transaction(tx =&gt; {\r\n      tx.executeSql(\r\n        'DELETE FROM  table_user where user_id=?',\r\n        [input_user_id],\r\n        (tx, results) =&gt; {\r\n          console.log('Results', results.rowsAffected);\r\n          if (results.rowsAffected &gt; 0) {\r\n            Alert.alert(\r\n              'Success',\r\n              'User deleted successfully',\r\n              [\r\n                {\r\n                  text: 'Ok',\r\n                  onPress: () =&gt; that.props.navigation.navigate('HomeScreen'),\r\n                },\r\n              ],\r\n              { cancelable: false }\r\n            );\r\n          } else {\r\n            alert('Please insert a valid User Id');\r\n          }\r\n        }\r\n      );\r\n    });\r\n  };\r\n  render() {\r\n    return (\r\n      &lt;View style={{ backgroundColor: 'white', flex: 1 }}&gt;\r\n        &lt;Mytextinput\r\n          placeholder=\"Enter User Id\"\r\n          onChangeText={input_user_id =&gt; this.setState({ input_user_id })}\r\n          style={{ padding:10 }}\r\n        \/&gt;\r\n        &lt;Mybutton\r\n          title=\"Delete User\"\r\n          customClick={this.deleteUser.bind(this)}\r\n        \/&gt;\r\n      &lt;\/View&gt;\r\n    );\r\n  }\r\n}\r\n<\/pre>\n<h3><b>To Run the React Native App<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Open the terminal and run the following command in order to run the application<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">For Android<\/span><\/li>\n<\/ol>\n<pre class=\"lang:default decode:true\">cd project_name &amp;&amp; react-native run-android<\/pre>\n<ol>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">For iOS\u00a0<\/span><\/li>\n<\/ol>\n<pre class=\"lang:default decode:true\">cd project_name &amp;&amp; react-native run-ios<\/pre>\n<p><b>Outputs<\/b><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0On running following command you get the following :<\/span><\/p>\n<p><img fetchpriority=\"high\" decoding=\"async\" class=\"wp-image-6007 size-large aligncenter\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/05\/1-1-473x1024.png\" alt=\"\" width=\"473\" height=\"1024\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/05\/1-1-473x1024.png 473w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/05\/1-1-139x300.png 139w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/05\/1-1-768x1662.png 768w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/05\/1-1-624x1350.png 624w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/05\/1-1.png 828w\" sizes=\"(max-width: 473px) 100vw, 473px\" \/><img decoding=\"async\" class=\"wp-image-6008 size-large aligncenter\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/05\/2-1-473x1024.png\" alt=\"\" width=\"473\" height=\"1024\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/05\/2-1-473x1024.png 473w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/05\/2-1-139x300.png 139w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/05\/2-1-768x1662.png 768w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/05\/2-1-624x1350.png 624w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/05\/2-1.png 828w\" sizes=\"(max-width: 473px) 100vw, 473px\" \/><\/p>\n<p><img decoding=\"async\" class=\"wp-image-6009 size-large aligncenter\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/05\/3-1-473x1024.png\" alt=\"\" width=\"473\" height=\"1024\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/05\/3-1-473x1024.png 473w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/05\/3-1-139x300.png 139w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/05\/3-1-768x1662.png 768w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/05\/3-1-624x1350.png 624w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/05\/3-1.png 828w\" sizes=\"(max-width: 473px) 100vw, 473px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-6010 size-large aligncenter\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/05\/4-473x1024.png\" alt=\"\" width=\"473\" height=\"1024\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/05\/4-473x1024.png 473w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/05\/4-139x300.png 139w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/05\/4-768x1662.png 768w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/05\/4-624x1350.png 624w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/05\/4.png 828w\" sizes=\"(max-width: 473px) 100vw, 473px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-6011 size-large aligncenter\" style=\"font-size: 1rem;\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/05\/5-473x1024.png\" alt=\"\" width=\"473\" height=\"1024\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/05\/5-473x1024.png 473w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/05\/5-139x300.png 139w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/05\/5-768x1662.png 768w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/05\/5-624x1350.png 624w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/05\/5.png 828w\" sizes=\"(max-width: 473px) 100vw, 473px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-6012 size-large aligncenter\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/05\/6-473x1024.png\" alt=\"\" width=\"473\" height=\"1024\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/05\/6-473x1024.png 473w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/05\/6-139x300.png 139w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/05\/6-768x1662.png 768w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/05\/6-624x1350.png 624w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/05\/6.png 828w\" sizes=\"(max-width: 473px) 100vw, 473px\" \/><\/p>\n<p>Thanks for giving your valuable time. Keep reading and keep learning<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction SQLite is an open-source SQL database used for storing data in mobile devices in the form of text files. It supports all the relational database features. There is no need to establish any linking or connection for performing any operations on the database. It works like other SQL databases, where we can perform any [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":6005,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[71,412],"tags":[],"class_list":["post-6004","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-mobile","category-react-native"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>SQLite database in React Native - InnovationM - Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.innovationm.com\/blog\/sqlite-database-in-react-native\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SQLite database in React Native - InnovationM - Blog\" \/>\n<meta property=\"og:description\" content=\"Introduction SQLite is an open-source SQL database used for storing data in mobile devices in the form of text files. It supports all the relational database features. There is no need to establish any linking or connection for performing any operations on the database. It works like other SQL databases, where we can perform any [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.innovationm.com\/blog\/sqlite-database-in-react-native\/\" \/>\n<meta property=\"og:site_name\" content=\"InnovationM - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-29T08:43:36+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-01-20T13:25:21+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/05\/SQLite-2.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1137\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"InnovationM Admin\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"InnovationM Admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/sqlite-database-in-react-native\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/sqlite-database-in-react-native\\\/\"},\"author\":{\"name\":\"InnovationM Admin\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\"},\"headline\":\"SQLite database in React Native\",\"datePublished\":\"2020-05-29T08:43:36+00:00\",\"dateModified\":\"2023-01-20T13:25:21+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/sqlite-database-in-react-native\\\/\"},\"wordCount\":468,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/sqlite-database-in-react-native\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/05\\\/SQLite-2.png\",\"articleSection\":[\"Mobile\",\"React Native\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/sqlite-database-in-react-native\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/sqlite-database-in-react-native\\\/\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/sqlite-database-in-react-native\\\/\",\"name\":\"SQLite database in React Native - InnovationM - Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/sqlite-database-in-react-native\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/sqlite-database-in-react-native\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/05\\\/SQLite-2.png\",\"datePublished\":\"2020-05-29T08:43:36+00:00\",\"dateModified\":\"2023-01-20T13:25:21+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/sqlite-database-in-react-native\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/sqlite-database-in-react-native\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/sqlite-database-in-react-native\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/05\\\/SQLite-2.png\",\"contentUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/05\\\/SQLite-2.png\",\"width\":1137,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/sqlite-database-in-react-native\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SQLite database in React Native\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/\",\"name\":\"InnovationM - Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\",\"name\":\"InnovationM Admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"caption\":\"InnovationM Admin\"},\"sameAs\":[\"http:\\\/\\\/www.innovationm.com\\\/\"],\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/author\\\/innovationmadmin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"SQLite database in React Native - InnovationM - Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.innovationm.com\/blog\/sqlite-database-in-react-native\/","og_locale":"en_US","og_type":"article","og_title":"SQLite database in React Native - InnovationM - Blog","og_description":"Introduction SQLite is an open-source SQL database used for storing data in mobile devices in the form of text files. It supports all the relational database features. There is no need to establish any linking or connection for performing any operations on the database. It works like other SQL databases, where we can perform any [&hellip;]","og_url":"https:\/\/www.innovationm.com\/blog\/sqlite-database-in-react-native\/","og_site_name":"InnovationM - Blog","article_published_time":"2020-05-29T08:43:36+00:00","article_modified_time":"2023-01-20T13:25:21+00:00","og_image":[{"width":1137,"height":630,"url":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/05\/SQLite-2.png","type":"image\/png"}],"author":"InnovationM Admin","twitter_misc":{"Written by":"InnovationM Admin","Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.innovationm.com\/blog\/sqlite-database-in-react-native\/#article","isPartOf":{"@id":"https:\/\/www.innovationm.com\/blog\/sqlite-database-in-react-native\/"},"author":{"name":"InnovationM Admin","@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed"},"headline":"SQLite database in React Native","datePublished":"2020-05-29T08:43:36+00:00","dateModified":"2023-01-20T13:25:21+00:00","mainEntityOfPage":{"@id":"https:\/\/www.innovationm.com\/blog\/sqlite-database-in-react-native\/"},"wordCount":468,"commentCount":0,"image":{"@id":"https:\/\/www.innovationm.com\/blog\/sqlite-database-in-react-native\/#primaryimage"},"thumbnailUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/05\/SQLite-2.png","articleSection":["Mobile","React Native"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.innovationm.com\/blog\/sqlite-database-in-react-native\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.innovationm.com\/blog\/sqlite-database-in-react-native\/","url":"https:\/\/www.innovationm.com\/blog\/sqlite-database-in-react-native\/","name":"SQLite database in React Native - InnovationM - Blog","isPartOf":{"@id":"https:\/\/www.innovationm.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.innovationm.com\/blog\/sqlite-database-in-react-native\/#primaryimage"},"image":{"@id":"https:\/\/www.innovationm.com\/blog\/sqlite-database-in-react-native\/#primaryimage"},"thumbnailUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/05\/SQLite-2.png","datePublished":"2020-05-29T08:43:36+00:00","dateModified":"2023-01-20T13:25:21+00:00","author":{"@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed"},"breadcrumb":{"@id":"https:\/\/www.innovationm.com\/blog\/sqlite-database-in-react-native\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.innovationm.com\/blog\/sqlite-database-in-react-native\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.innovationm.com\/blog\/sqlite-database-in-react-native\/#primaryimage","url":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/05\/SQLite-2.png","contentUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/05\/SQLite-2.png","width":1137,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.innovationm.com\/blog\/sqlite-database-in-react-native\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.innovationm.com\/blog\/"},{"@type":"ListItem","position":2,"name":"SQLite database in React Native"}]},{"@type":"WebSite","@id":"https:\/\/www.innovationm.com\/blog\/#website","url":"https:\/\/www.innovationm.com\/blog\/","name":"InnovationM - Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.innovationm.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed","name":"InnovationM Admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","caption":"InnovationM Admin"},"sameAs":["http:\/\/www.innovationm.com\/"],"url":"https:\/\/www.innovationm.com\/blog\/author\/innovationmadmin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts\/6004","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/comments?post=6004"}],"version-history":[{"count":0,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts\/6004\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/media\/6005"}],"wp:attachment":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/media?parent=6004"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/categories?post=6004"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/tags?post=6004"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}