看了很多关于android使用sqlite数据库的文章,很多都是介绍了数据库的建立和表的建立,而表通常都是只建立一张,而实际情况我们用到的表可能不止一张,那这种情况下我们又该怎么办呢,好了,下面我教大家如何在sqlite数据库中建立多张表。
首先是如何建立数据库和表:
建立一个类继承SQLiteOpenHelper,即:
public class ReaderOpenHelper extends SQLiteOpenHelper
然后添加构造方法:
publicReaderOpenHelper(Context context) {
super(context, "people.db", null, 1);
}
people.db是数据库名字,1是数据库版本。
然后在该类实现以下两个方法:
@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)");
}
db.execSQL的作用是执行SQL语句,create table readers是创建一个叫readers的表,括号里就是各个字段名和值类型。
这里创建了两张表。另一张叫books
继续实现:
@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);
}
执行Sql语句"drop if table exists 表名"
这样你的sqlite数据库和两张表就创建完成了。
接下来再建一个数据库manager类,如:
public class ReaderManager
添加一个构造方法
publicReaderManager(Context conetxt) {
this.context =context;
readerOpenHelper = newReaderOpenHelper(conetxt);
}
然后添加表的操作方法:
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();
//