android中sqlite数据库的基本使用和添加多张表

来源:互联网 发布:autocad软件正版价格 编辑:程序博客网 时间:2024/05/04 14:39

看了很多关于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;    // }}
0 0
原创粉丝点击