DB_helper extends SQLiteOpenHelper

本文介绍了一个用于Android应用的SQLite数据库帮助类实现。该类通过继承SQLiteOpenHelper来创建和升级数据库,包括创建学生信息表的方法。

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

package com.ouling.ex_db;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DB_helper extends SQLiteOpenHelper {
	public final static int VERSION = 1;// 版本号
	public final static String TABLE_NAME = "student_info";// 表名
	public static final String DATABASE_NAME = "OuLing.db";// 数据库名

	public DB_helper(Context context) {
		super(context, DATABASE_NAME, null, VERSION);
	}

	
	@Override
	// 在数据库第一次生成的时候会调用这个方法,一般我们在这个方法里边生成数据库表;
	public void onCreate(SQLiteDatabase db) {
		String str_sql = "CREATE TABLE " + TABLE_NAME
				+ "(id INTEGER PRIMARY KEY AUTOINCREMENT,name VARCHAR,number VARCHAR);";
		// CREATE TABLE 创建一张表 然后后面是我们的表名
		// 然后表的列,第一个是id 方便操作数据,int类型
		// PRIMARY KEY 是指主键 这是一个int型,用于唯一的标识一行;
		// AUTOINCREMENT 表示数据库会为每条记录的key加一,确保记录的唯一性;
		// ----------注意:这里str_sql是sql语句,类似dos命令,要注意空格!
		db.execSQL(str_sql);
		// execSQL()方法是执行一句sql语句
	}

	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
		// 一般默认情况下,当我们插入 数据库就立即更新
		// 当数据库需要升级的时候,Android 系统会主动的调用这个方法。
		// 一般我们在这个方法里边删除数据表,并建立新的数据表,
		// 当然是否还需要做其他的操作,完全取决于游戏需求。
		System.out.println("ouling db onUpgrade");
	}

}

package com.example.myapplication; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.util.Log; import java.util.ArrayList; import java.util.List; public class QuestionDAO extends SQLiteOpenHelper { private static final String DATABASE_NAME = "question.db"; private static final int DATABASE_VERSION = 1; private static final String TABLE_NAME = "questions"; private static final String COLUMN_ID = "id"; private static final String COLUMN_TYPE = "type"; private static final String COLUMN_TITLE = "title"; private static final String COLUMN_OPTION_A = "optionA"; private static final String COLUMN_OPTION_B = "optionB"; private static final String COLUMN_OPTION_C = "optionC"; private static final String COLUMN_OPTION_D = "optionD"; private static final String COLUMN_ANSWER = "answer"; private static final String COLUMN_EXPLANATION = "explanation"; public QuestionDAO(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { String createTableQuery = "CREATE TABLE " + TABLE_NAME + " (" + COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + COLUMN_TYPE + " TEXT, " + COLUMN_TITLE + " TEXT, " + COLUMN_OPTION_A + " TEXT, " + COLUMN_OPTION_B + " TEXT, " + COLUMN_OPTION_C + " TEXT, " + COLUMN_OPTION_D + " TEXT, " + COLUMN_ANSWER + " TEXT, " + COLUMN_EXPLANATION + " TEXT)"; try { db.execSQL(createTableQuery); Log.d("QuestionDAO", "Table created successfully"); } catch (Exception e) { Log.e("QuestionDAO", "Error creating table: " + e.getMessage()); } } @Override
05-29
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值