华东交通大学理工学院毕业设计
表2.2
图2.1.1 歌曲列表
图2.1.2 歌曲详细
2.1.2 音乐播放器E-R图
音乐播放器 E-R(实体-联系:entity-relation图)图(图3.1.3)
李发万:基于Andriod的音乐播放器设计与实现
图3.1.3 E-R图
2.2 数据库连接
这里将介绍如何进行Android数据库连接,Android中自带SQLite数据库,这是一
个十分小型的数据库,这样正适合Android这种移动平台使用。
Android数据库存储的位置在data/data/<项目文件夹>/databases/目录下 Android是利用ContentProvider作为内容提供商,SQLiteOpenHelper数据库帮助类来进行对数据库的创建和操作。通过Context.getContentResolver()方法直接对数据库进行操作。程序中数据库类为DBHelper extends SQLiteOpenHelper(继承关系),内容提供类DBProvider extends ContentProvider(继承关系)
2.2.1 创建数据库
Android 提供了标准的数据库创建方式。继承SQLiteOpenHelper ,实现onCreate 和 onUpgrade 两个方法,有个好处就是便于数据库版本的升级,连接数据库的算法如下:
public class DBHelper extends SQLiteOpenHelper {
public DBHelper(Context context) {
super(context,Constant.DATABASENAME, null, Constant.VERSION);
11
华东交通大学理工学院毕业设计
}
@Override
public void onCreate(SQLiteDatabase db) { text)\
}
@Override
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) { }
数据库如果创建不成功则抛出FIleNotFoundException异常
db.execSQL(sql);
db.execSQL(\TB_MUSIC+\db.execSQL(\TB_MUSIC+\db.execSQL(\TB_MUSIC+\db.execSQL(\TB_MUSIC+\db.execSQL(\TB_MUSIC+\
db.execSQL(\TB_MUSIC+\db.execSQL(\into \TB_MUSIC+\values(null,'as long as db.execSQL(\TB_MUSIC+\db.execSQL(\TB_MUSIC+\
db.execSQL(\TB_MUSIC+\String sql=\TB_MUSIC+\
primary key autoincrement,music_name text,music_length text,music_singer
spring','03:36','汪峰')\simply','03:36','黄小琥')\cry','03:36','Guns and Roses')\shoulder','03:46','欧美群星')\
values(null,'Lenka-Trouble Is A Friend','04:56','Lenka')\simple','03:56','陶喆')\
you love me','03:43','后街男孩')\love','04:24','西城男孩')\
values(null,'sunshine','03:33','周杰伦')\world','03:35','王菲')\
李发万:基于Andriod的音乐播放器设计与实现
2.2.2 操作数据库
Android对数据库的操作主要有插入、删除、更新、查询操作,在进行任何操作时都必须指定一个Uri,才能对相应的表进行数据操作。
//数据库删除操作 @Override
public int delete(Uri arg0, String arg1, String[] arg2) { }
@Override//数据库插入操作
public Uri insert(Uri uri, ContentValues values) { }
// 数据库更新操作 @Override
public int update(Uri uri, ContentValues values, String selection,String[] selectionArgs) {
}
13
SQLiteDatabase db = dbOpenHelper.getWritableDatabase(); try {
} catch (Exception ex) {
ex.printStackTrace(); }return 1;
Db.delete(FileColumn.TABLE, arg1, arg2);
SQLiteDatabase db = dbOpenHelper.getWritableDatabase(); long count = 0;
try { count = db.insert(FileColumn.TABLE, null, values); } catch (Exception ex) if (count > 0) return uri; else return null;
{ ex.printStackTrace(); }
SQLiteDatabase db = dbOpenHelper.getWritableDatabase(); int i = 0; try {
i = db.update(FileColumn.TABLE, values, selection, null);return i; } catch (Exception ex) {} return 0;
华东交通大学理工学院毕业设计
2.2.3 数据显示
程序是利用Cursor游标类指向数据表中的某一项,然后进行查询数据,用Log日志显示出来
@Override//数据库查询操作 public
Cursor
query(Uri
uri,
String[]
projection,
String
selection,String[] selectionArgs, String sortOrder) {
SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
// 依次参数为:表名,查询字段,where语句,替换,group by(分组),having(分组条件),order by(排序)
Cursor cur = db.query(FileColumn.TABLE, projection,
selection,selectionArgs, null, null, sortOrder);return cur;}
第三章 Android项目介绍
3.1在我们理解Android是什么?
3.1.1 Android简介
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随