Android SQLite Database Tutorial


表名:

列(字段):




联系人实体类:构造方法,setters 、getters方法

File:   Contact.java

 

package com.example.sqlitetest;

public class Contact {
	
	int _id;
	String _name;
	String _phone_number;
	
	//空的构造方法
	public Contact() {
		
	}
	
	//构造方法
	public Contact(int id, String name, String phone_number) {
		this._id = id;
		this._name = name;
		this._phone_number = phone_number;
	}
	
	//构造方法
	public Contact(String name, String phone_number) {
		this._name = name;
		this._phone_number = phone_number;
	}

	public int getID() {
		return this._id;
	}

	public void setID(int id) {
		this._id = id;
	}

	public String getName() {
		return this._name;
	}

	public void setName(String name) {
		this._name = name;
	}

	public String getPhoneNumber() {
		return this._phone_number;
	}

	public void setPhoneNumber(String phone_number) {
		this._phone_number = phone_number;
	}
	
	
}

 




数据库的创建,表的创建,增删改查操作:

DatabaseHandler.java 

 

package com.example.sqlitetest;

import java.util.ArrayList;
import java.util.List;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;

public class DatabaseHandler extends SQLiteOpenHelper {

	//Database Version 数据版本
	private static final int DATABASE_VERSION = 1;
	
	//Database Name 数据库名
	private static final String DATABASE_NAME = "contactsManager";

	//Contacts table name 表名
	private static final String TABLE_CONTACTS = "contacts";

	//Contacts Table Columns names 字段名
	private static final String KEY_ID = "id";
	private static final String KEY_NAME = "name";
	private static final String KEY_PH_NUM = "phone_number";
	
	public DatabaseHandler(Context context) {
		super(context, DATABASE_NAME, null, DATABASE_VERSION);
	}

	// Creating Tables 创建表: CREATE TABLE table_name (column_name column_type);
	@Override
	public void onCreate(SQLiteDatabase db) {
		String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_CONTACTS + "("
                + KEY_ID + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT,"
                + KEY_PH_NUM + " TEXT" + ")";		
		db.execSQL(CREATE_CONTACTS_TABLE);
	}

	// Upgrading database
	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
		// Drop older table if existed 如果表存在,则删除
		db.execSQL("DROP TABLE IF EXISTS " + TABLE_CONTACTS);
		
		// Create tables again。删除完表后,要再次创建表
		onCreate(db);
	}	
	
	
	/*
	 * CRUD操作。增删改查操作
	 */
	
	//Adding new contact 增加
    void addContact(Contact contact) {
        SQLiteDatabase db = this.getWritableDatabase();
 
        ContentValues values = new ContentValues();
        values.put(KEY_NAME, contact.getName()); // Contact Name
        values.put(KEY_PH_NUM, contact.getPhoneNumber()); // Contact Phone
 
        // Inserting Row
        db.insert(TABLE_CONTACTS, null, values);
        db.close(); // Closing database connection
    }
 
    // Getting single contact 获取单条记录
    Contact getContact(int id) {
        SQLiteDatabase db = this.getReadableDatabase();
 
        Cursor cursor = db.query(TABLE_CONTACTS, new String[] { KEY_ID,
                KEY_NAME, KEY_PH_NUM }, KEY_ID + "=?",
                new String[] { String.valueOf(id) }, null, null, null, null);
        if (cursor != null)
            cursor.moveToFirst();
 
        Contact contact = new Contact(Integer.parseInt(cursor.getString(0)),
                cursor.getString(1), cursor.getString(2));
        
        return contact;
    }
     
    // Getting All Contacts 获取所有的联系人信息
    public List<Contact> getAllContacts() {
        List<Contact> contactList = new ArrayList<Contact>();
        // Select All Query 查询:SELECT * FROM tableName WHERE criteria
        String selectQuery = "SELECT  * FROM " + TABLE_CONTACTS;
 
        SQLiteDatabase db = this.getWritableDatabase();
        Cursor cursor = db.rawQuery(selectQuery, null);
 
        // looping through all rows and adding to list
        if (cursor.moveToFirst()) {
            do {
                Contact contact = new Contact();
                contact.setID(Integer.parseInt(cursor.getString(0)));
                contact.setName(cursor.getString(1));
                contact.setPhoneNumber(cursor.getString(2));
                // Adding contact to list
                contactList.add(contact);
            } while (cursor.moveToNext());
        }
 
        return contactList;
    }
 
    // Updating single contact
    public int updateContact(Contact contact) {
        SQLiteDatabase db = this.getWritableDatabase();
 
        ContentValues values = new ContentValues();
        values.put(KEY_NAME, contact.getName());
        values.put(KEY_PH_NUM, contact.getPhoneNumber());
 
        // updating row
        return db.update(TABLE_CONTACTS, values, KEY_ID + " = ?",
                new String[] { String.valueOf(contact.getID()) });
    }
 
    // Deleting single contact
    public void deleteContact(Contact contact) {
        SQLiteDatabase db = this.getWritableDatabase();
        db.delete(TABLE_CONTACTS, KEY_ID + " = ?",
                new String[] { String.valueOf(contact.getID()) });
        db.close();
    }
 
 
    // Getting contacts Count
    public int getContactsCount() {
        String countQuery = "SELECT  * FROM " + TABLE_CONTACTS;
        SQLiteDatabase db = this.getReadableDatabase();
        Cursor cursor = db.rawQuery(countQuery, null);
        cursor.close();
 
        // return count
        return cursor.getCount();
    }
 
	
}


 

 


Activity:

 

package com.example.sqlitetest;

import java.util.List;

import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;

public class SQLiteActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sqlite);
         
        DatabaseHandler db = new DatabaseHandler(this);
         
        /**
         * CRUD Operations 增删改查
         * */
        // Inserting Contacts
        Log.d("Insert: ", "Inserting .."); 
        db.addContact(new Contact("yixiaohan", "9111111111"));        
        db.addContact(new Contact("jiangge", "9122222222"));
        db.addContact(new Contact("xiaokai", "9533333333"));
        db.addContact(new Contact("xiaoweiwei", "9544444444"));
         
        // Reading all contacts
        Log.d("Reading: ", "Reading all contacts.."); 
        List<Contact> contacts = db.getAllContacts();       
         
        for (Contact cn : contacts) {
            String log = "Id: "+cn.getID()+" ,Name: " + cn.getName() + " ,Phone: " + cn.getPhoneNumber();
        Log.d("Name: ", log);// Writing Contacts to log
    }
    }

}


 


LogCat:


 

posted @ 2013-09-17 23:59  pangbangb  阅读(...)  评论(...编辑  收藏