//Minha Dúvida nessa questão é se o código DDL deve ficar no DAO ou no SQL Helper
public class AlunoDao {
private static final String DATABASE = "CadastroCaelum";
private static final int VERSAO = 1;
private SqlHelper DaoSQLHelper;
public AlunoDao(Context context) {
this.DaoSQLHelper = new SqlHelper(context, DATABASE, null, VERSAO);
this.DaoSQLHelper.setDdlCreateString( "CREATE TABLE Aluno (id INTEGER PRIMARY KEY, nome TEXT UNIQUE NOT NULL, "
+ "telefone TEXT, endereco TEXT, site TEXT, nota REAL, foto TEXT);");
this.DaoSQLHelper.setDdlUpgradeString("DROP TABLE IF EXISTS Aluno;");
}
public void insere(Aluno aluno){
ContentValues values = toValues(aluno);
this.DaoSQLHelper.getWritableDatabase().insert("Aluno", null, values);
this.DaoSQLHelper.close();
}
private ContentValues toValues(Aluno aluno) {
ContentValues values = new ContentValues();
values.put("nome", aluno.getNome());
values.put("nota", aluno.getNota());
values.put("telefone", aluno.getTelefone());
values.put("endereco", aluno.getEndereco());
values.put("site", aluno.getSite());
values.put("nota", aluno.getNota());
return values;
}
//Criei essa classe para ser um atributo do DAO
public class SqlHelper extends SQLiteOpenHelper {
private String ddlCreateString;
private String ddlUpgradeString;
public SqlHelper(Context context, String name, CursorFactory factory,
int version) {
super(context, name, factory, version);
// TODO Auto-generated constructor stub
}
public void setDdlCreateString(String ddlCreateString) {
this.ddlCreateString = ddlCreateString;
}
public void setDdlUpgradeString(String ddlUpgradeString) {
this.ddlUpgradeString = ddlUpgradeString;
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(ddlCreateString);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL(ddlUpgradeString);
this.onCreate(db);
}
}