¿Cómo crear y agregar datos a la base de datos SQLite en Android?

SQLite es otro almacenamiento de datos disponible en Android donde podemos almacenar datos en el dispositivo del usuario y usarlos en cualquier momento cuando sea necesario. En este artículo, veremos cómo crear una base de datos SQLite en la aplicación de Android y agregar datos a esa base de datos en la aplicación de Android. Esta es una serie de 4 artículos en los que vamos a realizar la operación CRUD (Crear, Leer, Actualizar y Eliminar) básica con la base de datos SQLite en Android. Vamos a cubrir los siguientes 4 artículos en esta serie:

  1. ¿Cómo crear y agregar datos a la base de datos SQLite en Android?
  2. ¿Cómo leer datos de la base de datos SQLite en Android?
  3. ¿Cómo actualizar datos a la base de datos SQLite en Android?
  4. ¿Cómo eliminar datos en la base de datos SQLite en Android?

¿Qué es la base de datos SQLite? 

SQLite Database es una base de datos de código abierto proporcionada en Android que se utiliza para almacenar datos dentro del dispositivo del usuario en forma de archivo de texto. Podemos realizar tantas operaciones en estos datos, como agregar nuevos datos, actualizar, leer y eliminar estos datos. SQLite es una base de datos fuera de línea que se almacena localmente en el dispositivo del usuario y no tenemos que crear ninguna conexión para conectarnos a esta base de datos.  

¿Cómo se almacenan los datos en la base de datos SQLite? 

Los datos se almacenan en la base de datos SQLite en forma de tablas . Cuando almacenamos estos datos en nuestra base de datos SQLite, se organizan en forma de tablas que son similares a las de una hoja de Excel. A continuación se muestra la representación de nuestra base de datos SQLite que estamos almacenando en nuestra base de datos SQLite. 

How Data is Being Stored in the SQLite database?

Métodos importantes en la base de datos SQLite

A continuación se muestran varios métodos importantes que usaremos en esta integración de base de datos SQLite en Android. 

Método

Descripción

getColumnNames() Este método se usa para obtener la array de nombres de columna de nuestra tabla SQLite. 
obtenerCuenta() Este método devolverá el número de filas en el cursor. 
está cerrado() Este método devuelve un valor booleano cuando nuestro cursor está cerrado. 
obtenerCuentaColumnas() Este método devuelve el número total de columnas presentes en nuestra tabla. 
getColumnName(int índiceColumna) Este método devolverá el nombre de la columna cuando le pasamos el índice de nuestra columna. 
getColumnIndex(String columnaNombre) Este método devolverá el índice de nuestra columna a partir del nombre de la columna.
obtenerPosición() Este método devolverá la posición actual de nuestro cursor en nuestra tabla. 

¿Qué vamos a construir en este artículo? 

Construiremos una aplicación simple en la que agregaremos datos a la base de datos SQLite. Crearemos una base de datos para agregar el nombre del curso, la descripción del curso, la duración del curso y las pistas del curso. Guardaremos todos estos datos en nuestra base de datos SQLite.

Implementación paso a paso

Paso 1: crear un nuevo proyecto

Para crear un nuevo proyecto en Android Studio, consulte Cómo crear/iniciar un nuevo proyecto en Android Studio . Tenga en cuenta que seleccione Java como lenguaje de programación.

Paso 2: agregar permisos para acceder al almacenamiento en el archivo AndroidManifest.xml

Vaya a la aplicación > AndroidManifest.xml y agréguele el siguiente código.  

XML

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

Paso 3: trabajar con el archivo activity_main.xml

Vaya a la aplicación > res > diseño > actividad_principal.xml y agregue el siguiente código a ese archivo. A continuación se muestra el código para el archivo  activity_main.xml .

XML

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">
  
    <!--Edit text to enter course name-->
    <EditText
        android:id="@+id/idEdtCourseName"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:hint="Enter course Name" />
  
    <!--edit text to enter course duration-->
    <EditText
        android:id="@+id/idEdtCourseDuration"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:hint="Enter Course Duration" />
  
    <!--edit text to display course tracks-->
    <EditText
        android:id="@+id/idEdtCourseTracks"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:hint="Enter Course Tracks" />
  
    <!--edit text for course description-->
    <EditText
        android:id="@+id/idEdtCourseDescription"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:hint="Enter Course Description" />
  
    <!--button for adding new course-->
    <Button
        android:id="@+id/idBtnAddCourse"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:text="Add Course"
        android:textAllCaps="false" />
  
</LinearLayout>

Paso 4: crear una nueva clase Java para realizar operaciones de SQLite 

Navegue a la aplicación > java > el nombre del paquete de su aplicación > haga clic con el botón derecho en él > Nuevo > clase Java y asígnele el nombre DBHandler y agréguele el siguiente código.

Java

import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
  
public class DBHandler extends SQLiteOpenHelper {
  
    // creating a constant variables for our database.
    // below variable is for our database name.
    private static final String DB_NAME = "coursedb";
      
    // below int is our database version
    private static final int DB_VERSION = 1;
      
