侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

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

2024-05-07 星期二 / 0 评论 / 0 点赞 / 58 阅读 / 7784 字

看了很多关于android使用sqlite数据库的文章,很多都是介绍了数据库的建立和表的建立,而表通常都是只建立一张,而实际情况我们用到的表可能不止一张,那这种情况下我们又该怎么办呢,好了,下面我教大

看了很多关于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数据基本上就是这样实现的,谢谢!

广告 广告

评论区