第七天敏捷冲刺

1.昨天已经完成的工作

  • 完善了configActivity类的功能
  • 修复存入数据时,计划开始时间不对的问题,并修复了与其相关的一些bug
  • 完善了读取所有plan与保存plan的方法

2.今天计划完成的工作

  • 删除过时的数据保存类:spUtils和IOUtils,重新实现功能
  • 增加moudulelist表

3.工作中遇到的困难

  • SQLutils类中有了太多的方法,因此在写某些方法时的sql语句出现了问题。同时因为planlist表和mouldlist表
    比较相似但又有细微差别,所以在某些方法的某些地方未能及时发现问题,很难改正。

4.代码签入

第七天敏捷冲刺
)

5.最新模块的代码

public class MyDBOpenHelper extends SQLiteOpenHelper {
    public MyDBOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory,
                          int version) {
        super(context, "my.db", null, 1);
    }

    @Override
    //数据库第一次创建时被调用
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("CREATE TABLE planlist(planid long primary key," +
                "name varchar(20)," +
                "description varchar(30)," +
                "worktime long," +
                "breaktime long," +
                "begintime long," +
                "finishtime long," +
                "mouldname varchar(20))");

        db.execSQL("create table mouldlist(" +
                "name varchar(20) primary key," +
                "breakclkpath varchar(30)," +
                "workclkpath varchar(30))");
    }

    //软件版本号发生改变时调用
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    }
}
private static final SQLiteDatabase db = myDBHelper.getWritableDatabase();
private static final String debug = "SQLUtils中的日志信息";

//判断planlist表中当前有多少个元素
public static int getCountOfPlanInDB() {
    Cursor cursor = db.rawQuery("SELECT * FROM planlist", null);
    return cursor.getCount();
}

//判断p是否已经存在于数据库中planlist表中
private static boolean isInPlanList(Plan p) {
    //选出和p相同id的元组放入结果集中
    Cursor cursor = db.rawQuery("SELECT * FROM planlist WHERE planid = ?",
            new String[]{String.valueOf(p.planid)});
    //若结果集为空,则说明没有重复,反之则代表此plan已经在数据库中的planlist中
    if ((cursor.moveToFirst())) {
        Log.d(debug, "id为" + p.planid + "的plan已经在database中了");
        return true;
    }
    Log.d(debug, "id为" + p.planid + "的plan不在database中");
    return false;
}

//保存计划到TABLE planlist
public static void savePlan(Plan p) {
    //如果计划p不在数据库中的planlist中,则需要插入这一条plan的信息
    if (!isInPlanList(p)) {
        Log.d(debug, "id为" + p.planid + "的plan不在planlist中,可以插入这一条plan的信息");
        db.execSQL("INSERT INTO planlist(planid,name,description,worktime,breaktime,begintime,finishtime,mouldname)" +
                "values(?,?,?,?,?,?,?,?)", new Object[]{p.planid, p.name, p.description, p.workTime, p.breakTime, p.beginTime, p.finishTime, p.mould.name});
    }

}

//更新TABLE planlist中p的信息
public static void updatePlan(Plan p) {
    //如果计划p已经在planlist表中了,才能够进行更新数据,否则无法更新
    if (isInPlanList(p)) {
        Log.d(debug, "id为" + p.planid + "的plan已在planlist表中,满足条件,可以更新");
        db.execSQL("UPDATE planList SET name = ?,description = ?,worktime=?,breaktime=?,begintime=?,finishtime=?,mouldname=? WHERE planid = ?",
                new Object[]{p.name, p.description, p.workTime, p.breakTime, p.beginTime, p.finishTime, p.mould.name, p.planid});
    } else
        Log.d(debug, "id为" + p.planid + "的plan不在planlist表中,不满足条件,不可以更新");
}

6.每人每日总结

陈泽同:项目很简单
谢国浩:多多学习
韦秋风:由于之前规划不当,因此Sputills只能*全部放弃,所以核心开发人员在此基础上写的IOUTILS全部木大。
希望核心开发人员心脏没事(阿门)

上一篇:Android网络请求框架AsyncHttpClient实例详解(配合JSON解析调用接口)


下一篇:Super U Plan for Mac(项目进度管理软件)