基于Android系统的电子书阅读器的设计与实现 下载本文

4.3.2 建表语句

1)创建: 1、创建书的表:

create table IF NOT EXISTS book(bid integer primary key autoincrement,bpath varchar(255) not null); 2、创建书签的表:

create table IF NOT EXISTS bookmark(bmid integer primary key autoincrement, bpath varchar(50) not null,bmname varchar(50) not null,bmoffset integer not null,bmsavetime varchar(20) not null); 3、创建用户管理的表:

create table IF NOT EXISTS user(userid integer primary key autoincrement, username varchar(20) not null,password varchar(20) not null, telephone varchar(20) not null);

4、创建最近阅读的表

create table IF NOT EXISTS nearlyread(bookid integer primary key autoincrement, bookname varchar(50) not null,bookreadtime varchar(20) not null); 5、创建下载管理的表

create table IF NOT EXISTS down(downid integer primary key autoincrement, downuser varchar(20) not null,downbook varchar(20) not null, downtime varchar(20) not null);

2)SQlite3数据库使用方法:

选择:select from bookmark where bmid=1; 插入:insert (bookmark,null,values); 删除:delete from bookmark where bmid=3 ;

查找:query(table, columns, selection, selectionArgs, groupBy, having, orderBy)

4.3.3 数据表分析

本数据库用的是一个轻量级嵌入型数据库sqlite3 ,即创建了一个数据库reader.db,在数据库中创建了几张数据表。

在建设网站系统或者软件之前,我们必须对系统所用到的数据进行大致的分类和具体的结构设计,既要做到清晰明了,又要能适应系统各项功能的调用,而

不至于产生结构上的逻辑混乱,保证关键数据在意外情况下不会被破坏,可以说数

Book表(用来存放书籍,如表4-1):

字段名称 bid

数据类型

条件约束

integer

varchar(255)

primary key not null

bpath

表 4-1 书籍数据表

Bookmark表(管理书签,如表4-2):

字段名称

数据类型

条件约束

Bmid Bpath Bmname bmoffset msavetime

Integer varchar(50) varchar(50) Integer varchar(20)

表 4-2 书签数据表

primary key not null not null not null not null

User表(用户数据,如表4-3):

字段名称

数据类型

条件约束

Userid username password telephone

Integer varchar(50) varchar(50) varchar(20)

表 4-3 用户数据表

primary key not null not null not null

Nearlyread表(最近阅读,如表4-4):

字段名称

数据类型

条件约束

Bookid bookname bookreadtime

Integer varchar(50) varchar(20)

表 4-4 最近阅读数据表

primary key not null not null

Down表(下载,如表4-5)::

字段名称

数据类型

条件约束

Downid Downuser downtime

Integer varchar(50) varchar(20)

表 4-5 下载数据表

primary key not null not null

5.4.1 获取sd卡上的txt文本

由于一个Android模拟器或者是一个手机客户终端上只会配置一个sdcard,所以一步移动设备上有各种各样的应用App,而且各种App都可能会由数据或者文件存储到移动设备的sdcard上,故而有各式各样的文件类型是该款软件不需要的。也是用户选择本款软件时所不需要的信息文件,于是通过构造一个过滤式的方法让软件只接受来自sdcard上的TXT格式的文本文件。该方法是先通过判断是否存储路径是sdcard,通过getRecordFiles()方法过滤掉其他无用文件,将剩余的TXT文件放置集合AirrayList中,然后通过Android的空间Listview将其目录结构文件给显示出来。代码如下: private void getRecordFiles() {

recordFiles= new ArrayList(); if (isSdcard) {

File files[] = txtDir.listFiles(); if (files != null) {

for (int i = 0; i < files.length; i++) {

if (files[i].getName().indexOf(\) >= 0) {

/* 只取.txt文件 */ String file =

files[i].getName().substring(files[i].getName().indexOf(\));

}

}

if (file.toLowerCase().equals(\))

recordFiles.add(files[i].getName());

}

} }