安卓学习之路_20140506_SQLite

一、SQLite

要使用SQLite,要创建一个继承自SQLiteOpenHelper的类,实现两个回调方法和一个构造方法,在构造方法中,我们需要传递四个值

(1)、上下文;(2)、数据库名称(.db);(3)null;(4)版本号,整型的数据,不能用0


两个回调方法:

(1)、public void onCreate(SQLiteDatabase db)

这个方法是在数据库被创建后,程序会调用此方法在数据库中创建一张表,用一个字符串记录sql语法,然后用db.execSQL();来执行即可

(2)、public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)这个方法是用来升级数据库的方法,升级原理是删除再重新创建。


数据库的增删查改:

数据库的增删查改在安卓中都可以用sql语句来执行,就是把sql语句存储在一个String类型的变量中,通过     数据库.execSQL(**);来执行;

还有通过安卓中现有的方法来执行:

增删查改具体使用方法用下面视力来说明:

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

public class SQLiteDB extends SQLiteOpenHelper {

	final static String SQLITE_NAME = "test.db";
	final static String TABLE_NAME = "demo";
	final static int VERSION = 1;
	final static String USERNAME = "username";
	final static String PASSWORD = "password";
	final static String ID = "id";

	public SQLiteDB(Context context) {
		super(context, SQLITE_NAME, null, VERSION);
	}

	@Override
	public void onCreate(SQLiteDatabase db) {
		String sql = "CREATE TABLE " + TABLE_NAME + " (" + ID
				+ " INTEGER primary key autoincrement, " + USERNAME + " text, "
				+ PASSWORD + " text);";
		db.execSQL(sql);
	}

	public Cursor select() {
		SQLiteDatabase db = this.getReadableDatabase();
		Cursor cursor = db
				.query(TABLE_NAME, null, null, null, null, null, null);
		return cursor;
	}

	public long insert(String username, String password) {
		SQLiteDatabase db = this.getWritableDatabase();
		ContentValues cv = new ContentValues();
		cv.put(USERNAME, username);
		cv.put(PASSWORD, password);
		long row = db.insert(TABLE_NAME, null, cv);
		return row;
	}

	public void delete(int id) {
		SQLiteDatabase db = getWritableDatabase();
		String where = ID + "= ?";
		String[] whereValue = { Integer.toString(id) };
		db.delete(TABLE_NAME, where, whereValue);
	}
	
	public void update(int id, String username, String password) {
		SQLiteDatabase db = this.getWritableDatabase();
		String where = ID + " = ?";
		String[] whereValue = { Integer.toString(id) };

		ContentValues cv = new ContentValues();
		cv.put(USERNAME, username);
		cv.put(PASSWORD, password);

		// 参数是表名称,参数是更行列ContentValues类型的键值对(Map),参数是更新条件(where字句),参数是更新条件数组
		db.update(TABLE_NAME, cv, where, whereValue);
	}

	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
		String sql = "DROP TABLE IF EXISTS " + TABLE_NAME;
		db.execSQL(sql);
		onCreate(db);
	}

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值