下面是Cursor對象的常用方法:
c.move(int offset); //以當前位置爲參考,移動到指定行
c.moveToFirst(); //移動到第一行
c.moveToLast(); //移動到最後一行
c.moveToPosition(int position); //移動到指定行
c.moveToPrevious(); //移動到前一行
c.moveToNext(); //移動到下一行
c.isFirst(); //是否指向第一條
c.isLast(); //是否指向最後一條
c.isBeforeFirst(); //是否指向第一條之前
c.isAfterLast(); //是否指向最後一條之後
c.isNull(int columnIndex); //指定列是否爲空(列基數爲0)
c.isClosed(); //遊標是否已關閉
c.getCount(); //總數據項數
c.getPosition(); //返回當前遊標所指向的行數
c.getColumnIndex(String columnName);//返回某列名對應的列索引值
c.getString(int columnIndex); //返回當前行指定列的值
//----------------------------------------------------------------------------------------------------------------------
public class DataDase extends SQLiteOpenHelper {
/*
super(context, "DB.db", null, 1);
上下文 數據庫名稱 一般爲null 數據庫版本
*/
public DataDase(Context context) {
super(context, "DB.db", null, 1);
}
//數據庫第一次被創建時onCreate會被調用
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table TimeAxis(id integer primary key autoincrement,Time char(32),Title char(32))");
db.execSQL("create table Time(id integer primary key autoincrement,Time char(32))");
}
//如果DATABASE_VERSION值被改爲2,系統發現現有數據庫版本不同,即會調用onUpgrade
//可以進行修改操作 db.execSQL("ALTER TABLE person ADD COLUMN other STRING");
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
//--------------------------------對DataDase進行封裝----------------------------------------------------------------------------------------------
增刪改使用 new Object[]{}
db.execSQL("insert into TimeAxis(Time,Title) values(?,?)", new Object[]{Time, Title});
查使用 new String[]{}
Cursor c = db.rawQuery("select * from Time where Time=?", new String[]{Time});
public class DB {
private DataDase Helper;
public DB(Context context) {
Helper = new DataDase(context);
}
public void addTimeAxis(String Time, String Title) {
SQLiteDatabase db = Helper.getWritableDatabase();
db.execSQL("insert into TimeAxis(Time,Title) values(?,?)", new Object[]{Time, Title});
db.close();
}
public void addTime(String Time) {
SQLiteDatabase db = Helper.getWritableDatabase();
db.execSQL("insert into Time(Time) values(?)", new Object[]{Time});
db.close();
}
public void Delete() {
SQLiteDatabase db = Helper.getWritableDatabase();
db.execSQL("drop table TimeAxis");
db.execSQL("drop table Time");
db.close();
}
public void Update() {
}
public List<BeanTimeAxis> QueryTimeAxis(String Time) {
List<BeanTimeAxis> data = new ArrayList<>();
SQLiteDatabase db = Helper.getReadableDatabase();
Cursor c = db.rawQuery("select * from TimeAxis where Time=? order by id desc", new String[]{Time});
while (c.moveToNext()) {
String sTime = c.getString(c.getColumnIndex("Time"));
String sTitle = c.getString(c.getColumnIndex("Title"));
BeanTimeAxis bean = new BeanTimeAxis(sTime, sTitle);
data.add(bean);
}
c.close();
db.close();
return data;
}
public List<String> QueryTime() {
List<String> data = new ArrayList<>();
SQLiteDatabase db = Helper.getReadableDatabase();
Cursor c = db.rawQuery("select * from Time order by id desc", null);
while (c.moveToNext()) {
String sTime = c.getString(c.getColumnIndex("Time"));
data.add(sTime);
}
c.close();
db.close();
return data;
}
public boolean findTime(String Time) {
SQLiteDatabase db = Helper.getReadableDatabase();
Cursor c = db.rawQuery("select * from Time where Time=?", new String[]{Time});
boolean b = c.moveToNext();
c.close();
db.close();
return b;
}
public boolean findTimeAxis(String Time,String Title) {
SQLiteDatabase db = Helper.getReadableDatabase();
Cursor c = db.rawQuery("select * from TimeAxis where Time=? and Title=?", new String[]{Time,Title});
boolean b = c.moveToNext();
c.close();
db.close();
return b;
}
public int TimeAxisSum(String Time) {
SQLiteDatabase db = Helper.getReadableDatabase();
Cursor c = db.rawQuery("select * from TimeAxis where Time=?", new String[]{Time});
int i = c.getCount();
c.close();
db.close();
return i;
}
public int TimeSum() {
SQLiteDatabase db = Helper.getReadableDatabase();
Cursor c = db.rawQuery("select * from Time", null);
int i = c.getCount();
c.close();
db.close();
return i;
}
}