package com.example.database;
import java.util.ArrayList;
import java.util.List;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Handler;
import android.os.Message;
import com.example.domain.Duration;
/**
* 课时信息
*
* @author Administrator
*
*/
public class DurationDb extends BaseDbAdapter {
public DurationDb(Context context) {
super(context);
}
/**
* 又有网络情况下备份数据
*
* @param lists
*/
public void AddDataOriginal(List<Duration> lists) {
SQLiteDatabase sqLiteDatabase = getSqLiteDatabase();
for (Duration duration : lists) {
Cursor cusor = sqLiteDatabase.rawQuery(
"select 1 from duration_tb where id=?", new String[] { ""
+ duration.getId() });
if (cusor.moveToNext()) {
cusor.close();
break;
} else {
sqLiteDatabase
.execSQL(
"insert into duration_tb(id,curriculum_id,name,url,timespan,briefIntroduction,useFlag)values(?,?,?,?,?,?,?)",
new String[] { duration.getId() + "",
duration.getCurriculum_id() + "",
duration.getName(), duration.getUrl(),
duration.getTimeSpan() + "",
duration.getBriefIntroduction(),
duration.getUseFlag() + "" });
}
}
}
/**
* 无网络情况下读取数据
*
* @param handle
*/
public void queryDataOriginal(Handler handle, String curriculumid) {
List<Duration> lists = new ArrayList<Duration>();
SQLiteDatabase sqLiteDatabase = getSqLiteDatabase();
Cursor cursor = sqLiteDatabase.rawQuery(
"select * from duration_tb where curriculum_id=? order by id",
new String[] { curriculumid });
while (cursor.moveToNext()) {
Integer id = cursor.getInt(cursor.getColumnIndex("id"));
Integer curriculum_id = cursor.getInt(cursor
.getColumnIndex("curriculum_id"));
String name = cursor.getString(cursor.getColumnIndex("name"));
String url = cursor.getString(cursor.getColumnIndex("url"));
Long timeSpan = cursor.getLong(cursor.getColumnIndex("timeSpan"));
Integer useFlag = cursor.getInt(cursor.getColumnIndex("useFlag"));
String briefIntroduction = cursor.getString(cursor
.getColumnIndex("briefIntroduction"));
Duration duration = new Duration(id, curriculum_id, name, url,
timeSpan, useFlag, briefIntroduction);
lists.add(duration);
}
Message msg = handle.obtainMessage();
msg.obj = lists;
msg.what = 1;
handle.sendMessage(msg);
}
/**
* 根据服务器的课时ID获取课时信息
*
* @param index
* @return
*/
public Duration getDurationInfo(String index) {
SQLiteDatabase sqLiteDatabase = getSqLiteDatabase();
Cursor cursor = sqLiteDatabase.rawQuery(
"select * from duration_tb where id=?", new String[] { index });
Duration duration = null;
if (cursor.moveToNext()) {
Integer id = cursor.getInt(cursor.getColumnIndex("id"));
Integer curriculum_id = cursor.getInt(cursor
.getColumnIndex("curriculum_id"));
String name = cursor.getString(cursor.getColumnIndex("name"));
String url = cursor.getString(cursor.getColumnIndex("url"));
Long timeSpan = cursor.getLong(cursor.getColumnIndex("timeSpan"));
Integer useFlag = cursor.getInt(cursor.getColumnIndex("useFlag"));
String briefIntroduction = cursor.getString(cursor
.getColumnIndex("briefIntroduction"));
duration = new Duration(id, curriculum_id, name, url, timeSpan,
useFlag, briefIntroduction);
}
return duration;
}
public List<Duration> queryScanUrl(String... args) {
List<Duration> lists = new ArrayList<Duration>();
SQLiteDatabase sqLiteDatabase = getSqLiteDatabase();
StringBuilder sb=new StringBuilder();
sb.append("select * from duration_tb where url in(");
for(int i=1;i<=args.length;i++)
{
if(i!=args.length)
{
sb.append("?,");
}else{
sb.append("?");
}
}
sb.append(")");
Cursor cursor = sqLiteDatabase.rawQuery(sb.toString(), args);
while (cursor.moveToNext()) {
Integer id = cursor.getInt(cursor.getColumnIndex("id"));
Integer curriculum_id = cursor.getInt(cursor
.getColumnIndex("curriculum_id"));
String name = cursor.getString(cursor.getColumnIndex("name"));
String url = cursor.getString(cursor.getColumnIndex("url"));
Long timeSpan = cursor.getLong(cursor.getColumnIndex("timeSpan"));
Integer useFlag = cursor.getInt(cursor.getColumnIndex("useFlag"));
String briefIntroduction = cursor.getString(cursor
.getColumnIndex("briefIntroduction"));
Duration duration = new Duration(id, curriculum_id, name, url,
timeSpan, useFlag, briefIntroduction);
lists.add(duration);
}
return lists;
}
}