¿Cuáles son los pasos para crear una base de datos sqlite en Android Studio?

Método 1:

Crear una base de datos es muy fácil, solo necesita llamar al método

openOrCreateDatabase () . Puede llamar a este método si está dentro de una actividad. O si no está dentro de una actividad, necesita un objeto de contexto.

El método toma los siguientes parámetros en la secuencia dada.

  1. Cadena -> Es el nombre de la base de datos. Si el nombre dado ya existe en su paquete, abrirá la base de datos, de lo contrario, creará una base de datos con el nombre dado.
  2. Int -> El modo para abrir la base de datos generalmente es MODE_PRIVATE.
  3. CursorFactory -> Es anulable u opcional. Si lo desea, puede usarlo o puede pasar nulo.

El método devuelve un objeto SQLiteDatabase y con la ayuda de este objeto puede hacer cualquier cosa.

Para obtener más detalles, puede leer esta gran guía sobre SQLiteDatabase.

Ejemplo de Android SQLiteDatabase

Método 2:

Puede usar una clase predefinida llamada SQLiteOpenHelper. Hará las cosas organizadas y fáciles.

Aquí hay otra publicación que explica cómo usar SQLiteOpenHelper en detalle.

Android SQLiteOpenHelper Tutorial

Espero que esto ayude. Gracias 🙂

Puede crear una base de datos SQLite para almacenar detalles de la película utilizando el siguiente fragmento de código:

paquete com.androiddeft.sqlitetutorial.helper;

importar android.content.ContentValues;
importar android.content.Context;
importar android.database.Cursor;
importar android.database.sqlite.SQLiteDatabase;
importar android.database.sqlite.SQLiteOpenHelper;

import com.androiddeft.sqlitetutorial.vo.MovieDetailsVO;

import java.util.ArrayList;
import java.util.List;

/ **
* Creado por Abhi el 17 de abril de 2017 017.
* /

SQLiteDBHelper de clase pública extiende SQLiteOpenHelper {

public static final int DATABASE_VERSION = 1;
public static final String DATABASE_NAME = “Detalles de película”;

public static final String TABLE_NAME = “películas”;
Cadena estática pública final KEY_MOVIE_ID = “movie_id”;
Cadena pública estática final KEY_MOVIE_NAME = “nombre_película”;
Cadena estática pública final KEY_GENRE = “género”;
public static final Cadena KEY_YEAR = “año”;
Cadena pública estática final KEY_RATING = “rating”;
// Crear consulta de tabla
Cadena final estática privada SQL_CREATE_MOVIES =
“CREAR películas de TABLA (” + KEY_MOVIE_ID + “INTEGER PRIMARY KEY”
+ KEY_MOVIE_NAME + “TEXT”, + KEY_GENRE + “TEXT”
+ KEY_YEAR + “INTEGER,” + KEY_RATING + “REAL);”;

Cadena estática privada final SQL_DELETE_MOVIES =
“DROP TABLE IF EXISTS” + TABLE_NAME;

SQLiteDBHelper público (contexto de contexto) {
super (contexto, DATABASE_NAME, nulo, DATABASE_VERSION);
}

@Anular
public void onCreate (SQLiteDatabase db) {
db.execSQL (SQL_CREATE_MOVIES);
}

@Anular
public void onUpgrade (SQLiteDatabase db, int i, int i1) {
// Suelta la tabla mientras actualizas la base de datos
// como agregar una nueva columna o cambiar la restricción existente
db.execSQL (SQL_DELETE_MOVIES);
this.onCreate (db);
}

@Anular
public void onDowngrade (SQLiteDatabase db, int oldVersion, int newVersion) {
this.onUpgrade (db, oldVersion, newVersion);
}

}

Para leer el tutorial paso a paso sobre cómo se implementa, puede ver este blog: Android: Almacenamiento de datos utilizando la base de datos SQLite – AndroidDeft.com

Este blog también tiene el código fuente y el archivo APK de la implementación

/ **
Este mucho menos código que puedes escribir
para crear una base de datos en la aplicación de Android.
** /

