创建数据库帮助类:
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DBHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "mydatabase.db";
private static final int DATABASE_VERSION = 1;
// 表名和列名
public static final String TABLE_NAME = "users";
public static final String COLUMN_ID = "_id";
public static final String COLUMN_USERNAME = "username";
public static final String COLUMN_AGE = "age";
// 创建表的 SQL 语句
private static final String TABLE_CREATE =
"CREATE TABLE " + TABLE_NAME + " (" +
COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
COLUMN_USERNAME + " TEXT, " +
COLUMN_AGE + " INTEGER);";
public DBHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
// 创建表
db.execSQL(TABLE_CREATE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// 升级数据库时的操作
// 可以简单地删除表并调用 onCreate,或执行其他升级操作
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
onCreate(db);
}
}
在这个例子中,我们创建了一个 DBHelper 类,它继承自 SQLiteOpenHelper。这个类负责创建和管理数据库,定义了数据库的名称、版本、表名和列名,并提供了创建表的 SQL 语句。在 onCreate 方法中,我们执行创建表的 SQL 语句,而在 onUpgrade 方法中,我们可以定义数据库升级时的操作。
使用数据库:
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
public class DBManager {
private DBHelper dbHelper;
private SQLiteDatabase database;
public DBManager(Context context) {
dbHelper = new DBHelper(context);
}
public void open() {
database = dbHelper.getWritableDatabase();
}
public void close() {
dbHelper.close();
}
public long insertUser(String username, int age) {
ContentValues values = new ContentValues();
values.put(DBHelper.COLUMN_USERNAME, username);
values.put(DBHelper.COLUMN_AGE, age);
return database.insert(DBHelper.TABLE_NAME, null, values);
}
public Cursor getAllUsers() {
String[] columns = {DBHelper.COLUMN_ID, DBHelper.COLUMN_USERNAME, DBHelper.COLUMN_AGE};
return database.query(DBHelper.TABLE_NAME, columns, null, null, null, null, null);
}
}
在这个例子中,我们创建了一个 DBManager 类,它包含了对数据库进行操作的一些基本方法。open 方法用于获取可写数据库,close 方法用于关闭数据库连接。insertUser 方法用于插入一条用户记录,getAllUsers 方法用于获取所有用户的数据。
在 Activity 中使用:
import android.database.Cursor;
import android.os.Bundle;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
private DBManager dbManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dbManager = new DBManager(this);
dbManager.open();
// 插入用户数据
dbManager.insertUser("Alice", 25);
dbManager.insertUser("Bob", 30);
// 获取所有用户数据
Cursor cursor = dbManager.getAllUsers();
displayUserData(cursor);
// 关闭数据库连接
dbManager.close();
}
private void displayUserData(Cursor cursor) {
StringBuilder stringBuilder = new StringBuilder();
while (cursor.moveToNext()) {
int id = cursor.getInt(cursor.getColumnIndex(DBHelper.COLUMN_ID));
String username = cursor.getString(cursor.getColumnIndex(DBHelper.COLUMN_USERNAME));
int age = cursor.getInt(cursor.getColumnIndex(DBHelper.COLUMN_AGE));
stringBuilder.append("ID: ").append(id).append(", ")
.append("Username: ").append(username).append(", ")
.append("Age: ").append(age).append("\n");
}
TextView textView = findViewById(R.id.textView);
textView.setText(stringBuilder.toString());
}
}
在这个例子中,我们在 onCreate 方法中创建了一个 DBManager 对象,并通过 open 方法打开数据库连接。然后,我们插入了两个用户的数据,并通过 getAllUsers 方法获取所有用户的数据。最后,通过 displayUserData 方法将数据显示在一个 TextView 中。
请注意,这只是一个基础示例,实际应用中可能需要更多的数据库操作和异常处理。
转载请注明出处:http://www.zyzy.cn/article/detail/15189/Android