今天的任务为定义schema,代码如下:
CrimeDbSchema.java:
package com.bignerdranch.android.criminallntent.database.CrimeDbSchema; public class CrimeDbSchema { public static final class CrimeTable{ public static final String NAME="crimes"; public static final class Cols{ public static final String UUID="uuid"; public static final String TITLE="title"; public static final String DATE="date"; public static final String SOLVED="solved"; } } }
CrimeBaseHelper.java:
package com.bignerdranch.android.criminallntent; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import com.bignerdranch.android.criminallntent.database.CrimeDbSchema.CrimeDbSchema; public class CrimeBaseHelper extends SQLiteOpenHelper{ private static final int VERSION=1; private static final String DATABASE_NAME="crimeBase.db"; public CrimeBaseHelper(Context context){ super(context,DATABASE_NAME,null,VERSION); } @Override public void onCreate(SQLiteDatabase db){ db.execSQL("create table "+ CrimeDbSchema.CrimeTable.NAME + "(" + " _id integer primary key autoincrement, " + CrimeDbSchema.CrimeTable.Cols.UUID + ", " + CrimeDbSchema.CrimeTable.Cols.TITLE+ ", " + CrimeDbSchema.CrimeTable.Cols.DATE + ", " + CrimeDbSchema.CrimeTable.Cols.SOLVED + ")"); } @Override public void onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion){ } }
CrimeLab.java:
package com.bignerdranch.android.criminallntent; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import java.util.ArrayList; import java.util.List; import java.util.UUID; public class CrimeLab { private static CrimeLab sCrimeLab; private List<Crime> mCrimes; private Context mContext; private SQLiteDatabase mDatabase; public static CrimeLab get(Context context){ if(sCrimeLab==null){ sCrimeLab=new CrimeLab(context); } return sCrimeLab; } private CrimeLab(Context context){ mContext=context.getApplicationContext(); mDatabase=new CrimeBaseHelper(mContext) .getWritableDatabase(); mCrimes=new ArrayList<>(); } public void addCrime(Crime c){ mCrimes.add(c); } public List<Crime> getCrimes(){ return mCrimes; } public Crime getCrime(UUID id){ for(Crime crime : mCrimes){ if(crime.getId().equals(id)){ return crime; } } return null; } }