如何查询数据
不需要一个单独的服务器进程或操作的系统(无服务器的)。
SQLite 不需要配置,这意味着不需要安装或管理。
一个完整的 SQLite 数据库是存储在一个单一的跨平台的磁盘文件。
SQLite 是非常小的,是轻量级的,完全配置时小于 400KiB,省略可选功能配置时小于250KiB。
SQLite 是自给自足的,这意味着不需要任何外部的依赖。
SQLite 事务是完全兼容 ACID 的,允许从多个进程或线程安全访问。
SQLite 支持 SQL92(SQL2)标准的大多数查询语言的功能。
SQLite 使用 ANSI-C 编写的,并提供了简单和易于使用的 API。
SQLite 可在 UNIX(Linux, Mac OS-X, Android, iOS)和 Windows(Win32, WinCE, WinRT)中运行。
SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其他数据库一样,您不需要在系统中配置。
就像其他数据库,SQLite 引擎不是一个独立的进程,可以按应用程序需求进行静态或动态连接。SQLite 直接访问其存储文件。
先自定义一个类继承自SQLiteOpenHelper
创建一个构造方法
重写两个创建数据库的方法onCreate()和onUpgrade(),分别是创建和更新数据库。
public class DBOpenHelper extends SQLiteOpenHelper {
public DBOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
CREATE TABLE database_name.table_name(
column1 datatype PRIMARY KEY(one or more columns),
column2 datatype,
column3 datatype,
.....
columnN datatype,
);
private void addStudent() {
MyDBhelper dBhelper=new MyDBhelper(this,"student_db",null,1);
SQLiteDatabase sqLiteDatabase=dBhelper.getWritableDatabase();
ContentValues contentValues=new ContentValues();
contentValues.put("name",student_name.getText().toString());
contentValues.put("age",student_age.getText().toString());
sqLiteDatabase.insert("student",null,contentValues);
}
private void delStudent() {
dBhelper=new MyDBhelper(this,"student_db",null,1);
sqLiteDatabase=dBhelper.getWritableDatabase();
String name=student_name.getText().toString();
String age=student_age.getText().toString();
sqLiteDatabase.delete("student","name=?",new String[]{name});
}
private void modifyStudent() {
dBhelper = new MyDBhelper(this, "student_db", null, 1);
sqLiteDatabase = dBhelper.getWritableDatabase();
ContentValues contentValues = new ContentValues();
String name = student_name.getText().toString();
String age = student_age.getText().toString();
contentValues.put("name", "bbb");
sqLiteDatabase.update("student", contentValues, "name=?", new String[]{name});
}
public void listStudent() {
studentList.clear();
Cursor cursor = sqLiteDatabase.query("student", null, null, null, null, null, null);
cursor.moveToFirst();
do {
String name = cursor.getString(cursor.getColumnIndex("name"));
int age = cursor.getInt(cursor.getColumnIndex("age"));
int id = cursor.getInt(cursor.getColumnIndex("id"));
Log.e(TAG, "listStudent: " + id + "-" + name + "-" + age);
studentList.add(new Student(id, name, age));
} while (cursor.moveToNext());
Student_Adapater adapater = new Student_Adapater(studentList, this);
student_listview.setAdapter(adapater);
}