/ **
Aunque no es el método correcto a seguir.
Es como la inyección SQL.
Solo estoy siguiendo tu pregunta.
** /

importar android.database.sqlite.SQLiteDatabase;

clase pública MyClass extiende la actividad {
SQLiteDatabase privado sqLiteDatabase;

@Anular
public void onCreate (Bundle savedInstanceState) {
super.onCreate (savedInstanceState);
setContentView (R.layout.YOUR_XML_FILE);

// Inicializando objeto
sqLiteDatabase = openOrCreateDatabase (“NAME_OF_DATABASE”, MODE_PRIVATE, nulo);

// Ejecute su consulta utilizando este método.
sqLiteDatabase.execSQL (“SQL_QUERY”);

// Recuperar registros de la base de datos usando el cursor
Cursor cursor = sqLiteDatabase.rawQuery (“SELECT_QUERY”, nulo);

while (cursor.moveToNext ()) {
Log.d (“Grabar”, cursor.getString (cursor.getColumnIndex (“COLUMN_NAME”));
}
}
}

//Iniciar sesión

clase pública LoginActivity extiende la actividad {
Botón de inicio de sesión;
EditText USERNAME, USERPASS;
String nombre de usuario, userpass;
Contexto CTX = esto;

@Anular
vacío protegido onCreate (Bundle savedInstanceState) {
// TODO Código auxiliar de método generado automáticamente
super.onCreate (savedInstanceState);
setContentView (R.layout.login_layout);
Inicio de sesión = (Botón) findViewById ( http: //R.id.b_login );
USERNAME = (EditText) findViewById ( http: //R.id.user_name );
USERPASS = (EditText) findViewById ( http: //R.id.user_pass );
Login.setOnClickListener (nuevo OnClickListener () {

@Anular
public void onClick (Ver arg0) {
Paquete b = getIntent (). GetExtras ();
int status = b.getInt (“estado”);
if (estado == 1) {
Toast.makeText (getApplicationContext (), “Espere …”, Toast.LENGTH_LONG) .show ();
nombre de usuario = USERNAME.getText (). toString ();
userpass = USERPASS.getText (). toString ();
DatabaseOperations DOP = nuevas DatabaseOperations (CTX);
Cursor CR = DOP.getInformation (DOP);
CR.moveToFirst ();
loginstatus booleano = falso;
String NAME = “”;
hacer {
if (username.equals (CR.getString (0)) && (userpass.equals (CR.getString (1)))) {
loginstatus = verdadero;
NOMBRE = CR.getString (0);
}

} while (CR.moveToNext ());
if (loginstatus) {
Toast.makeText (getApplicationContext (), “Login Success —- \ n Welcome” + NAME, Toast.LENGTH_LONG) .show ();
terminar();
} más {
Toast.makeText (getApplicationContext (), “Error de inicio de sesión—-“, Toast.LENGTH_LONG) .show ();
terminar();
}

} else if (estado == 2) {
Toast.makeText (getApplicationContext (), “Espere …”, Toast.LENGTH_LONG) .show ();
nombre de usuario = USERNAME.getText (). toString ();
userpass = USERPASS.getText (). toString ();
DatabaseOperations DOP = nuevas DatabaseOperations (CTX);
Cursor CR = DOP.getInformation (DOP);
CR.moveToFirst ();
loginstatus booleano = falso;
String NAME = “”;
hacer {
if (username.equals (CR.getString (0)) && (userpass.equals (CR.getString (1)))) {
loginstatus = verdadero;
NOMBRE = CR.getString (0);
}

} while (CR.moveToNext ());
if (loginstatus) {
Toast.makeText (getApplicationContext (), “Login Success —- \ n Welcome” + NAME, Toast.LENGTH_LONG) .show ();
Intención i = nueva intención (LoginActivity.this, DeleteActivity.class);
Bundle BN = nuevo Bundle ();
BN.putString (“nombre_usuario”, NOMBRE);
BN.putString (“user_pass”, userpass);
i.putExtras (BN);
startActivity (i);
terminar();
} más {
Toast.makeText (getApplicationContext (), “Error de inicio de sesión—-“, Toast.LENGTH_LONG) .show ();
terminar();
}

} else if (estado == 3) {
Toast.makeText (getApplicationContext (), “Espere …”, Toast.LENGTH_LONG) .show ();
nombre de usuario = USERNAME.getText (). toString ();
userpass = USERPASS.getText (). toString ();
DatabaseOperations DOP = nuevas DatabaseOperations (CTX);
Cursor CR = DOP.getInformation (DOP);
CR.moveToFirst ();
loginstatus booleano = falso;
String NAME = “”;
hacer {
if (username.equals (CR.getString (0)) && (userpass.equals (CR.getString (1)))) {
loginstatus = verdadero;
NOMBRE = CR.getString (0);
}

} while (CR.moveToNext ());
if (loginstatus) {
Toast.makeText (getApplicationContext (), “Login Success —- \ n Welcome” + NAME, Toast.LENGTH_LONG) .show ();
Intención i = nueva intención (“delete_filter”);
Bundle B = nuevo Bundle ();
B.putString (“nombre_usuario”, NOMBRE);
i.putExtras (B);
startActivity (i);

terminar();
} más {
Toast.makeText (getApplicationContext (), “Error de inicio de sesión—-“, Toast.LENGTH_LONG) .show ();
terminar();
}

// Intento i = nuevo intento (“delete_filter”);
// startActivity (i);
}

}
});
}

}

//Registro

REG.setOnClickListener (nuevo OnClickListener () {

@Anular
public void onClick (Ver v) {
nombre_usuario = USER_NAME.getText (). toString ();
user_pass = USER_PASS.getText (). toString ();
con_pass = CON_PASS.getText (). toString ();

if (! (user_pass.equals (con_pass)))
{
Toast.makeText (getApplicationContext (), “Las contraseñas no coinciden”, Toast.LENGTH_LONG) .show ();
USER_NAME.setText (“”);
USER_PASS.setText (“”);
CON_PASS.setText (“”);
}
más
{
DatabaseOperations DB = new DatabaseOperations (ctx);
DB.putInformation (DB, user_name, user_pass);
Toast.makeText (getApplicationContext (), “Registro exitoso”, Toast.LENGTH_LONG) .show ();
terminar();

}

}
});
//Actualizar

b_update.setOnClickListener (nuevo OnClickListener () {

@Anular
public void onClick (Ver v) {
nombre_usuario = nombredeusuario.getText (). toString ();
user_pass = contraseña.getText (). toString ();
New_user_name = newuser.getText (). ToString ();
DOP = nuevas operaciones de base de datos (CTX);

Cursor CR = DOP.getUserPass (DOP, nombre_usuario);
CR.moveToFirst ();
boolean login_status = false;
if (CR.getCount ()> 0) {
DOP.updateUserInfo (DOP, user_name, user_pass, New_user_name);
Toast.makeText (getApplicationContext (), “Actualización correcta …..”, Toast.LENGTH_LONG) .show ();
terminar();

} más {
Toast.makeText (getApplicationContext (), “Usuario no válido … Intente más tarde”, Toast.LENGTH_LONG) .show ();

}
}
});

//HACER
@Anular
public void onUpgrade (SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Código auxiliar de método generado automáticamente
// Descarta la tabla anterior si existía
db.execSQL (“DROP TABLE IF EXISTS” + TableData.TableInfo.TABLE_NAME);
onCreate (db); // Crear tablas nuevamente

}

public void putInformation (DatabaseOperations dop, String name, String pass)

{
SQLiteDatabase SQ = dop.getWritableDatabase ();
ContentValues ​​cv = new ContentValues ​​();
cv.put (TableData.TableInfo.USER_NAME, nombre);
cv.put (TableData.TableInfo.USER_PASS, pass);
largo k = SQ.insert (TableData.TableInfo.TABLE_NAME, null, cv);
Log.d (“Operaciones de la base de datos”, “Uno sin procesar insertado”);

}

getInformation de cursor público (base de datos de operaciones dop) {
SQLiteDatabase SQ = dop.getReadableDatabase ();
Cadena [] coloumns = {TableData.TableInfo.USER_NAME, TableData.TableInfo.USER_PASS};
Cursor CR = SQ.query (TableData.TableInfo.TABLE_NAME, coloumns, null, null, null, null, null);
devolver CR;

}

Cursor público getUserPass (base de datos DOP, usuario de cadena) {
SQLiteDatabase SQ = DOP.getReadableDatabase ();
Selección de cadena = TableData.TableInfo.USER_NAME + “LIKE?”;
Columnas de cadena [] = {TableData.TableInfo.USER_PASS};
Args de cadena [] = {usuario};
Cursor CR = SQ.query (TableData.TableInfo.TABLE_NAME, coloumns, selection, args, null, null, null);
devolver CR;

}

public void deleteUser (DatabaseOperations DOP, String user, String pass) {
Selección de cadena = TableData.TableInfo.USER_NAME + “LIKE? AND” + TableData.TableInfo.USER_PASS + “LIKE?”;
// Columnas de cadena [] = {TableData.TableInfo.USER_PASS};
String args [] = {usuario, pasar};
SQLiteDatabase SQ = DOP.getWritableDatabase ();
SQ.delete (TableData.TableInfo.TABLE_NAME, selección, argumentos);

}

public void updateUserInfo (DatabaseOperations DOP, String user_name, String user_pass, String new_user_name) {
SQLiteDatabase SQ = DOP.getWritableDatabase ();
Selección de cadena = TableData.TableInfo.USER_NAME + “LIKE? AND” + TableData.TableInfo.USER_PASS + “LIKE?”;
String args [] = {user_name, user_pass};
Valores de ContentValues ​​= new ContentValues ​​();
values.put (TableData.TableInfo.USER_NAME, new_user_name);
SQ.update (TableData.TableInfo.TABLE_NAME, valores, selección, argumentos);

}

Base de datos sqlite mainactivity

importar android.content.Intent;

importar android.database.sqlite.SQLiteDatabase;

importar android.app.Activity;

importar android.os.Bundle;

importar android.view.View;

importar android.widget.Button;

importar android.widget.EditText;

importar android.widget.Toast;

clase pública MainActivity extiende la actividad {

Botón b, c, d;

EditText et1;

EditText et2;

EditText et3;

Nombre de cadena, teléfono, correo electrónico;

@Anular

vacío protegido onCreate (Bundle savedInstanceState) {

super.onCreate (savedInstanceState);

setContentView (R.layout.activity_main);

SQLiteDatabase final mydb = openOrCreateDatabase (“detalles8”, MODE_PRIVATE, nulo);

mydb.execSQL (“crear tabla si no existe detalles (nombre VARCHAR (15), teléfono VARCHAR (10), correo electrónico VARCHAR (30));”);

b = (Botón) findViewById ( http: //R.id.button );

c = (Botón) findViewById ( http: //R.id.button2 );

d = (Botón) findViewById ( http: //R.id.button3 );

et1 = (EditText) findViewById ( http: //R.id.editText );

et2 = (EditText) findViewById ( http: //R.id.editText2 );

et3 = (EditText) findViewById ( http: //R.id.editText3 );

b.setOnClickListener (nueva View.OnClickListener () {

@Anular

public void onClick (Ver v) {

nombre = et1.getText (). toString ();

phone = et2.getText (). toString ();

correo electrónico = et3.getText (). toString ();

mydb.execSQL (“insertar en valores de detalles (‘” + nombre + “‘, ‘” + teléfono + “‘, ‘” + correo electrónico + “‘);”);

Toast.makeText (MainActivity.this, “Detalles ingresados! Gracias” + nombre + “:)”, Toast.LENGTH_SHORT) .show ();

}

});

c.setOnClickListener (nueva View.OnClickListener () {

@Anular

public void onClick (Ver v) {

Intención myintent = nueva intención (MainActivity.this, Main2Activity.class);

startActivity (myintent);

}

});

d.setOnClickListener (nueva View.OnClickListener () {

@Anular

public void onClick (Ver v) {

mydb.execSQL (“eliminar de detalles;”);

Toast.makeText (MainActivity.this, “¡Todos los registros han sido eliminados!”, Toast.LENGTH_SHORT) .show ();

}

});

}

}

main2activity—–

importar android.database.Cursor;

importar android.database.sqlite.SQLiteDatabase;

importar android.app.Activity;

importar android.os.Bundle;

importar android.widget.ArrayAdapter;

importar android.widget.ListView;

import java.util.ArrayList;

import java.util.List;

clase pública Main2Activity extiende la actividad {

ListView lv;

Nombre de cadena, teléfono, correo electrónico;

ArrayList cl;

@Anular

vacío protegido onCreate (Bundle savedInstanceState) {

super.onCreate (savedInstanceState);

setContentView (R.layout.activity_main2);

lv = (ListView) findViewById ( http: //R.id.listView );

cl = new ArrayList ();

SQLiteDatabase final mydb = openOrCreateDatabase (“detalles8”, MODE_PRIVATE, nulo);

mydb.execSQL (“crear tabla si no existe detalles (nombre VARCHAR (15), teléfono VARCHAR (10), correo electrónico VARCHAR (30));”);

Cursor rs = mydb.rawQuery (“seleccionar * de los detalles”, nulo);

while (rs.moveToNext ()) {

nombre = rs.getString (0);

phone = rs.getString (1);

correo electrónico = rs.getString (2);

cl.add (nombre + “\ n” + teléfono + “\ n” + correo electrónico);

}

Adaptador ArrayAdapter = nuevo ArrayAdapter (esto, android.R.layout.simple_list_item_1, cl);

lv.setAdapter (adaptador);

}

}

actividad_xml

http://schemas.android.com/apk/r …”

xmlns: app = ” http://schemas.android.com/apk/r…

xmlns: tools = ” http://schemas.android.com/tools&quot ;

android: layout_width = “match_parent”

android: layout_height = “match_parent”

herramientas: contexto = “com.example.hp.simplesqlite.MainActivity”

herramientas: layout_editor_absoluteY = “81dp”>

android: id = “@ + id / editText”

android: layout_width = “wrap_content”

android: layout_height = “wrap_content”

android: layout_marginTop = “76dp”

android: ems = “10”

android: inputType = “textPersonName”

android: text = “Nombre”

aplicación: layout_constraintEnd_toEndOf = “padre”

aplicación: layout_constraintStart_toStartOf = “padre”

aplicación: layout_constraintTop_toTopOf = “padre” />

android: id = “@ + id / editText2”

android: layout_width = “wrap_content”

android: layout_height = “wrap_content”

android: layout_marginTop = “47dp”

android: ems = “10”

android: inputType = “textPersonName”

android: text = “Número de teléfono”

aplicación: layout_constraintStart_toStartOf = “@ + id / editText”

aplicación: layout_constraintTop_toBottomOf = “@ + id / editText” />

android: id = “@ + id / editText3”

android: layout_width = “wrap_content”

android: layout_height = “wrap_content”

android: layout_marginTop = “47dp”

android: ems = “10”

android: inputType = “textPersonName”

android: text = “ID de correo electrónico”

aplicación: layout_constraintStart_toStartOf = “@ + id / editText2”

aplicación: layout_constraintTop_toBottomOf = “@ + id / editText2” />

android: id = “@ + id / button”

android: layout_width = “wrap_content”

android: layout_height = “wrap_content”

android: layout_marginStart = “3dp”

android: text = “INTRODUCIR DETALLES”

aplicación: layout_constraintBaseline_toBaselineOf = “@ + id / button2”

aplicación: layout_constraintEnd_toStartOf = “@ + id / button2”

aplicación: layout_constraintStart_toStartOf = “parent” />

android: id = “@ + id / button2”

android: layout_width = “wrap_content”

android: layout_height = “wrap_content”

android: layout_marginBottom = “112dp”

android: layout_marginEnd = “3dp”

android: text = “VERIFICAR DETALLES”

aplicación: layout_constraintBottom_toBottomOf = “parent”

aplicación: layout_constraintEnd_toEndOf = “padre”

aplicación: layout_constraintStart_toEndOf = “@ + id / button” />

android: id = “@ + id / button3”

android: layout_width = “wrap_content”

android: layout_height = “wrap_content”

android: layout_marginBottom = “34dp”

android: text = “BORRAR TODOS LOS REGISTROS”

aplicación: layout_constraintBottom_toBottomOf = “parent”

aplicación: layout_constraintEnd_toEndOf = “padre”

aplicación: layout_constraintStart_toStartOf = “parent” />

actividad2_xml

http://schemas.android.com/apk/r …”

xmlns: app = ” http://schemas.android.com/apk/r…

xmlns: tools = ” http://schemas.android.com/tools&quot ;

android: layout_width = “match_parent”

android: layout_height = “match_parent”

herramientas: context = “com.example.adhish.lab8.Main2Activity”

herramientas: layout_editor_absoluteY = “81dp”>

android: id = “@ + id / listView”

android: layout_width = “0dp”

android: layout_height = “0dp”

android: layout_marginBottom = “8dp”

android: layout_marginEnd = “8dp”

android: layout_marginStart = “8dp”

android: layout_marginTop = “8dp”

android: listSelector = “@ android: color / holo_red_light”

aplicación: layout_constraintBottom_toBottomOf = “parent”

aplicación: layout_constraintEnd_toEndOf = “padre”

aplicación: layout_constraintStart_toStartOf = “padre”

aplicación: layout_constraintTop_toTopOf = “padre” />

Puede ser un gran código para compartir aquí, pero puedo ayudarlo con un enlace con una demostración de código fuente … Aprenda aquí Tutorial paso a paso de la base de datos Android SQLite para principiantes | Whats-online.info

Puedes atravesarlo. Descripción detallada sobre SQLite en Android.

Android SQLite

Si conoce el uso de la clase base sqlitedatabase y pregunta, creo que es hora de que aprenda ormlite.
Es conveniente simple y fácil. La mayoría de las actualizaciones de creación son manejadas por ormlite.

Esto se recomienda si ya sabe usar sqlitedatabase.

Debe crear una subclase de la clase SQLiteOpenHelper y en esa clase, se escriben los métodos para las operaciones CRUD.

More Interesting

Tengo una idea para una aplicación móvil y tengo habilidades de programación decentes en JAVA, Python, C ++, Ruby y PHP, pero todavía no tengo idea de cómo hacerlo. ¿Cómo debo comenzar?

¿Por qué debo aprender Java antes de aprender a desarrollar aplicaciones de Android?

¿Qué aplicación de Android te gustaría desarrollar?

¿Cómo comenzar con el desarrollo de Android? ¿Cuáles son las plataformas gratuitas disponibles para aprender el desarrollo de aplicaciones de Android?

¿Qué tan fácil sería crear una aplicación simple de cronómetro para Android? ¿Cómo lo haría?

Cómo usar el almacenamiento local en el desarrollo de aplicaciones de Android para almacenar datos como la base de datos

¿Debería centrarme solo en el desarrollo de iOS o también debería aprender el desarrollo de Android?

¿Cómo creo una vista de búsqueda para una base de datos externa en Android Studio?

¿Cuánto cobra un desarrollador de Android por trabajar para una startup?

¿Es correcto para mí usar Firebase como base de datos para una aplicación de Android en tiempo real, y por qué o por qué no?

¿Por qué la aplicación para Android Quora es tan lenta y con errores?

¿Cuál es la mejor fuente gratuita en línea para aprender el desarrollo de aplicaciones de Android desde principiantes hasta avanzados?

Cómo ocultar aplicaciones en el sistema operativo Android sin usar aplicaciones de terceros

¿Android 1 hará historia?

¿Existe alguna aplicación de control parental de código abierto para Android?