Android访问SQLite

SQLite一个微型的关系型数据库,虽然小巧,但是其具有关系型数据库的很多特征。这个例子简单介绍数据库的创建、插入、更新、查询以及关闭的操作。

package com.example.sample3_3;

import android.os.Bundle;
import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.view.Menu;
import android.view.View;
import android.widget.Button;

public class MainActivity extends Activity {

	private Button btnCreate;
	private Button btnInsert;
	private Button btnUpdate;
	private Button btnQuery;
	private Button btnShutDown;
	SQLiteDatabase db;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		btnCreate = (Button)findViewById(R.id.ButtonCreate);
		btnInsert = (Button)findViewById(R.id.ButtonInsert);
		btnUpdate = (Button)findViewById(R.id.ButtonUpdate);
		btnQuery = (Button)findViewById(R.id.ButtonQuery);
		btnShutDown = (Button)findViewById(R.id.ButtonShutDown);
		
		btnCreate.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				db = openOrCreateDatabase("test.db",MainActivity.MODE_PRIVATE, null);
				db.execSQL("DROP TABLE IF EXISTS person");
				db.execSQL("CREATE TABLE person(_id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR, age SMALLINT)");
			}
		});
		
		btnInsert.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				ContentValues cv = new ContentValues();
				cv.put("name", "xuxianghu");
				cv.put("age", 23);
				db.insert("person", null, cv);
			}
		});
		
		btnUpdate.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				ContentValues cv = new ContentValues();
				cv.put("age", 25);
				int r = db.update("person", cv, "name = ?", new String[] {"xuxianghu"});
				System.out.println("Row update: " + r);
			}
		});
		
		btnQuery.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				Cursor c = db.rawQuery("SELECT * FROM person", null);
				while(c.moveToNext())
				{
					int _id = c.getInt(c.getColumnIndex("_id"));
					String name = c.getString(c.getColumnIndex("name"));
					int age = c.getInt(c.getColumnIndex("age"));
					System.out.println("_id: " + _id + ", name: " + name + ", age: " + age);
				}
				c.close();
				//db.close();
			}
		});
		
		btnShutDown.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				if(db.isOpen())
				{
					db.close();
				}
			}
		});
	}

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
}

  

posted on 2012-08-13 23:23  ShunHoo  阅读(149)  评论(0)    收藏  举报

导航