· 8 years ago · May 20, 2018, 12:32 PM
1package pt.ismai.bd;
2
3import java.util.Locale;
4
5import android.app.Activity;
6import android.database.sqlite.SQLiteDatabase;
7import android.os.Bundle;
8import android.view.View;
9import android.widget.Button;
10import android.widget.EditText;
11
12public class BaseDadosActivity extends Activity {
13 /** Called when the activity is first created. */
14 protected SQLiteDatabase bd;
15
16 @Override
17 public void onCreate(Bundle savedInstanceState) {
18 super.onCreate(savedInstanceState);
19 setContentView(R.layout.main);
20
21 final EditText tNome = (EditText)findViewById(R.id.editText1);
22 final EditText tTelefone = (EditText)findViewById(R.id.editText2);
23 final EditText tLocalidade = (EditText)findViewById(R.id.editText3);
24
25 final Button adicionar = (Button)findViewById(R.id.button1);
26
27 bd = openOrCreateDatabase("utilizadores.db", SQLiteDatabase.CREATE_IF_NECESSARY, null);
28 bd.setLocale(Locale.getDefault());
29 bd.setLockingEnabled(true);
30 bd.setVersion(1);
31
32 String recriarLocalidades = "DROP TABLE if exists localidades";
33 String criarLocalidades = "CREATE TABLE localidades(" +
34 "_id INTEGER PRIMARY KEY AUTOINCREMENT, "+
35 "localidade TEXT)";
36
37 String recriarUtilizadores = "DROP TABLE if exists utilizadores";
38 String criarUtilizadores = "CREATE TABLE utilizadores(" +
39 "_id INTEGER PRIMARY KEY AUTOINCREMENT, " +
40 "nome TEXT, telefone INTEGER, " +
41 "fk_localidade_id NOT NULL CONSTRAINT localidades_id REFERENCES localidades(_id) ON DELETE CASCADE)";
42
43 String trigger1 = "CREATE TRIGGER fk_insert_localidade " +
44 "BEFORE INSERT ON utilizadores " +
45 "FOR EACH ROW BEGIN " +
46 "SELECT RAISE(ROLLBACK, " +
47 "'insert na tabela \"utilizadores\" violou a chave estrangeira \"fk_localidade_id\"') " +
48 "WHERE (SELECT _id FROM localidades WHERE localidades._id = NEW.fk_localidade_id) IS NULL; " +
49 "END";
50
51 bd.execSQL(recriarLocalidades);
52 bd.execSQL(criarLocalidades);
53 bd.execSQL(recriarUtilizadores);
54 bd.execSQL(criarUtilizadores);
55
56 String insert1 = "insert into localidades(localidade) values(\"Porto\")";
57 String insert2 = "insert into localidades(localidade) values(\"Lisboa\")";
58 String insert3 = "insert into localidades(localidade) values(\"Setúbal\")";
59 String insert4 = "insert into localidades(localidade) values(\"Viana do Castelo\")";
60 String insert5 = "insert into localidades(localidade) values(\"Braga\")";
61
62 bd.execSQL(insert1);
63 bd.execSQL(insert2);
64 bd.execSQL(insert3);
65 bd.execSQL(insert4);
66 bd.execSQL(insert5);
67
68 adicionar.setOnClickListener(new Button.OnClickListener() {
69 public void onClick(View v) {
70 String inserir = "insert into utilizadores(nome, telefone, fk_localidade_id) values(\"" + tNome.getText().toString() + "\", " + tTelefone.getText().toString() + ", " + tLocalidade.getText().toString() + ")";
71 bd.execSQL(inserir);
72 }
73 });
74 }
75}