Android_SQlite的使用方法

sqlite

步驟:

1. create a database

2. open the database

3. create a table

4. create an insert interface for data sets

5. create a query interface for data sets

6. close the database


下面以添加書籍爲例:

book.java

<span style="font-size:24px;">package com.raise.entity;

import java.util.Date;


public class Book {

	private int id;
	private String title;
	private double price;
	private Date pubDate;
	
	
	
	public Book() {
		super();
	}
	public Book(int id, String title, double price, Date pubDate) {
		super();
		this.id = id;
		this.title = title;
		this.price = price;
		this.pubDate = pubDate;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getTitle() {
		return title;
	}
	public void setTitle(String title) {
		this.title = title;
	}
	public double getPrice() {
		return price;
	}
	public void setPrice(double price) {
		if (price < 0) {
			throw new IllegalArgumentException("price must be positive");
		}
		this.price = price;
	}
	public Date getPubDate() {
		return pubDate;
	}
	public void setPubDate(Date pubDate) {
		Date today = new Date();
		if (pubDate.after(today)) {
			throw new IllegalArgumentException("pub date cannot be greater than today");
		}
		this.pubDate = pubDate;
	}
	
	
}
</span>

BooksDbHelper.java   //存放數據庫相關的常量

<span style="font-size:24px;">package com.raise.database;

import com.raise.entity.BooksDbConstants;

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

import static com.raise.entity.BooksDbConstants.*;

public class BooksDbHelper extends SQLiteOpenHelper{

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

	public BooksDbHelper(Context context, String name) {
		this(context, name, null, BooksDbConstants.DATABASE_VERSION);
		// TODO Auto-generated constructor stub
	}
	@Override
	public void onCreate(SQLiteDatabase db) {
		// TODO Auto-generated method stub
		Log.d(LOG_TAG, "create all the tables");
		String sql = "create table "+TABLE_NAME
				+"("+BOOK_ID+" integer primary key,"
				+BOOK_TITLE+" text,"
				+BOOK_PRICE+" real,"
				+BOOK_PUBDATE+" integer"
				+")";
		
		try {
			db.execSQL(sql);
		} catch (Exception e) {
			// TODO: handle exception
			Log.d(LOG_TAG, "create table exception:"+e.getMessage());
		}
	}

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

}
</span>

BooksDbHelper.java

<span style="font-size:24px;">package com.raise.database;

import com.raise.entity.BooksDbConstants;

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

import static com.raise.entity.BooksDbConstants.*;

public class BooksDbHelper extends SQLiteOpenHelper{

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

	public BooksDbHelper(Context context, String name) {
		this(context, name, null, BooksDbConstants.DATABASE_VERSION);
		// TODO Auto-generated constructor stub
	}
	@Override
	public void onCreate(SQLiteDatabase db) {
		// TODO Auto-generated method stub
		Log.d(LOG_TAG, "create all the tables");
		String sql = "create table "+TABLE_NAME
				+"("+BOOK_ID+" integer primary key,"
				+BOOK_TITLE+" text,"
				+BOOK_PRICE+" real,"
				+BOOK_PUBDATE+" integer"
				+")";
		
		try {
			db.execSQL(sql);
		} catch (Exception e) {
			// TODO: handle exception
			Log.d(LOG_TAG, "create table exception:"+e.getMessage());
		}
	}

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

}
</span>

MainActivity.java

<span style="font-size:24px;">package com.raise.sqlite_books;

import java.util.Date;

import com.raise.database.BooksDbHelper;
import com.raise.entity.BooksDbConstants;

import android.app.Activity;
import android.app.ActionBar;
import android.app.Fragment;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.CursorJoiner;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.os.Build;
import static com.raise.entity.BooksDbConstants.*;

public class MainActivity extends Activity {

	Button cteatebt;
	Button insertbt;
	Button getdatabt;
	Button updatabt;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		//創建表按鈕
		cteatebt = (Button) findViewById(R.id.cteateButton);
		cteatebt.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub

				BooksDbHelper dbHelper = new BooksDbHelper(MainActivity.this, BooksDbConstants.DATABASE_NAME);
				dbHelper.getReadableDatabase();
			}
		});
		//插入一條數據按鈕
		insertbt = (Button) findViewById(R.id.insert);
		insertbt.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				Log.d(BooksDbConstants.LOG_TAG,"------insert");
				BooksDbHelper dbHelper = new BooksDbHelper(MainActivity.this, BooksDbConstants.DATABASE_NAME);
				SQLiteDatabase db = dbHelper.getWritableDatabase();
				
				ContentValues newbookValues = new ContentValues();
				newbookValues.put(BooksDbConstants.BOOK_ID,"1");
				newbookValues.put(BooksDbConstants.BOOK_TITLE,"Android指南");
				newbookValues.put(BooksDbConstants.BOOK_PRICE,56.5);
				newbookValues.put(BooksDbConstants.BOOK_PUBDATE,new Date().getTime());
				
				try {
					db.insert(BooksDbConstants.TABLE_NAME, null, newbookValues);
					Log.d(BooksDbConstants.LOG_TAG,"insert success");
				} catch (Exception e) {
					// TODO: handle exception
					Log.e(BooksDbConstants.LOG_TAG,e.getMessage());
				}
				
			}
		});
		//獲取數據按鈕
		getdatabt = (Button) findViewById(R.id.getdata);
		getdatabt.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub

				BooksDbHelper dbHelper = new BooksDbHelper(MainActivity.this, BooksDbConstants.DATABASE_NAME);
				SQLiteDatabase db = dbHelper.getReadableDatabase();
				Cursor cursor = db.query(BooksDbConstants.TABLE_NAME, new String[]{BOOK_ID,BOOK_TITLE,BOOK_PRICE,BOOK_PUBDATE}, BOOK_ID+"=?", new String[]{1+""}, null, null, null);
				
				while(cursor.moveToNext()){
					String title = cursor.getString(cursor.getColumnIndex(BOOK_TITLE));
					Log.d(LOG_TAG,"查找到的title:---->"+title);
					String price = cursor.getString(cursor.getColumnIndex(BOOK_PRICE));
					Log.d(LOG_TAG,"查找到的title:---->"+price);
				}
			}
		});
		
		//更新按鈕
		updatabt = (Button) findViewById(R.id.updata);
		updatabt.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub

				BooksDbHelper dbHelper = new BooksDbHelper(MainActivity.this, BooksDbConstants.DATABASE_NAME);
				SQLiteDatabase db = dbHelper.getWritableDatabase();
				ContentValues newbookValues = new ContentValues();
				
				newbookValues.put(BOOK_PRICE, 99.9);
				db.update(TABLE_NAME, newbookValues, BOOK_ID+"=?", new String[]{1+""});
				Log.d(LOG_TAG,"updata success");
			}
		});
	}
	

}
</span>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章