android基础--最基本的SQLite实例

来源:互联网 发布:拦截导弹算法 编辑:程序博客网 时间:2024/06/09 17:08

下面是一个最简单的SQLite使用实例, 界面有5个按钮, 分别对应了SQLite的基本操作. 整个程序分成两个文件MainActivity.java实现主程序逻辑,DatabaseHelper.java定义的DatabaseHelper类继承了SQLiteOpenHelper类.

以下是DatabaseHelper.java:

package com.sqlitedb;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;public class DatabaseHelper extends SQLiteOpenHelper{private static final int Dversion = 1;public DatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory,int version){super(context, name, factory, version);}public DatabaseHelper(Context context, String name, int version){this(context, name, null, version);//调用自身的构造函数}public DatabaseHelper(Context context, String name){this(context, name, Dversion);  //调用自身的构造函数}@Override                //当首次创建数据库时被调用                public void onCreate(SQLiteDatabase db){System.out.println("Create database");db.execSQL("create table user(id int, name varchar(10))");}@Override                //当升级数据库时被调用                public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){System.out.println("Upgrade database");}}


以下是MainActivity.java:

import com.sqlitedb.DatabaseHelper;import android.app.Activity;import android.content.ContentValues;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button; public class MainActivity extends Activity {        private Button button_create,button_upgrade,button_insert;    private Button button_delete,button_update,button_query;    private final String db_name = "my_database";    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_1);        initial();  //初始化界面按钮    }        private void initial(){    button_create = (Button)findViewById(R.id.create);        button_create.setOnClickListener(new listener_create());                button_upgrade = (Button)findViewById(R.id.upgrade);        button_upgrade.setOnClickListener(new listener_upgrade());                button_insert = (Button)findViewById(R.id.insert);        button_insert.setOnClickListener(new listener_insert());                button_delete = (Button)findViewById(R.id.delete);        button_delete.setOnClickListener(new listener_delete());                button_update = (Button)findViewById(R.id.update);        button_update.setOnClickListener(new listener_update());                button_query = (Button)findViewById(R.id.query);        button_query.setOnClickListener(new listener_query());    }        class listener_create implements OnClickListener    {    @Override    public void onClick(View v)    {    DatabaseHelper dbHelper = new DatabaseHelper(MainActivity.this, db_name);        SQLiteDatabase db = dbHelper.getWritableDatabase();        }    }        class listener_upgrade implements OnClickListener    {    @Override    public void onClick(View v)    {    DatabaseHelper dbHelper = new DatabaseHelper(MainActivity.this, db_name, 2);    SQLiteDatabase db = dbHelper.getWritableDatabase();    }    }        class listener_insert implements OnClickListener    {    @Override    public void onClick(View v)    {    DatabaseHelper dbHelper = new DatabaseHelper(MainActivity.this, db_name);    SQLiteDatabase db = dbHelper.getWritableDatabase();    ContentValues values = new ContentValues();                //设置欲插入的列名和值                values.put("id", 1);    values.put("name", "Jet");                //当values参数为空或者里面没有内容的时候,                //我们insert是会失败的(底层数据库不允许插入一个空行),                //为了防止这种情况,我们要在这里指定一个列名,                //如果发现将要插入的行为空行时,                //就会将你指定的这个列名的值设为null,然后再向数据库中插入。                       db.insert("user", null, values);    }    }        class listener_delete implements OnClickListener    {    @Override    public void onClick(View v)    {    DatabaseHelper dbHelper = new DatabaseHelper(MainActivity.this, db_name);    SQLiteDatabase db = dbHelper.getWritableDatabase();                //"?"为通配符, 对应String[]中的各个值                db.delete("user", "id=?", new String[]{"1"});    }    }        class listener_update implements OnClickListener    {    @Override    public void onClick(View v)    {    DatabaseHelper dbHelper = new DatabaseHelper(MainActivity.this, db_name);    SQLiteDatabase db = dbHelper.getWritableDatabase();    ContentValues values = new ContentValues();    values.put("name", "Tom");                //"?"为通配符, 对应String[]中的各个值                db.update("user", values, "id=?", new String[]{"1"});    }    }        class listener_query implements OnClickListener    {    @Override    public void onClick(View v)    {    DatabaseHelper dbHelper = new DatabaseHelper(MainActivity.this, db_name);    SQLiteDatabase db = dbHelper.getWritableDatabase();    Cursor cursor;    cursor = db.query("user", new String[]{"id","name"}, null, null, null, null, null);                //游标一开始会指向第一个元素前的位置, 即-1, 所以要移动到下一个位置, 即第一个元素                cursor.moveToNext();    String name = cursor.getString(cursor.getColumnIndex("name"));    System.out.println(name);    }    }}


原创粉丝点击