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

本文介绍如何在Android的SQLite数据库中创建和管理多张表。通过创建一个继承SQLiteOpenHelper的类,实现onCreate和onUpgrade方法来创建和升级数据库。示例展示了如何建立readers和books两张表,并提供了增删改查的操作方法。
摘要由CSDN通过智能技术生成

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

首先是如何建立数据库和表:

建立一个类继承SQLiteOpenHelper,即:

public class ReaderOpenHelper extends SQLiteOpenHelper

然后添加构造方法:

publicReaderOpenHelper(Context context) {

super(context, "people.db", null, 1);

}

people.db是数据库名字,1是数据库版本。

然后在该类实现以下两个方法:

48304ba5e6f9fe08f3fa1abda7d326ab.png

@Override

public voidonCreate(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)");

}

48304ba5e6f9fe08f3fa1abda7d326ab.png

db.execSQL的作用是执行SQL语句,create table readers是创建一个叫readers的表,括号里就是各个字段名和值类型。

这里创建了两张表。另一张叫books

继续实现:

48304ba5e6f9fe08f3fa1abda7d326ab.png

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, intnewVersion) {

//TODO Auto-generated method stub

db.execSQL("drop if table exists readers");

db.execSQL("drop if table exists books");

onCreate(db);

}

48304ba5e6f9fe08f3fa1abda7d326ab.png

执行Sql语句"drop if table exists 表名"

这样你的sqlite数据库和两张表就创建完成了。

接下来再建一个数据库manager类,如:

public class ReaderManager

添加一个构造方法

publicReaderManager(Context conetxt) {

this.context =context;

readerOpenHelper = newReaderOpenHelper(conetxt);

}

然后添加表的操作方法:

48304ba5e6f9fe08f3fa1abda7d326ab.png

packagecom.zhou.db;

importjava.util.ArrayList;

importjava.util.List;

importcom.zhou.utils.Books;

importcom.zhou.utils.Reader;

importandroid.content.ContentValues;

importandroid.content.Context;

importandroid.database.Cursor;

importandroid.database.sqlite.SQLiteDatabase;

importandroid.util.Log;

public classReaderManager {

ReaderOpenHelper readerOpenHelper;

Context context;

publicReaderManager(Context conetxt) {

this.context =context;

readerOpenHelper = newReaderOpenHelper(conetxt);

}

//增加读者

public voidaddSQL(Reader reader) {

SQLiteDatabase db = null;

try{

db =readerOpenHelper.getWritableDatabase();

ContentValues values = newContentValues();

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 voidbookAddSQL(Books book) {

SQLiteDatabase db = null;

try{

db =readerOpenHelper.getWritableDatabase();

ContentValues values = newContentValues();

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 ListselectSQL() {

List list = new ArrayList();

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 = newReader();

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();

}

returnlist;

}

//图书查询

public ListbookSelectSQL() {

List list = new ArrayList();

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 = newBooks();

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();

}

returnlist;

}

//读者删除

public void deleteSQL(final longid) {

SQLiteDatabase db = null;

try{

db =readerOpenHelper.getWritableDatabase();

db.delete("readers", "renumber=" + id, null);

} catch(Exception e) {

} finally{

db.close();

}

}

//读者更新

public void updateData(intid, String name, String sex, String age,

String phoneNumber, intpassword) {

SQLiteDatabase db = null;

try{

db =readerOpenHelper.getWritableDatabase();

ContentValues values = newContentValues();

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();

//

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值