首先是创建数据库,这里要用到SQLiteOpenHelper这个类,这是个抽象类,我们需要去继承他,它里面有两个抽象方法需要实现:onCreate()和onUpgrade(),分别是创建和升级数据库用的。
这里将见表语句定义成了字符串,在哦你Create()方法中建表。
- package com.wr.sqlite;
- import android.content.Context;
- import android.database.sqlite.SQLiteDatabase;
- import android.database.sqlite.SQLiteDatabase.CursorFactory;
- import android.database.sqlite.SQLiteOpenHelper;
- import android.widget.Toast;
- public class MyDatebaseHelper extends SQLiteOpenHelper {
- public static final String CREATE_BOOK = "create table Book ("
- + "id integer primary key autoincrement, " + "author text, "
- + "price real, " + "pages integer, " + "name text) ";
- public static final String CREATE_CATEGORY = "create table Category ("
- + "id integer primary key autoincrement, " + "category_name text, "
- + "category_code integer) ";
- private Context mContext;
- public MyDatebaseHelper(Context context, String name,
- CursorFactory factory, int version) {
- super(context, name, factory, version);
- mContext = context;
- // TODO Auto-generated constructor stub
- }
- @Override
- public void onCreate(SQLiteDatabase db) {
- // TODO Auto-generated method stub
- db.execSQL(CREATE_BOOK);
- db.execSQL(CREATE_CATEGORY);
- Toast.makeText(mContext, "Create succeeded", Toast.LENGTH_SHORT).show();
- }
- @Override
- public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
- // TODO Auto-generated method stub
- switch (oldVersion) {
- case 1:
- db.execSQL(CREATE_CATEGORY);
- case 2:
- db.execSQL("alter table Book add column category_id integer");
- }
- }
- }
然后就是对数据库的一系列的操作,首先布局文件activity_main.xml。
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="vertical" >
- <Button
- android:id="@+id/create_database"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="Create database" />
- <Button
- android:id="@+id/add_data"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="Add date" />
- <Button
- android:id="@+id/update_data"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="Update date" />
- <Button
- android:id="@+id/delete_data"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="Delete date" />
- <Button
- android:id="@+id/query_data"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="Query date" />
- <Button
- android:id="@+id/replace_data"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="Replace date" />
- </LinearLayout>
这其中也包含了事物的使用。比较具体。
- package com.wr.sqlite;
- import android.app.Activity;
- import android.content.ContentValues;
- import android.database.Cursor;
- import android.database.sqlite.SQLiteDatabase;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.Menu;
- import android.view.MenuItem;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- public class MainActivity extends Activity {
- private MyDatebaseHelper dbHelper;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- dbHelper = new MyDatebaseHelper(this, "BookStore.db", null, 2);
- Button createDatabase = (Button) findViewById(R.id.create_database);
- createDatabase.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- dbHelper.getWritableDatabase();
- }
- });
- Button addData = (Button) findViewById(R.id.add_data);
- addData.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- SQLiteDatabase db = dbHelper.getWritableDatabase();
- ContentValues values = new ContentValues();
- values.put("name", "The Da Vinci Code");
- values.put("author", "Dan Brown");
- values.put("pages", 454);
- values.put("price", 16.96);
- db.insert("Book", null, values);
- values.clear();
- values.put("name", "The Lost Sysbol");
- values.put("author", "Dan Brown");
- values.put("pages", 510);
- values.put("price", 19.95);
- db.insert("Book", null, values);
- }
- });
- Button updateData = (Button) findViewById(R.id.update_data);
- updateData.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View arg0) {
- // TODO Auto-generated method stub
- SQLiteDatabase db = dbHelper.getWritableDatabase();
- ContentValues values = new ContentValues();
- values.put("price", 10.99);
- db.update("Book", values, "name = ?",
- new String[] { "The Da Vinci Code" });
- }
- });
- Button deleteData = (Button) findViewById(R.id.delete_data);
- deleteData.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View arg0) {
- // TODO Auto-generated method stub
- SQLiteDatabase db = dbHelper.getWritableDatabase();
- db.delete("Book", "pages > ?", new String[] { "500" });
- }
- });
- Button queryData = (Button) findViewById(R.id.query_data);
- queryData.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View arg0) {
- // TODO Auto-generated method stub
- SQLiteDatabase db = dbHelper.getWritableDatabase();
- Cursor cursor = db.query("Book", null, null, null, null, null,
- null);
- if (cursor.moveToFirst()) {
- do {
- String name = cursor.getString(cursor
- .getColumnIndex("name"));
- String author = cursor.getString(cursor
- .getColumnIndex("author"));
- int pages = cursor.getInt(cursor
- .getColumnIndex("pages"));
- double price = cursor.getDouble(cursor
- .getColumnIndex("price"));
- Log.d("MainActivity", "book name is " + name);
- Log.d("MainActivity", "book author is " + author);
- Log.d("MainActivity", "book pages is " + pages);
- Log.d("MainActivity", "book price is " + price);
- } while (cursor.moveToNext());
- }
- cursor.close();
- }
- });
- Button replaceData = (Button) findViewById(R.id.replace_data);
- replaceData.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View arg0) {
- // TODO Auto-generated method stub
- SQLiteDatabase db = dbHelper.getWritableDatabase();
- db.beginTransaction();
- try {
- db.delete("Book", null, null);
- ContentValues values = new ContentValues();
- values.put("name", "Game of Thrones");
- values.put("author", "George Martin");
- values.put("pages", "720");
- values.put("price", 20.85);
- db.insert("Book", null, values);
- db.setTransactionSuccessful();
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- db.endTransaction();
- }
- }
- });
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- // Inflate the menu; this adds items to the action bar if it is present.
- getMenuInflater().inflate(R.menu.main, menu);
- return true;
- }
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- // Handle action bar item clicks here. The action bar will
- // automatically handle clicks on the Home/Up button, so long
- // as you specify a parent activity in AndroidManifest.xml.
- int id = item.getItemId();
- if (id == R.id.action_settings) {
- return true;
- }
- return super.onOptionsItemSelected(item);
- }
- }
Demo下载:http://download.csdn.net/detail/xdwyyan/8077323
来源: http://www.phpxs.com/code/1001899/