Cómo configurar sqlite
1 Introducción. SQLite
SQLite es una base de datos ligera y un sistema de gestión de bases de datos relacionales que cumple con ACID. Está diseñado para uso integrado y actualmente se utiliza en muchos productos integrados. Ocupa recursos muy bajos. En dispositivos integrados, es posible que solo requiera unos pocos cientos de K de memoria.
Puede admitir sistemas operativos convencionales como Windows/Linux/Unix, y puede combinarse con una variedad de lenguajes de programación, como Tcl, PHP, Java, C++. Interfaces de red y ODBC. De manera similar, en comparación con Mysql y PostgreSQL, dos sistemas de administración de bases de datos de código abierto de fama mundial, su velocidad de procesamiento también es más rápida que ellos.
Características de 2.2. SQLite:
Reproductor liviano
A diferencia del software de base de datos en modo C/S, SQLite es un motor de base de datos en proceso, por lo que no hay un cliente o servidor de base de datos. Para utilizar SQLite, generalmente sólo necesitas traer una de sus bibliotecas dinámicas para disfrutar de todas sus funciones.
Además, el tamaño de la biblioteca dinámica es bastante pequeño. Tomando la versión 3.6.11 como ejemplo, tiene 487 KB en Windows y 347 KB en Linux.
No se requiere "instalación"
El motor central propio de SQLite no depende de software de terceros y no requiere "instalación". Es algo así como una aplicación portátil.
Fila única
Toda la información de la base de datos (como tablas, vistas, etc.) está contenida en un archivo. Este archivo se puede copiar a otros directorios u otras máquinas a voluntad.
Multiplataforma/portabilidad
Además de los principales sistemas operativos Windows y Linux, SQLite también admite algunos otros sistemas operativos poco comunes.
Campos débilmente tipificados
Los datos de una misma columna pueden ser de diferentes tipos.
Código fuente abierto
3.Tipo de datos SQLite
Los datos generales utilizan tipos de datos estáticos fijos, mientras que SQLite utiliza tipos de datos dinámicos, que se cambiarán según El valor almacenado. SQLite tiene los siguientes cinco tipos de datos comunes:
nulo: el valor es NULL.
VARCHAR(n): una cadena de longitud variable, con una longitud máxima de n, donde n no puede exceder 4000.
CHAR(n): una cadena de longitud fija n, n no puede exceder 254.
ENTERO: El valor se identifica como un número entero, el cual se puede almacenar como 1, 2, 3, 4, 5, 6, 7 u 8 según el tamaño del valor.
REAL: Todos los valores son valores de punto flotante, almacenados como números de secuencia de etiquetas de punto flotante IEEE de 8 bytes.
Texto: El valor es una cadena de texto, almacenada en la codificación de la base de datos (tutf-8, UTF-16be o UTF-16-le).
BLOB: El valor es un bloque de datos BLOB, almacenado en el formato de datos de entrada. Cómo ingresar, cómo almacenar, sin cambiar el formato.
Datos: Contiene año, mes y día.
Tiempo: incluye horas, minutos y segundos.
Dos. Introducción a SQLiteDatabase
Android proporciona una API para crear y utilizar bases de datos SQLite. SQLiteDatabase representa un objeto de base de datos y proporciona algunos métodos para operar la base de datos. Existe la herramienta sqlite3 en el directorio SDK de Android. Podemos usarla para crear bases de datos, crear tablas y ejecutar algunas declaraciones SQL. Los siguientes son métodos comunes de SQLiteDatabase.
Métodos comunes de SQLiteDatabase
Nombre del método
Método para expresar significado
openOrCreateDatabase(ruta de cadena, SQLiteDatabase.
CursorFactory factory)
Abrir o crear base de datos
Insertar (tabla de cadenas, cadena nullColumnHack, valor de valor de contenido)
Insertar registro
eliminar (tabla de cadenas, cláusula de cadena donde, cadena[] dondeArgs)
Eliminar registro
Consulta (tabla de cadenas, columna de cadena[], selección de cadena, cadena [] seleccione Args, agrupación de cadenas por, cadena teniendo, cadena ordenando por)
Registro de consulta
actualización (tabla de cadenas, valor de valor de contenido, cadena cláusula donde, cadena [] argumentos donde)
Correcto registrar
execSQL(String SQL)
Ejecutar sentencia SQL
Close()
Cerrar la base de datos
Google da a estos métodos nombres muy llamativos. Por ejemplo, openOrCreateDatabase, del significado literal en inglés, podemos ver que esta es una forma de abrir o crear una base de datos.
1. Abrir o crear una base de datos
Utilice el método estático OpenOrchestrated Database (ruta de cadena, SQLiteDatabase) para abrir o crear una base de datos en Android. Fábrica de cursores).
Detectará automáticamente si la base de datos existe, la abrirá si existe y creará una base de datos si no existe; si la creación es exitosa, devolverá el objeto SQLiteDatabase; de lo contrario, arrojará un objeto. excepción FileNotFoundException.
El siguiente es el código para crear una base de datos llamada "stu.db":
openOrCreateDatabase(Ruta de cadena, fábrica SQLiteDatabae.CursorFactory)
Parámetro 1 base de datos Crear ruta
El parámetro 2 normalmente está vacío.
Por ejemplo: db = sqlitedatabase . openorcreatedatabase("/data/data/com . lingdu DuDu . db/databases/stu . db ", null
2.
Los pasos para crear una tabla son muy simples:
Escribe sentencias SQL para crear tablas.
Llame al método execSQL() de SQLiteDatabase para ejecutar la instrucción SQL.
El siguiente código crea una tabla de usuarios con las columnas de atributos: id (clave principal y aumento automático), sname (nombre del estudiante) y snumber (número de estudiante).
Ver código
3. Insertar datos
ContentValues es un mecanismo de almacenamiento comúnmente utilizado en operaciones de bases de datos. Sólo se pueden almacenar tipos básicos.
Hay dos métodos para insertar datos:
①①Método de inserción de base de datos SQLite (tabla de cadenas, hack de columna nula de cadena, valores de contenido)
Nombre de la tabla del parámetro 1,
p>
El valor predeterminado de la columna vacía del parámetro 2
Un mapa; el parámetro de tipo 3 ContentValues que encapsula el nombre de la columna y el valor de la columna;
Ver código
(2) Escriba una declaración SQL para insertar datos y llame directamente al método execSQL() de SQLiteDatabase para ejecutar.
Ver código
4. Eliminar datos
Hay dos formas de eliminar datos:
①Llamar a eliminar (tabla de cadenas) de SQLiteDatabase , cadena donde cláusula, cadena [] donde argumentos) método.
Nombre de la tabla del parámetro 1
Condición de eliminación del parámetro 2
Matriz de valores de la condición de eliminación del parámetro 3
Ver código
(2) Escriba una declaración SQL de eliminación y llame al método execSQL() de SQLiteDatabase para eliminarla.
Ver código
5. Modificar datos
Hay dos formas de modificar datos:
①Llamar a la actualización de SQLiteDatabase (tabla de cadenas, contenido). valores valores, cadena donde cláusula, cadena [] donde args) método.
Nombre de la tabla del parámetro 1
Parámetro 2 en filas y columnas y pares clave-valor de tipo ContentValues.
Condición de actualización del parámetro 3 (instrucción donde)
Matriz de condiciones de actualización del parámetro 4
Ver código
②Escriba una declaración SQL actualizada, llame ExecSQL de SQLiteDatabase para actualizar.
Ver código
6. Consultar datos
En Android, la consulta de datos se implementa a través de la clase Cursor. Cuando usamos el método SQLiteDatabase.query(), obtendremos un objeto de cursor que apunta a cada dato. Proporciona muchos métodos de consulta, los métodos específicos son los siguientes:
Consulta de cursor público (tabla de cadenas, columna de cadena [], selección de cadena, selección de cadena [] Args, cadena groupBy, cadena que tiene, cadena orderBy, límite de cadena);
Descripción del significado de cada parámetro:
Tabla de parámetros: nombre de la tabla.
Columna de parámetros: matriz de nombres de columnas.
Selección de parámetros: oración condicional, equivalente a dónde.
Argumentos de selección de parámetros: oración condicional, matriz de parámetros
Parámetro groupBy: columna de agrupación
Los parámetros incluyen: condición de agrupación
Parámetro orderBy: Ordenar columna.
Restricciones de parámetros: restricciones de consultas de paginación.
Cursor de parámetro: valor de retorno, equivalente a ResultSet.
Cursor es una interfaz de cursor que proporciona métodos para recorrer los resultados de una consulta, como el método de puntero de movimiento move() y el método de valor de columna getString().
Métodos comunes del cursor
Nombre del método
Descripción del método
getCount()
Obtener elementos de datos número total
isFirst()
Juzga si el primer registro es
islast()
Juzga el último registro.
moveToFirst()
Mover al primer registro
moveToLast()
Mover al último registro
Mover (desplazamiento entero)
Mover al registro especificado
moveToNext()
Mover al siguiente registro
moveToPrevious( )
Mover al registro anterior
getColumnIndexOrThrow(nombre de la columna de cadena)
Obtener el índice de la columna según el nombre de la columna
getInt( int Índice de columna)
Obtiene el valor int del índice de columna especificado.
getString(int columnIndex)
Obtiene el valor de cadena de la columna miniatura especificada.
El siguiente es un cursor utilizado para consultar datos en la base de datos. El código específico es el siguiente:
Ver código
7. Eliminar la tabla especificada
Escriba una declaración SQL para insertar datos y llame directamente a execSQL( ) método de SQLiteDatabase a ejecutar.
Ver código
3.
SQLiteOpenHelper
Esta clase es una clase auxiliar de SQLiteDatabase. Esta clase se utiliza principalmente para generar una base de datos y administrar la versión de la base de datos.
Al llamar al método getWritableDatabase() o getReadableDatabase() de esta clase en el programa, si no hay datos en ese momento, el sistema Android generará automáticamente una base de datos.
SQLiteOpenHelper es una clase abstracta. Normalmente necesitamos heredarla e implementar tres funciones en ella:
1.oncreate(base de datos SQLite)
Este método. Se llamará cuando la base de datos se genere por primera vez, lo que significa que solo se llamará cuando se cree la base de datos. Por supuesto, hay otras situaciones. Normalmente, utilizamos este método para generar tablas de bases de datos.
2.onUpgrade(SQLiteDatabase, int, int)
Cuando es necesario actualizar la base de datos, el sistema Android llamará activamente a este método. Por lo general, eliminamos la tabla de datos y creamos una nueva tabla de datos en este método. Por supuesto, si necesitamos realizar otras operaciones depende completamente de los requisitos de la aplicación.
3.onOpen(SQLiteDatabase):
Esta es la función de devolución de llamada al abrir la base de datos y no se usa comúnmente en programas.
Después de haber escrito tanto, utilizo ejemplos prácticos para ilustrar lo anterior.
Los siguientes ejemplos de operaciones de bases de datos implementan las operaciones de crear una base de datos, crear una tabla y agregar, eliminar y verificar una base de datos.
Esta instancia tiene dos clases:
Clase de depuración Com.lingdududu.testSQLite
com.lingdududu.testSQLiteDb clase auxiliar de base de datos
SQLiteActivity .java
Ver código
StuDBHelper.java
Ver código
main.xml
Ver código
Representación de la operación del programa:
Utilice el comando adb para ver la base de datos:
1. Ingrese adb shell enter en la ventana de línea de comando e ingresará el Comando de Linux OK. Ahora puedes usar los comandos de Linux.
2. Presione Enter para mostrar todo, incluido un dato.
3. Ingrese los datos del CD, luego ingrese ls, ingrese los datos del CD. Después de ingresar ls, verá muchos com............, que están activados. el sistema. El nombre del paquete de la aplicación. Busque el nombre del paquete del programa de base de datos e ingréselo.
4. Después de ingresar, verá una base de datos. Cuando ingresa a su base de datos y muestra todo, encontrará el nombre de su base de datos. Aquí se utiliza "stu_db".
5. Ingrese SQLite3Stu_DB para ingresar a su base de datos, y luego ".schema" verá todas las tablas y declaraciones de creación de tablas de la aplicación.
6. Luego, puede utilizar declaraciones SQL estándar para ver la base de datos recién generada y agregar, eliminar y consultar datos.
Nota: ls, cd y otros comandos son comandos básicos de Linux. Los estudiantes que no lo sepan pueden consultar esta información.
Los siguientes son varios comandos adb comúnmente utilizados en SQLite:
Examen
. La base de datos muestra información de la base de datos;
. tablas muestra el nombre de la tabla;
. Al crear una tabla de datos, el comando de esquema se puede utilizar para ver comandos SQL;
.
esquema nombre_tabla Ver el comando SQL al crear la tabla nombre_tabla;
Insertar registro
Insertar valor nombre_tabla (campo 1, campo 2, campo 3...);
Consulta
seleccione * de la tabla _ nombre para ver todos los registros en la tabla nombre_tabla;
seleccione * de la tabla _ nombre donde campo 1 = 'xxxxx'; condiciones especificadas Registro;
Eliminar
Eliminar nombre de tabla; eliminar tabla;
Eliminar nombre_índice eliminar índice;
-consultar, insertar, Eliminar etc , y recuerda no omitir sentencias que operen la base de datos -
# sqlite3 stu_db
sqlite3 stu_db
SQLite versión 3.6.22
Ingrese ".help" para obtener instrucciones
Ingrese una declaración SQL que termine en ";"
sqlite>. Un esquema de un plan o teoría
. (Plan o teoría) esquema
Crear tabla android_metadata (texto local);
Crear tabla stu_table (id int, sname varchar (20), sage int, ssex varchar (10)) );-& gt;Tabla creada
sqlite & gtselect * de stu_table
select* de stu_table
1 |Xiao Ming| Hombre
sqlite & gt
Insertar datos
sqlite & gt insertar en valor stu_table (2, 'Little Red', 20, 'Female'); /p>
Recuerde insertar datos que correspondan a los atributos de la tabla.
Insertar en stu_table valor (2, '小红', 20, 'female');
sqlite & gtselect * from stu_table
select * de stu_table
1 |Xiao Ming| 21 |Hombre
2 |Xiao Hong| 20 |Mujer-& gt;Datos insertados
sqlite & gt
Cuando haces clic en el botón para modificar los datos
sqlite & gtselect * from stu_table
select * from stu_table
1 |Xiao Ming| 23 |Hombre->La edad se cambia a 23 años.
2 |小红| 20 |Mujer
sqlite & gt
Cuando haces clic en el botón eliminar datos.
sqlite & gtselect * de stu _ table
select * de stu _ table
1 |Xiao Ming 23 |Los datos de male id=2 tienen sido eliminado.
En resumen, podemos agregar, eliminar, modificar y consultar la base de datos en el código, o podemos completarla bajo la línea de comando adb. Sin embargo, dado que SQLite no tiene un cliente y no puede ver directamente la información de cambios de la base de datos, la línea de comando adb se usa a menudo para ver la información de cambios de la base de datos.
Las bases de datos y tablas utilizadas anteriormente fueron creadas en código. A continuación se explica cómo utilizar una base de datos externa existente:
Primero utilice la herramienta de administración SQLite. El funcionamiento específico de sqliteadmin es muy simple y no se presentará en detalle aquí. Sin embargo, hay una cosa que vale la pena señalar.
Al crear una base de datos con sqliteadmin, la ruta para guardar la base de datos no puede ser una ruta china. Aparecerá el siguiente mensaje de error en la ruta china:
Creé la base de datos StuDB en sqliteadmin:
<. p>Haga clic en el nombre del paquete /Importar la base de datos creada a los datos/datos/programa de DDMS.