android中sqlite資料庫的基本使用和添加多張表

來源:互聯網
上載者:User

標籤:

看了很多關於android使用sqlite資料庫的文章,很多都是介紹了資料庫的建立和表的建立,而表通常都是只建立一張,而實際情況我們用到的表可能不止一張,那這種情況下我們又該怎麼辦呢,好了,下面我教大家如何在sqlite資料庫中建立多張表。

首先是如何建立資料庫和表:

建立一個類繼承SQLiteOpenHelper,即:

public class ReaderOpenHelper extends SQLiteOpenHelper

然後添加構造方法:

public ReaderOpenHelper(Context context) {                super(context, "people.db", null, 1);            }

people.db是資料庫名字,1是資料庫版本。

然後在該類實現以下兩個方法:

@Override    public void onCreate(SQLiteDatabase db) {        // TODO Auto-generated method stub     db.execSQL("create table readers(renumber integer primary key,rename text,retype text,reage text,rephone text,usename integer,password integer,createtime text)");     db.execSQL("create table books(booknumber integer primary key,bookname text,booktype text,bookeditor text,intime text,incounts integer)");    }

db.execSQL的作用是執行SQL語句,create table readers是建立一個叫readers的表,括弧裡就是各個欄位名和實值型別。

這裡建立了兩張表。另一張叫books

繼續實現:

@Override    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {        // TODO Auto-generated method stub        db.execSQL("drop if table exists readers");        db.execSQL("drop if table exists  books");        onCreate(db);    }

執行Sql語句"drop if table exists 表名"

這樣你的sqlite資料庫和兩張表就建立完成了。

接下來再建一個資料庫manager類,如:

public class ReaderManager 

添加一個構造方法

public ReaderManager(Context conetxt) {        this.context = context;        readerOpenHelper = new ReaderOpenHelper(conetxt);    }

然後添加表的操作方法:

package com.zhou.db;import java.util.ArrayList;import java.util.List;import com.zhou.utils.Books;import com.zhou.utils.Reader;import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.util.Log;public class ReaderManager {    ReaderOpenHelper readerOpenHelper;    Context context;    public ReaderManager(Context conetxt) {        this.context = context;        readerOpenHelper = new ReaderOpenHelper(conetxt);    }    // 增加讀者    public void addSQL(Reader reader) {        SQLiteDatabase db = null;        try {            db = readerOpenHelper.getWritableDatabase();            ContentValues values = new ContentValues();            values.put("renumber", reader.getReNumber());            values.put("rename", reader.getName());            values.put("retype", reader.getSex());            values.put("reage", reader.getAge());            values.put("rephone", reader.getPhoneNumber());            values.put("createtime", reader.getCreateTime());            values.put("usename", reader.getUseName());            values.put("password", reader.getPassword());            db.insert("readers", null, values);        } catch (Exception e) {            // TODO: handle exception        } finally {            db.close();        }    }    // 增加圖書    public void bookAddSQL(Books book) {        SQLiteDatabase db = null;        try {            db = readerOpenHelper.getWritableDatabase();            ContentValues values = new ContentValues();            values.put("booknumber", book.getBookNumber());            values.put("bookname", book.getBookName());            values.put("booktype", book.getBookType());            values.put("bookeditor", book.getBookEditer());            values.put("intime", book.getInTime());            values.put("incounts", book.getCount());            db.insert("books", null, values);        } catch (Exception e) {            // TODO: handle exception        } finally {            db.close();        }    }    // 讀者查詢    public List<Reader> selectSQL() {        List<Reader> list = new ArrayList<Reader>();        SQLiteDatabase db = null;        // 擷取一個游標對象        Cursor cursor = null;        try {            db = readerOpenHelper.getReadableDatabase();            cursor = db.query("readers", null, null, null, null, null, null);            Reader reader = null;            while (cursor.moveToNext()) {                reader = new Reader();                reader.setReNumber(cursor.getInt(cursor                        .getColumnIndex("renumber")));                reader.setName(cursor.getString(cursor.getColumnIndex("rename")));                reader.setSex(cursor.getString(cursor.getColumnIndex("retype")));                reader.setAge(cursor.getString(cursor.getColumnIndex("reage")));                reader.setPhoneNumber(cursor.getString(cursor                        .getColumnIndex("rephone")));                reader.setCreateTime(cursor.getString(cursor                        .getColumnIndex("createtime")));                reader.setUseName(cursor.getInt(cursor                        .getColumnIndex("usename")));                reader.setPassword(cursor.getInt(cursor                        .getColumnIndex("password")));                list.add(reader);            }        } catch (Exception e) {            // TODO: handle exception        } finally {            cursor.close();            db.close();        }        return list;    }    // 圖書查詢    public List<Books> bookSelectSQL() {        List<Books> list = new ArrayList<Books>();        SQLiteDatabase db = null;        // 擷取一個游標對象        Cursor cursor = null;        try {            db = readerOpenHelper.getReadableDatabase();            cursor = db.query("books", null, null, null, null, null, null);            Books book = null;            while (cursor.moveToNext()) {                book = new Books();                book.setBookNumber(cursor.getInt(cursor                        .getColumnIndex("booknumber")));                book.setBookName(cursor.getString(cursor                        .getColumnIndex("bookname")));                book.setBookType(cursor.getString(cursor                        .getColumnIndex("booktype")));                book.setBookEditer(cursor.getString(cursor                        .getColumnIndex("bookeditor")));                book.setInTime(cursor.getString(cursor.getColumnIndex("intime")));                book.setCount(cursor.getInt(cursor.getColumnIndex("incounts")));                Log.d("TAGG", cursor.getString(cursor.getColumnIndex("intime")));                list.add(book);            }        } catch (Exception e) {            // TODO: handle exception        } finally {            cursor.close();            db.close();        }        return list;    }    // 讀者刪除    public void deleteSQL(final long id) {        SQLiteDatabase db = null;        try {            db = readerOpenHelper.getWritableDatabase();            db.delete("readers", "renumber=" + id, null);        } catch (Exception e) {        } finally {            db.close();        }    }    // 讀者更新    public void updateData(int id, String name, String sex, String age,            String phoneNumber, int password) {        SQLiteDatabase db = null;        try {            db = readerOpenHelper.getWritableDatabase();            ContentValues values = new ContentValues();            values.put("rename", name);            values.put("retype", sex);            values.put("reage", age);            values.put("rephone", phoneNumber);            values.put("password", password);            db.update("readers", values, "renumber=" + id, null);        } catch (Exception e) {            // TODO: handle exception        } finally {            db.close();        }    }    // public long getCount() {    //    // Cursor cursor = null;    // long count = 0;    // SQLiteDatabase db = null;    // try {    // db = readerOpenHelper.getWritableDatabase();    // cursor = db.query("readers", null, null, null, null, null, null);    //    // if (null != cursor) {    // count = cursor.getCount();    // cursor.close();    // }    // } catch (Exception e) {    // } finally {    // db.close();    // }    // return count;    // }}

添加多張表的sqlite資料基本上就是這樣實現的,謝謝!

android中sqlite資料庫的基本使用和添加多張表

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.