Concluindo então:
Meu adapter ficaria assim: pacote x
[color=red]DbAdapter[/color]
package br.me.aqua.banco;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.database.sqlite.SQLiteOpenHelper;
public class DbAdapter {
private static final String DATABASE_NAME = "bancoaqua";
private static final int DATABASE_VERSION = 1;
private static final String DATABASE_TABLE_CLIENTES = "clientes";
private static final String DATABASE_TABLE_CARROS = "carros";
private static final String DATABASE_TABLE_TIPO_CARRO = "tipo_carro";
private static final String DATABASE_TABLE_SERVICOS = "servicos";
private static final String DATABASE_TABLE_HORARIOS = "horarios";
private static final String DATABASE_TABLE_OS = "os";
// CAMPOS DA TABELA CLIENTES
public static final String KEY_ID_CLI = "_id";
public static final String KEY_NOME = "nome";
public static final String KEY_ENDERECO = "endereco";
public static final String KEY_TELEFONE = "telefone";
public static final String KEY_CELULAR = "celular";
public static final String KEY_EMAIL = "email";
// CAMPOS DA TABELA CARROS
public static final String KEY_ID_CARRO = "_id";
public static final String KEY_IDCLIENTE_CARRO = "id_cliente";
public static final String KEY_IDTIPO_CARRO = "id_tipo_carro";
public static final String KEY_MODELO = "car_modelo";
public static final String KEY_PLACA = "car_placa";
// CAMPOS DA TABELA TIPO_CARRO
public static final String KEY_ID_TIP = "_id";
public static final String KEY_TIPDESC = "tip_descricao";
// CAMPOS DA TABELA SERVICOS
public static final String KEY_ID_SER = "_id";
public static final String KEY_IDTIPO_SER = "id_tipo_carro";
public static final String KEY_DESCRICAO_SER = "ser_descricao";
public static final String KEY_VALOR = "ser_valor";
// CAMPOS DA TABELA HORARIOS
public static final String KEY_ID_HOR = "_id";
public static final String KEY_HORARIO = "hor_horario";
// CAMPOS DA TABELA OS
public static final String KEY_ID_OS = "_id";
public static final String KEY_IDCLIENTE_OS = "id_cliente";
public static final String KEY_IDSERVICO_OS = "id_servico";
public static final String KEY_IDHORARIO_OS = "id_horario";
public static final String KEY_DATA = "os_data";
// CRIA A TABELA CLIENTES
private static final String DATABASE_CREATE_CLIENTES = "create table " + DATABASE_TABLE_CLIENTES + " ("
+ KEY_ID_CLI + " integer primary key autoincrement, "
+ KEY_NOME + " text, "
+ KEY_ENDERECO + " text, "
+ KEY_TELEFONE + " text, "
+ KEY_CELULAR + " text, "
+ KEY_EMAIL + " text);";
// CRIA A TABELA CARROS
private static final String DATABASE_CREATE_CARROS = "create table " + DATABASE_TABLE_CARROS + " ("
+ KEY_ID_CARRO + " integer primary key autoincrement, "
+ KEY_IDCLIENTE_CARRO + " integer, "
+ KEY_IDTIPO_CARRO + " integer, "
+ KEY_MODELO + " text, "
+ KEY_PLACA + " text, FOREIGN KEY ( " + KEY_IDCLIENTE_CARRO
+ " ) REFERENCES " + DATABASE_TABLE_CLIENTES + " (" + KEY_ID_CLI
+ " ) ON DELETE RESTRICT ON UPDATE CASCADE , FOREIGN KEY ( "
+ KEY_IDTIPO_CARRO + " ) REFERENCES " + DATABASE_TABLE_TIPO_CARRO + " ("
+ KEY_IDTIPO_CARRO + " ) ON DELETE RESTRICT ON UPDATE CASCADE);";
// CRIA A TABELA TIPO_CARRO
private static final String DATABASE_CREATE_TIPO_CARRO = "create table " + DATABASE_TABLE_TIPO_CARRO + " ("
+ KEY_ID_TIP + " integer primary key autoincrement, "
+ KEY_TIPDESC + " text);";
// CRIA A TABELA SERVICOS
private static final String DATABASE_CREATE_SERVICOS = "create table " + DATABASE_TABLE_SERVICOS + " ("
+ KEY_ID_SER + " integer primary key autoincrement, "
+ KEY_IDTIPO_SER + " integer, "
+ KEY_DESCRICAO_SER + " text, "
+ KEY_VALOR + " text, FOREIGN KEY ( " + KEY_IDTIPO_SER
+ " ) REFERENCES " + DATABASE_TABLE_TIPO_CARRO + " (" + KEY_IDTIPO_SER
+ " ) ON DELETE RESTRICT ON UPDATE CASCADE);";
// CRIA A TABELA HORARIOS
private static final String DATABASE_CREATE_HORARIOS = "create table " + DATABASE_TABLE_HORARIOS + " ("
+ KEY_ID_HOR + " integer primary key autoincrement, "
+ KEY_HORARIO + " text);";
// CRIA A TABELA OS
private static final String DATABASE_CREATE_OS = "create table " + DATABASE_TABLE_OS + " ("
+ KEY_ID_OS + " integer primary key autoincrement, "
+ KEY_IDCLIENTE_OS + " integer, "
+ KEY_IDSERVICO_OS + " integer, "
+ KEY_IDHORARIO_OS + " integer ,"
+ KEY_MODELO + " text, "
+ KEY_PLACA + " text, FOREIGN KEY ( " + KEY_IDCLIENTE_OS
+ " ) REFERENCES " + DATABASE_TABLE_CLIENTES + " (" + KEY_ID_CLI
+ " ) ON DELETE RESTRICT ON UPDATE CASCADE, FOREIGN KEY ( "
+ KEY_IDSERVICO_OS + " ) REFERENCES "
+ DATABASE_TABLE_SERVICOS + " (" + KEY_IDSERVICO_OS
+ " ) ON DELETE RESTRICT ON UPDATE CASCADE, FOREIGN KEY ( "
+ KEY_IDHORARIO_OS + " ) REFERENCES " + DATABASE_TABLE_HORARIOS + " ("
+ KEY_IDHORARIO_OS + " ) ON DELETE RESTRICT ON UPDATE CASCADE);";
private final Context mCtx;
private DatabaseHelper mDbHelper;
private SQLiteDatabase mDb;
public DbAdapter(Context ctx){
this.mCtx = ctx;
}
public DbAdapter open() throws SQLiteException{
if(isClosed()){
mDbHelper = new DatabaseHelper(mCtx);
mDb = mDbHelper.getWritableDatabase();
}
return this;
}
public void close(){
mDbHelper.close();
}
public boolean isClosed(){
return mDb == null || !mDb.isOpen();
}
private class DatabaseHelper extends SQLiteOpenHelper{
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(DATABASE_CREATE_CLIENTES);
db.execSQL(DATABASE_CREATE_CARROS);
db.execSQL(DATABASE_CREATE_TIPO_CARRO);
db.execSQL(DATABASE_CREATE_SERVICOS);
db.execSQL(DATABASE_CREATE_HORARIOS);
db.execSQL(DATABASE_CREATE_OS);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
}
Como ficaria o [color=red]DAO para TipoVeiculo[/color]: pacote Y
// TABELA TIPO CARRO : KEY_ID_TIP, KEY_TIPDESC
// GRAVAR TIPO CARRO
public long gravarTipoVeiculo(String tipo){
ContentValues valores = new ContentValues();
valores.put(KEY_TIPDESC, tipo);
return mDb.insert(DATABASE_TABLE_TIPO_CARRO, null, valores);
}
// ALTERAR TIPO CARRO
public boolean atualizarTipoCarro(long Id, String tipo){
ContentValues valores = new ContentValues();
valores.put(KEY_TIPDESC, tipo);
return mDb.update(DATABASE_TABLE_TIPO_CARRO, valores, KEY_ID_TIP + "=" + Id, null) > 0;
}
// APAGAR TIPO CARRO
public boolean apagarTipoCarro(long Id){
int qt = mDb.delete(DATABASE_TABLE_TIPO_CARRO, KEY_ID_TIP + "=" + Id, null);
return qt > 0;
}
// TIPO VEÍCULO POR ID
public Cursor getTipo(long Id){
return mDb.query(DATABASE_TABLE_TIPO_CARRO, null, KEY_ID_TIP + "=" + Id, null, null, null, null);
}
// TIPO VEÍCULO POR DESCRICAO
public Cursor getTipoVeiculoPorDescricao(String nomeString){
String[] selectionArgs = {nomeString + "%"};
// return mDb.query(DATABASE_TABLE_CLIENTES, null, KEY_NOME + "=" + selectionArgs, null, null, null, null);
return mDb.rawQuery("SELECT * FROM tipo_carro WHERE tip_descricao like ?", selectionArgs);
}
E como ficaria a chamada para DAO e DbAdapter?