Manual del programador de J2MESDLIB

La llibreria J2MESDLIB permet treballar amb taules relacionals en dispositius mòbils. Aquesta API proporciona els mètodes necessaris per poder crear, modificar i esborrar, en definitiva, gestionar taules en una base de dades relacional.
En aquesta secció veurem com utilitzar la API de la llibreria J2MESDLIB per a poder gestionar taules en una base de dades relacional.

Com crear una base de dades i afegir-hi una taula

En primer lloc, cal generar una base de dades que actuarà com contenidor de taules. Per això és necessari cridar al mètode de classe generateDB. Si la base de dades no existeix aquest mètode s’encarrega de crear les taules del catàleg, que tindran com funció principal emmagatzemar informació sobre les taules dels usuaris de la base de dades. Aquest mètode rep un paràmetre per indicar si s’ha de mostrar informació de les operacions que es realitzen per la sortida estàndard. Aquesta opció resulta útil en la fase de depurat de l’aplicació.

Després d’haver generat el catàleg de la base de dades es pot passar a gestionar les taules. Per a crear una taula en la nova base de dades cal utilitzar el mètode CreateTable. Aquest mètode rep com primer paràmetre el nom de la taula a crear, el segon paràmetre és un vector amb els camps de la taula i el tercer paràmetre és un enter que indica el nombre de columnes que formen la clau primària de la taula.

Suposem que volem crear en la base de dades de discs de música. Anem a crear una taula de discs amb tres camps: el nom de l’artista, el nom del disc i el gènere. El nom de l’artista en conjunció amb el nom del disc actuarà de com identificador(clau primària) de cada entrada de la base de dades.

Per definir els camps de la taula s’utilitza la classe J2MEColumn. El constructor de J2MEColumn rep com a paràmetres el nom del camp, si el camp formarà part de la clau primària de la taula o no, el tipus del camp (BOOL, DOUBLE, INT i VARCHAR són els tipus de dades disponibles en aquesta versió) i la grandària del camp. Després de definir els camps de la taula cal guardar-los en un vector i aquest vector és el segon paràmetre del mètode createTable.

El següent fragment de codi mostra com podem crear la base de dades i la taula.

J2MESDLIB.generateDB(false);
J2MEColumn c1 = new J2MEColumn(”artista”,true,J2MEColumn.ColumnType.VARCHAR,J2MEColumn.ColumnType.CHAR_SIZE*15);
J2MEColumn c2 = new J2MEColumn(”disc”,true,J2MEColumn.ColumnType.VARCHAR,J2MEColumn.ColumnType.CHAR_SIZE*15);
J2MEColumn c3 = new J2MEColumn(”genere”,false,J2MEColumn.ColumnType.VARCHAR,J2MEColumn.ColumnType.CHAR_SIZE*15);
Vector columnes = new Vector();
columnes.addElement(c1);
columnes.addElement(c2);
columnes.addElement(c3);
J2METable t = J2MESDLIB.createTable(”musicbd”,columnes,2);

Inserció de fila

Una vegada creada la taula podem passar a la inserció de noves tuples o files.
En primer lloc, obrim la base de dades cridant al mètode generateDB, després és necessari carregar la taula a la qual accedirem cridant al mètode loadTable. En cas que la taula no existeixi ens encarreguem de crear-la. A continuació podem passar a la creació d’una nova fila. Per a això utilitzarem la classe J2MERow. Crearem una fila buida amb el mètode createRow, després afegirem les dades de la fila amb el mètode setColValue. El primer paràmetre d’aquest mètode és la dada que anem a guardar i el segon paràmetre el número de camp. En el nostre exemple el nom de l’artista és el camp número 0, el nom del disc és el camp número 1 i el gènere el número 2. Per a acabar afegirem la fila a la taula de contactes a través del mètode addRow i guardarem els canvis en la taula amb el mètode saveTable.

El codi quedaria de la següent manera:

J2METable t=null;
J2MESDLIB.generateDB(false);
if(J2MESDLIB.existsTable(”musicbd”)){
t = J2MESDLIB.loadTable(”musicbd”);
}
else{
t = crearMusicBD();
}

J2MERow r = t.createRow();
r.setColValue(”artista”,0);
r.setColValue(”disc”,1);
r.setColValue(”genere”,2);
t.addRow(r);
t.saveTable();
t.closeTable();
J2MESDLIB.closeDB();

Cerca de fila

Com hem fet en l’exemple anterior en primer lloc obrim la base de dades i carreguem la taula de contactes. A continuació utilitzarem la classe J2MEKey per a buscar el contacte pel seu nom. Per a això creem un objecte de la classe J2MEKey i amb el mètode addValueKey afegim el nom de l’artista i el nom del disc de l’entrada que volem buscar (en el nostre exemple “artista” i “disc”). Invocant el mètode seek buscarem l’entrada a la taula. Si l’entrada existeix podrem obtenir les seves dades amb el mètode read.
En la versió actual de la llibreria només es pot buscar de forma eficient per clau primària o identificador.

El codi seria el següent:

J2METable t = null;
J2MERow r = null;
J2MESDLIB.generateDB(false);

if(J2MESDLIB.existsTable(”musicbd”)){
t = J2MESDLIB.loadTable(”musicbd”);
if (t.rowCount()>0){
J2MEKey key = new J2MEKey();
key.addValueKey(”artista”);
key.addValueKey(”disc”);
if(t.seek(key)){
r = t.read();
}
}
}
t.closeTable();
J2MESDLIB.closeDB();

Actualitzar/Modificar una fila

Després d’obrir la base de dades i carregar la taula crearem un objecte de la classe J2MEKey que ens servirà per buscar a la taula l’entrada que anem a modificar. Això ho farem invocant el mètode seek. Una vegada trobat, llegirem les dades invocant el mètode read. A continuació modificarem la columna corresponent i després modificarem la fila a través del mètode update, al que passarem com paràmetre les noves dades del contacte. Finalment, gravarem els canvis fets en la taula a través del mètode saveTable.

En la versió actual de la llibreria no es pot modificar la clau primària de la taula. Per això en l’exemple anterior només podrem modificar el gènere.

El codi seria el següent:

J2METable t = null;
J2MESDLIB.generateDB(false);
if(J2MESDLIB.existsTable(”musicbd”)){
t = J2MESDLIB.loadTable(”musicbd”);
J2MEKey key = new J2MEKey();
key.addValueKey(”artista”);
key.addValueKey(”disc”);
if(t.seek(key)){
J2MERow row = t.read();
row.setColValue(”nouGenere”,2);
t.update(row);
t.saveTable();
}

}
t.closeTable();
J2MESDLIB.closeDB();

Esborrar fila

Anem a esborrar les dades de l’entrada “artista”"disc”. Per a això obrirem la base de dades i carregarem la taula. A continuació crearem un objecte J2MEKey per localitzar l’entrada “artista”"disc”. Això ho farem invocant el mètode seek. Una vegada localitzada, passarem a esborrar-la de la taula a través del mètode delete.

Codi:

J2METable t = null;
J2MESDLIB.generateDB(false);

if(J2MESDLIB.existsTable(”musicbd”)){
t = J2MESDLIB.loadTable(”musicbd”);
J2MEKey key = new J2MEKey();
key.addValueKey(”artista”);
key.addValueKey(”disc”);
if(t.seek(key)){
t.delete();
}
}
t.closeTable();
J2MESDLIB.closeDB();

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*