这一节我将总结一下android中的另一种数据存储——SQLite 的相关知识点


SQLite数据库是android系统自带的,主要用到的类包括SQLiteOpenHelper和SQLiteDatabase。


1、SQLiteOpenHelper:创建数据库和数据库版本管理的辅助类,该类是一个抽象类,所以我们一般都有一个子类SQLiteOpenHelper,需要继承实现的方法主要有onCreate()、onUpgrade()、getWritableDatabase()等。getWritableDatabase()方法返回的是SQLiteDatabase对象实例,如果数据库尚未创建,则会自动调用onCreate()方法来创建数据库,所以一些建表和数据初始化操作,应该放在onCreate()方法里 。


2、SQLiteDatabase:操作SQLite数据库的类,可以进行SQL语句,对数据库进行增、删、改、查的操作,该对象已经对基本的数据库操作进行了封装。可以调用insert()、delete()、executeSQL()等方法,进行实际的数据库操作 ,这个类相当于JDBC中的Connection,也类似Hibernate中的Session,或者Spring中的HibernateTemplate;也可以进行transaction的控制。很多对数据库的操作最终都是通过SQLiteDatabase实例来调用执行的。
注意:数据库对于一个应用时私有的,并且在一个应用当中,数据库的名字也是唯一的。。。


3、Corsor:游标。通过Cursor可以对于从数据库中查询出来的结果集进行随机的读写访问。对于数据库的查询结果,一般是由子类SQLiteCursor返回的。


特别注意:开发的时候一般会对前面两个类做一下包装,比如进行简单的封装,使得SQLiteDatabase的查询方法不是返回原始的Cursor类(Cursor相当于JDBC中的ResultSet),而是返回业务对象等等


实现的代码如下:

SQLiteOpenHelper类的实现:

package com.sql;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteDatabase.CursorFactory;import android.database.sqlite.SQLiteOpenHelper;public class DataBaseHelpler extends SQLiteOpenHelper{private static final int VERSION = 1;public DataBaseHelpler(Context context, String name, CursorFactory factory,int version) {super(context, name, factory, version);// TODO Auto-generated constructor stub}public DataBaseHelpler(Context context,String name){this(context,name,VERSION);}public DataBaseHelpler(Context context, String name,int version){this(context, name, null, version);}@Overridepublic void onCreate(SQLiteDatabase db) {// TODO Auto-generated method stubSystem.out.println("creat database");db.execSQL("create table student(no int,name verchar(20))");}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {// TODO Auto-generated method stubSystem.out.println("upgrade database");}}

SQLite类的实现:

package com.sql;import android.app.Activity;import android.content.ContentValues;import android.database.sqlite.SQLiteDatabase;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class SQLiteActivity extends Activity {    /** Called when the activity is first created. */private Button button_create,               button_upgreate,               button_insert,               button_up,               button_query,               button_delete;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);                button_create = (Button) findViewById(R.id.button1);        button_upgreate = (Button) findViewById(R.id.button2);        button_insert = (Button) findViewById(R.id.button3);        button_up = (Button) findViewById(R.id.button4);        button_query = (Button) findViewById(R.id.button5);        button_delete = (Button) findViewById(R.id.button6);                        //创建数据库        button_create.setOnClickListener(new OnClickListener() {public void onClick(View v) {// TODO Auto-generated method stubDataBaseHelpler dbh = new DataBaseHelpler(SQLiteActivity.this,"tabel_one");SQLiteDatabase sql = dbh.getReadableDatabase();}});                        //更新数据库        button_upgreate.setOnClickListener(new OnClickListener() {public void onClick(View v) {// TODO Auto-generated method stubDataBaseHelpler dbh = new DataBaseHelpler(SQLiteActivity.this,"tabel_one",2);SQLiteDatabase sql = dbh.getReadableDatabase();}});                //向数据库中的表中插入内容        button_insert.setOnClickListener(new OnClickListener() {public void onClick(View v) {// TODO Auto-generated method stubContentValues values = new ContentValues();values.put("no", 123);values.put("name", "zhangsan");DataBaseHelpler dbh = new DataBaseHelpler(SQLiteActivity.this,"tabel_one",2);SQLiteDatabase sql = dbh.getReadableDatabase();sql.insert("tabel_one", null, values);}});              //更新表的内容        button_up.setOnClickListener(new OnClickListener() {public void onClick(View v) {// TODO Auto-generated method stubDataBaseHelpler dbh = new DataBaseHelpler(SQLiteActivity.this,"tabel_one");SQLiteDatabase sql = dbh.getReadableDatabase();ContentValues values = new ContentValues();values.put("name", "wangwu");sql.update("tabel_one", values, "id=?", new String[]{"1"});}});              //查找表的内容        button_query.setOnClickListener(new OnClickListener() {public void onClick(View v) {// TODO Auto-generated method stub}});                       //删除        button_delete.setOnClickListener(new OnClickListener() {public void onClick(View v) {// TODO Auto-generated method stub}});            }}

以上就是SQLite基本的应用。。




更多相关文章

  1. Android获取mac地址方法,6.0以上也可用
  2. Android设置Activity(界面)为全屏显示的两种方法 xml和java程序
  3. Android数据持久化之SQLite数据库用法分析
  4. 巨人的崛起 Android操作系统发展历程
  5. android 玩转ContentProvider之二--实现多个ContentProvider对多张
  6. Android Intent实现页面跳转的方法示例
  7. android SQLite数据库的基本操作

随机推荐

  1. 在测试环境模拟电话的进入和短信的进入
  2. Android壁纸的设置
  3. Android(安卓)之理解 VSYNC 信号
  4. Android 常用开源框架汇总
  5. Android的边缘效应的相关类EdgeEffectCom
  6. Android Studio按钮响应事件(一)
  7. Android SQLite 的介绍和使用(二)
  8. 关于安卓开发中Activity动画切换效果无效
  9. Android的优势在哪里
  10. Android之硬件加速