加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

SQLite数据库开发—3个类搞定android数据库开发

发布时间:2020-12-12 20:13:33 所属栏目:百科 来源:网络整理
导读:一、几个关键类 1、SQLiteDatabase:android.database.sqlite.SQLiteDatebase:数据库类,用来操作数据库。 2、SQLiteOpenHelper:android.database.sqlite.SQLiteOpenHelper:数据库帮助类,用来创建数据库、及数据库表、获取数据库对象。 3、Cursor:android.da

一、几个关键类

1、SQLiteDatabase:android.database.sqlite.SQLiteDatebase:数据库类,用来操作数据库。

2、SQLiteOpenHelper:android.database.sqlite.SQLiteOpenHelper:数据库帮助类,用来创建数据库、及数据库表、获取数据库对象。

3、Cursor:android.database.Cursor:记录集游标。用来操作记录集。

二、实现

1、通过数据库帮助类创建数据库、表。

//自定义类继承于数据库帮助类
class SqliteHelper extends SQLiteOpenHelper
{  		
    //要创建的表名 
		public static final String TB_NAME="channel";  
		
		//当实例化一个数据库帮助对象时,会调用构造函数,当数据库不存在时,就会创建数据库,然后打开数据库(过程已经被封装起来了)
		public SqliteHelper(Context context,String name,CursorFactory factory,int version) 
		{  
		super(context,name,factory,version);  
		}  
	
		//数据库创建完成后,在调用onCreate函数,创建表  
		@Override  
		public void onCreate(SQLiteDatabase db) 
		{  
			db.execSQL("CREATE TABLE IF NOT EXISTS "+  
			TB_NAME+"("+  
			ID+" integer primary key,"+  
			NAME+" varchar,"+  
			URL+" varchar"+
			")"  
			);  
			Log.e("Database","onCreate");  
		}  
		//检查构造函数的版本号,若传入的版本号高于当前的,就会执行onUpgrade()方法来更新数据库和版本号。 
		@Override  
		public void onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion) {  
			db.execSQL("DROP TABLE IF EXISTS " + TB_NAME);  
			onCreate(db);  
			Log.e("Database","onUpgrade");  
		} 
	}
}

SQLiteOpenHelper 的构造函数,当数据库不存在时,就会创建数据库,然后打开数据库(过程已经被封装起来了),再调用onCreate (SQLiteDatabase db)方法来执行创建表之类的操作。当数据库存在时,SQLiteOpenHelper 就不会调用onCreate (SQLiteDatabase db)方法了,它会检测版本号,若传入的版本号高于当前的,就会执行onUpgrade()方法来更新数据库和版本号

2、获取数据库对象
//实例化数据库帮组类
SqliteHelper dbHelper=new SqliteHelper(context,DB_NAME,null,DB_VERSION);
//获得当前数据库
SQLiteDatabase db= dbHelper.getWritableDatabase();

3、操作数据库表

查询:Cursor cursor = db.query("....");

while(cursor.moveToNext())

{

int per = cursor.getInt(0);//获取第一列的值

String name = cursor.getString(1)//获取第二列的值

}

cursor.close();

db.close();

插入:

ContentValues values = new ContentValues();
values.put(NAME,name);
values.put(URL,url);
//插入新纪录
Long id = db.insert(SqliteHelper.TB_NAME,values);

删除:

db.delete(SqliteHelper.TB_NAME,NAME +"='"+name+"'",null);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读