当前位置:数据库 > SQLite >>

Android:Sqlitedatabase学习小结

  今天刚刚学习完Sqlite数据库的基础知识,随即把学到的东西记录下来,以便随后查阅,以下是自己对Sqlite数据库的小结:
1.Sqlite简介
       Sqlite是一款轻型的数据库,它包含在一个相对小的C库中,它的设计目标是嵌入式的,由于它占用资源非常少,可能只需要几百K的内存就可以了,并且支持Windows/Linux/Unix等等主流的操作系统,同时可以和很多种程序语言相结合,比如:C#/Java/php等,所以在嵌入式设备易做图别受欢迎,这一点也正好符合android的开发要求,所以在Android开发中经常要用到该数据库。
2.Sqlite内部结构
       在内部,Sqlite有以下几个组件组成:SQL编译器、内核、后端以及附件。Sqlite通过利用虚拟机和虚拟数据库引擎,是调试、修改和扩展Sqlite的内核变得更加方便,所有SQL语句被编译成易读的、可以在Sqlite虚拟机中执行的程序集。其结构如下图:
                                                                                                    
                                                                                                                                    Sqlite内部结构图
 3.android中Sqlite的使用方法
        在Android中要想使用Sqlite数据库,首先应该创建一个类继承SQLiteOpenHelper类,我们把这个类命名为DatabaseHelper,它作为一个访问Sqlite的助手类,提供了两方面的功能:
        第一    getReadableDatabase()/getWritableDatabase()可以获得SQLiteDatabase对象,通过该对象可以对数据库进行操作;
        第二    提供OnCreate()和onUpgrade()两个回调函数,允许我们在创建和升级数据库时,进行自己的操作;
实例代码如下:
[java]
public class DatabaseHelper extends SQLiteOpenHelper { 
     
    private static final int VERSION = 1; 
    //在SQLiteOepnHelper的子类当中,必须有该构造函数 
    public DatabaseHelper(Context context, String name, CursorFactory factory, 
            int version) { 
        //必须通过super调用父类当中的构造函数 
        super(context, name, factory, version); 
        // TODO Auto-generated constructor stub 
    } 
    public DatabaseHelper(Context context,String name){ 
        this(context,name,VERSION); 
    } 
    public DatabaseHelper(Context context,String name,int version){ 
        this(context, name,null,version); 
    } 
 
    //该函数是在第一次创建数据库的时候执行,实际上是在第一次得到SQLiteDatabse对象的时候,才会调用这个方法 
    @Override 
    public void onCreate(SQLiteDatabase db) { 
        // TODO Auto-generated method stub 
        System.out.println("create a Database"); 
        //execSQL函数用于执行SQL语句 
        db.execSQL("create table user(id int,name varchar(20))"); 
    } 
 
    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
        // TODO Auto-generated method stub 
        System.out.println("update a Database"); 
    } 

       注:在继承SQLiteOpenHelper类时,必须要有public DatabaseHelper(Context context, String name, CursorFactory factory,int version) 这个构造方法。
       在定义好DatabaseHelper这个助手类后,就可以使用这个类创建Sqlite数据库,并对数据库进行操作了,下面通过一个定义好的Activity进行说明,代码如下:
[java]
public class SQLiteActivity extends Activity { 
    /** Called when the activity is first created. */ 
    private Button createButton; 
    private Button insertButton; 
    private Button updateButton; 
    private Button updateRecordButton; 
    private Button queryButton; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.main); 
        createButton = (Button)findViewById(R.id.createDatabase); 
        updateButton = (Button)findViewById(R.id.updateDatabase); 
        insertButton = (Button)findViewById(R.id.insert); 
        updateRecordButton = (Button)findViewById(R.id.update); 
        queryButton = (Button)findViewById(R.id.query); 
        createButton.setOnClickListener(new CreateListener()); 
        updateButton.setOnClickListener(new UpdateListener()); 
        insertButton.setOnClickListener(new InsertListener()); 
        updateRecordButton.setOnClickListener(new UpdateRecordListener()); 
        queryButton.setOnClickListener(new QueryListener()); 
    } 
    class CreateListener implements OnClickListener{ 
        @Override 
        public void onClick(View v) { 
            //创建一个DatabaseHelper对象 
            DatabaseHelper dbHelper = new DatabaseHelper(SQLiteActivity.this,"test_mars_db"); 
       
补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,