SQLite

本文介绍了一个使用SQLite数据库的应用实例,包括定义数据库结构、创建数据库帮助类及基本的CRUD操作。通过具体的代码示例展示了如何在Android环境中进行学生信息的存储与检索。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

可以定一个接口,用来存放数据库的名称以及各个字段名:

public interface Constants extends BaseColumns {

public static final String TABLE_NAME="student";

public static final String SID="sid";

public static final String NAME="name";

public static final String SEX="sex";

}

接下来创建一个帮助类,用来表示数据库本身,它负责管理数据库的创建和版本,必须提供一个构造函数并重写两个方法:

//静态导入

import static com.shutao.SQLiteTest.Constants.NAME;

import static com.shutao.SQLiteTest.Constants.SEX;

import static com.shutao.SQLiteTest.Constants.SID;

import static com.shutao.SQLiteTest.Constants.TABLE_NAME;

import android.content.Context;

import android.database.sqlite.SQLiteDatabase;

import android.database.sqlite.SQLiteOpenHelper;

public class StudentData extends SQLiteOpenHelper {

private static final String DATABASE_NAME = "testSQLite";

private static final int DATABASE_VERSION = 1;

public StudentData(Context context) {

super(context, DATABASE_NAME, null, DATABASE_VERSION);

}

@Override

public void onCreate(SQLiteDatabase db) {

db.execSQL("CREATE TABLE " + TABLE_NAME + "(" + SID

+ " VARCHAR PRIMARY KEY," + NAME + " VARCHAR NOT NULL," + SEX

+ " VARCHAR NOT NULL);");

}

@Override

//当数据库检测到你在引用一个旧数据库时(根据版号判断),它将调用onUpgrate()方法。

public void onUpgrade(SQLiteDatabase db, int arg1, int arg2) {

db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);

onCreate(db);

}

}

接下来编写数据库的操作:

public class SQLite extends Activity {

/** Called when the activity is first created. */

private StudentData sd;

private String columns[] = { SID, NAME, SEX };

private String orderBy = SID + " DESC";

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

try {

sd = new StudentData(this);

// 程序一旦运行一次以后变存在了数据库中了,再次运行由于主键的冲突会使程序出现错误

/*

 * addStudent("07141218", "林树涛", "M"); addStudent("07141201", "曹育省",

 * "F"); addStudent("07141205", "范小桂", "M"); addStudent("07141217",

 * "林坚松", "M");

 */

Cursor cursor = getStudents();

showStudents(cursor);

} finally {

sd.close();

}

}

private void addStudent(String sid, String name, String sex) {

// 获得StudetData数据库的一个读/写句柄

SQLiteDatabase db = sd.getWritableDatabase();

ContentValues values = new ContentValues();

values.put(SID, sid);

values.put(NAME, name);

values.put(SEX, sex);

db.insertOrThrow(TABLE_NAME, null, values);

}

private Cursor getStudents() {

SQLiteDatabase db = sd.getReadableDatabase();

Cursor cursor = db.query(TABLE_NAME, columns, null, null, null, null,

orderBy);

this.startManagingCursor(cursor);

return cursor;

}

private void showStudents(Cursor cursor) {

StringBuilder results = new StringBuilder("All students:/n");

while (cursor.moveToNext()) {

String sid = cursor.getString(0);

String name = cursor.getString(1);

String sex = cursor.getString(2);

results.append(sid + "  ");

results.append(name + "  ");

results.append(sex + "/n");

}

// 显示

TextView view = (TextView) this.findViewById(R.id.result_text);

view.setText(results);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值