android Sqlite数据库的操作

来源:互联网 发布:mac更改软件安装路径 编辑:程序博客网 时间:2024/04/30 08:01

首先必须继承自:SQLiteOpenHelper,实现其onCreate,onUpgrade方法

构造方法:

public DatabaseHelper(Context context, String name, CursorFactory factory, int version) 
第一个参数:Context类型,上下文。 
第二个参数:String类型,数据库名称 
第三个参数:CursorFactory类型 
第四个参数:int,数据库版本(>0) 

DbHelper 继承自:SQLiteOpenHelper。。。。创建表:sqtb

package com.android.lp;


import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;


public class DbHelper extends SQLiteOpenHelper{


public DbHelper(Context context, String name, CursorFactory factory,
int version) {
super(context, name, factory, version);
// TODO Auto-generated constructor stub
}

//创建一个表sqtb,仅两个字段id,name
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
Log.v("dbhelperlog", "dbhelperlog");
db.execSQL("create table if not exists sqtb("
+"id int," 
+"name vachar)");
}


@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub

}
}

操作数据的类:

package com.android.lp;


import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.widget.TextView;


public class TestSqliteActivity extends Activity {
    /** Called when the activity is first created. */
private DbHelper dbHelper;
private TextView textVText;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //DbHelper(context, name, factory, version)
        textVText= (TextView) findViewById(R.id.textview);
        dbHelper = new DbHelper(this, "sqlite.db", null, 1);//此处是必须大于0,艹  12-22 19:10:22.759: E/AndroidRuntime(672): Caused by: java.lang.IllegalArgumentException: Version must be >= 1, was 0


        this.addData(dbHelper);
        String rs = this.getData(dbHelper);
        textVText.setText("id\t"+"name\n"+rs);
        
    }
    public void addData(DbHelper dbHelper){
    SQLiteDatabase sqDb = dbHelper.getWritableDatabase();
    ContentValues cv = new ContentValues();
    cv.put("id", 28);
    cv.put("name", "lp2");
    sqDb.insert("sqtb", "id", cv);
    }
    public String getData(DbHelper dbHelper){
    String rs = null;

//得到一个可写的db
    SQLiteDatabase sqDb = dbHelper.getWritableDatabase();
    Cursor c = sqDb.query("sqtb", null, null, null, null, null, null);
    int idindex = c.getColumnIndex("id");
    int nameindex = c.getColumnIndex("name");
    for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {
rs = rs + c.getString(idindex)+"\t";
rs = rs + c.getString(nameindex)+"\n";
}
    return rs;
   
    }
}

main。xml中定义一个Textview用来显示数据

    <TextView
        android:id="@+id/textview"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />


运行,显示结果:




原创粉丝点击