    // below variable is for our table name.
    private static final String TABLE_NAME = "mycourses";
      
    // below variable is for our id column.
    private static final String ID_COL = "id";
      
    // below variable is for our course name column
    private static final String NAME_COL = "name";
      
    // below variable id for our course duration column.
    private static final String DURATION_COL = "duration";
      
    // below variable for our course description column.
    private static final String DESCRIPTION_COL = "description";
     
    // below variable is for our course tracks column.
    private static final String TRACKS_COL = "tracks";
  
    // creating a constructor for our database handler.
    public DBHandler(Context context) {
        super(context, DB_NAME, null, DB_VERSION);
    }
  
    // below method is for creating a database by running a sqlite query
    @Override
    public void onCreate(SQLiteDatabase db) {
        // on below line we are creating 
        // an sqlite query and we are 
        // setting our column names
        // along with their data types.
        String query = "CREATE TABLE " + TABLE_NAME + " ("
                + ID_COL + " INTEGER PRIMARY KEY AUTOINCREMENT, "
                + NAME_COL + " TEXT,"
                + DURATION_COL + " TEXT,"
                + DESCRIPTION_COL + " TEXT,"
                + TRACKS_COL + " TEXT)";
  
        // at last we are calling a exec sql 
        // method to execute above sql query
        db.execSQL(query);
    }
  
    // this method is use to add new course to our sqlite database.
    public void addNewCourse(String courseName, String courseDuration, String courseDescription, String courseTracks) {
          
        // on below line we are creating a variable for 
        // our sqlite database and calling writable method 
        // as we are writing data in our database.
        SQLiteDatabase db = this.getWritableDatabase();
          
        // on below line we are creating a 
        // variable for content values.
        ContentValues values = new ContentValues();
          
        // on below line we are passing all values 
        // along with its key and value pair.
        values.put(NAME_COL, courseName);
        values.put(DURATION_COL, courseDuration);
        values.put(DESCRIPTION_COL, courseDescription);
        values.put(TRACKS_COL, courseTracks);
          
        // after adding all values we are passing
        // content values to our table.
        db.insert(TABLE_NAME, null, values);
          
        // at last we are closing our
        // database after adding database.
        db.close();
    }
  
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // this method is called to check if the table exists already.
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
        onCreate(db);
    }
}

Paso 5: trabajar con el archivo MainActivity.java

Vaya al archivo MainActivity.java y consulte el siguiente código. A continuación se muestra el código del archivo MainActivity.java . Se agregan comentarios dentro del código para comprender el código con más detalle.

Java

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
  
import androidx.appcompat.app.AppCompatActivity;
  
public class MainActivity extends AppCompatActivity {
  
    // creating variables for our edittext, button and dbhandler
    private EditText courseNameEdt, courseTracksEdt, courseDurationEdt, courseDescriptionEdt;
    private Button addCourseBtn;
    private DBHandler dbHandler;
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
  
        // initializing all our variables.
        courseNameEdt = findViewById(R.id.idEdtCourseName);
        courseTracksEdt = findViewById(R.id.idEdtCourseTracks);
        courseDurationEdt = findViewById(R.id.idEdtCourseDuration);
        courseDescriptionEdt = findViewById(R.id.idEdtCourseDescription);
        addCourseBtn = findViewById(R.id.idBtnAddCourse);
          
        // creating a new dbhandler class 
        // and passing our context to it.
        dbHandler = new DBHandler(MainActivity.this);
          
        // below line is to add on click listener for our add course button.
        addCourseBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                  
                // below line is to get data from all edit text fields.
                String courseName = courseNameEdt.getText().toString();
                String courseTracks = courseTracksEdt.getText().toString();
                String courseDuration = courseDurationEdt.getText().toString();
                String courseDescription = courseDescriptionEdt.getText().toString();
                 
                // validating if the text fields are empty or not.
                if (courseName.isEmpty() && courseTracks.isEmpty() && courseDuration.isEmpty() && courseDescription.isEmpty()) {
                    Toast.makeText(MainActivity.this, "Please enter all the data..", Toast.LENGTH_SHORT).show();
                    return;
                }
                  
                // on below line we are calling a method to add new 
                // course to sqlite data and pass all our values to it.
                dbHandler.addNewCourse(courseName, courseDuration, courseDescription, courseTracks);
                  
                // after adding the data we are displaying a toast message.
                Toast.makeText(MainActivity.this, "Course has been added.", Toast.LENGTH_SHORT).show();
                courseNameEdt.setText("");
                courseDurationEdt.setText("");
                courseTracksEdt.setText("");
                courseDescriptionEdt.setText("");
            }
        });
    }
}

Ahora ejecute su aplicación y vea el resultado de la aplicación.

Producción:

Después de ejecutar con éxito el código, ingrese los datos requeridos dentro del EditText. Lo más importante si desea conocer la base de datos de datos de artículos

A continuación se muestra la estructura completa del archivo del proyecto después de realizar la operación de creación y adición:

Publicación traducida automáticamente

Artículo escrito por chaitanyamunje y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *