android官网对于SQLite数据库的create update insert delete select有简单的介绍:http://developer.android.com/intl/zh-cn/training/basics/data-storage/databases.html
1、多表查询&用cursor读取数据
由于android并没有提供多表查询的封装方法,所以必须用原始的sql语句进行rawquary,而不能用官网提供的quary方法。
使用select语句还需要掌握如何用cursor读取每一条数据。
注意点:尽量不要用for语句让cursor从第一条,move到最后第N条(亲测,java求N的时候经常会出错,这样就会导致读取数据崩溃,所以一定要用while语句来做!)可以参考这个链接:http://stackoverflow.com/questions/19974442/android-database-cursorindexoutofboundsexception
sql="select "+Config.KEY_Exercise_SportsName+","+Config.KEY_Exercise_SportsCalorie+" from "+Config.TB_MeasuredExerciseRecord+
" where "+Config.COL_UserName+"='"+account+"'";
cursor=db.rawQuery(sql,null);
if(cursor!=null && cursor.moveToFirst()){
do {
String name= cursor.getString(cursor.getColumnIndex(Config.KEY_Exercise_SportsName));
String strCalorie=cursor.getString(cursor.getColumnIndex(Config.KEY_Exercise_SportsCalorie));
Float calorie=Float.parseFloat(strCalorie);
DataRecordListEntity.getTodayInstance().addToStrSportsList(name);
UserEntity.getInstance().addtoTodayConsumption(calorie);
} while (cursor.moveToNext());
}
2、直接导入SQLite数据库到手机
创建数据库除了直接用android官网提供的代码创建之外,还可以先将空的数据库文件放到raw文件夹下,然后通过代码将这个文件导入到手机某个路径之下,导入数据库的方法参见:http://my.oschina.net/laiwanshan/blog/99982
注意点:
(1)每次通过run as android application运行新的程序的时候,手机里面的database不会自动删除并重新载入空的db,所以如果在raw中的数据库有所修改,需要先删除手机中的db文件,然后再执行importDB。删除文件的操作也很简单,直接用java里面删除某个路径的文件的代码即可。
(2)需要在Manifest清单中获得操作数据库的permission以及对sdcard文件进行读写的permission.
(3)导入数据库的代码段importDB(参见后面的示例代码)必须放在一个activity当中执行,对应到之前给出的方法链接也就是“在程序第一个Activity实例化一个DBManager对象”。
(4)为了调试方便,可以将数据库导入到手机的sdcard的根目录下,这样可以直接用SQLITE EXPERT软件打开这个db文件,查看数据。