Autore Topic: Quale DB?  (Letto 1250 volte)

Offline Renovatio

  • Nuovo arrivato
  • *
  • Post: 17
  • Respect: 0
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    I9100
  • Sistema operativo:
    Windows 8
Quale DB?
« il: 30 Marzo 2010, 15:45:29 CEST »
0
Salve, vorrei sapere che tipo di DB utilizza Android (SQLite, MySQL o altri) e nel tal caso come permettere al mio programma di leggere i dati in questo (mi serve solo di leggere, niente scrittura e/o modifica)

Grazie Mille
« Ultima modifica: 15 Maggio 2010, 17:25:47 CEST da JD »

Offline Agafi

  • Utente normale
  • ***
  • Post: 173
  • Respect: +10
    • svetlana-tomasevschi-perini
    • agafist
    • Mostra profilo
  • Dispositivo Android:
    SE Xperia Neo,LG Optimus One,Asus EEE Pad Transformer,HTC Magic Vodafone
  • Play Store ID:
    Agafi
  • Sistema operativo:
    Win7
Re:Quale DB?
« Risposta #1 il: 30 Marzo 2010, 16:11:27 CEST »
0
SQLite ;-)

ma per leggerlo...prima dovrai scriverci dentro o no?

Offline Renovatio

  • Nuovo arrivato
  • *
  • Post: 17
  • Respect: 0
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    I9100
  • Sistema operativo:
    Windows 8
Re:Quale DB?
« Risposta #2 il: 30 Marzo 2010, 16:18:55 CEST »
0
Diciamo che l'unico scopo della mia applicazione è leggere un database creato in precedenza: effettivamente potrei fare tutte Activity separate ognuna con il suo testo ma una che legga una parte diversa di DB in base a ciò che è richiesto mi sembra assai più ordinato!

Tutto qui ;-)

Offline Agafi

  • Utente normale
  • ***
  • Post: 173
  • Respect: +10
    • svetlana-tomasevschi-perini
    • agafist
    • Mostra profilo
  • Dispositivo Android:
    SE Xperia Neo,LG Optimus One,Asus EEE Pad Transformer,HTC Magic Vodafone
  • Play Store ID:
    Agafi
  • Sistema operativo:
    Win7
Re:Quale DB?
« Risposta #3 il: 30 Marzo 2010, 16:31:44 CEST »
0
ok allora puoi prendere spunto dalla classe DBAdapter presente nell'esempio Notepad di google...

Oppure ti metto qui uno stralcio di una mia classe di accesso al db (derivata da quella)
Codice (Java): [Seleziona]
package it.mp.foursmiles;


import java.util.HashMap;

import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

/**
 * Simple notes database access helper class. Defines the basic CRUD operations
 * for the notepad example, and gives the ability to list all notes as well as
 * retrieve or modify a specific note.
 *
 * This has been improved from the first version of this tutorial through the
 * addition of better error handling and also using returning a Cursor instead
 * of using a collection of inner classes (which is less scalable and not
 * recommended).
 */

public class FourSmilesDbAdapter {


    public static final String KEY_OS_CODICE = "code";
    public static final String KEY_OS_VALUE = "value";


        public static final String KEY_OS_DIFFICULT = "KEY_DIFFICULT";
        public static final String KEY_OS_OPPONENT = "KEY_OPPONENT";
        public static final String KEY_OS_WARNING = "KEY_WARNING";
        public static final String KEY_OS_IMAGE = "KEY_IMAGE";
        public static final String KEY_OS_TYPE_GAME = "KEY_TYPE_GAME"; 
   
        public static final int DIFFICULT_EASY = 1;
        public static final int DIFFICULT_MEDIUM = 2;
        public static final int DIFFICULT_HARD = 3;
       
        public static final int OPPONENT_COMPUTER = 0;
        public static final int OPPONENT_HUMAN = 1;    

        public static final int WARNING_ON = 0;
        public static final int WARNING_OFF = 1;       

        public static final int TYPE_GAME_NORMAL = 0;
        public static final int TYPE_GAME_ADVANCED = 1;

        public static final int IMAGE_SMILE = 0;
        public static final int IMAGE_CLASSIC = 1;     

   
    private static final String TAG = "FourSmilesDbAdapter";
    private DatabaseHelper mDbHelper;
    private SQLiteDatabase mDb;
   
    /**
     * Database creation sql statement
     */

    private static final String DATABASE_NAME = "four_smiles";
    private static final String DB_TABLE_OPTIONS = "four_options";
   
   
    private static final String DATABASE_CREATE_OPTIONS =
        "create table "+DB_TABLE_OPTIONS+" ("+KEY_OS_CODICE+" text not null primary key, "+ KEY_OS_VALUE+" INTEGER not null);";
   
    private static final int DATABASE_VERSION = 4;

    private final Context mCtx;

    private static class DatabaseHelper extends SQLiteOpenHelper {

        DatabaseHelper(Context context) {
            super(context, DATABASE_NAME, null, DATABASE_VERSION);
        }
       
       
        public void onCreate(SQLiteDatabase db) {
                try{
                        db.execSQL(DATABASE_CREATE_OPTIONS);
                        db.execSQL("INSERT INTO " + DB_TABLE_OPTIONS + " VALUES (?, ?)", new Object[] {KEY_OS_DIFFICULT ,DIFFICULT_EASY } );
                        db.execSQL("INSERT INTO " + DB_TABLE_OPTIONS + " VALUES (?, ?)", new Object[] {KEY_OS_OPPONENT ,OPPONENT_HUMAN } );
                        db.execSQL("INSERT INTO " + DB_TABLE_OPTIONS + " VALUES (?, ?)", new Object[] {KEY_OS_WARNING ,WARNING_ON } );
                        db.execSQL("INSERT INTO " + DB_TABLE_OPTIONS + " VALUES (?, ?)", new Object[] {KEY_OS_IMAGE ,IMAGE_SMILE } );
                        db.execSQL("INSERT INTO " + DB_TABLE_OPTIONS + " VALUES (?, ?)", new Object[] {KEY_OS_TYPE_GAME ,TYPE_GAME_NORMAL } );
                }catch(Exception ex){
                        ex.printStackTrace();
                }
           
        }

        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            Log.w(TAG, "Upgrading database from version " + oldVersion + " to "
                    + newVersion + ", which will destroy all old data");
            db.execSQL("DROP TABLE IF EXISTS "+DB_TABLE_OPTIONS);
            onCreate(db);
        }
    }

    public FourSmilesDbAdapter(Context ctx) {
        this.mCtx = ctx;
    }

    public FourSmilesDbAdapter open() throws SQLException {
        mDbHelper = new DatabaseHelper(mCtx);
        mDb = mDbHelper.getWritableDatabase();
        return this;
    }
   
    public void close() {
        mDbHelper.close();
        mDb.close();
    }

    public void updateOptions(String code,int value){                  
                mDb.execSQL("UPDATE " + DB_TABLE_OPTIONS + " SET "+KEY_OS_VALUE+" = ?  WHERE "+ KEY_OS_CODICE +" = ? ", new Object[] {value,code } );                              
    }
   
    public HashMap<String,Integer> getHMOptions() {
        HashMap<String,Integer> hm=new HashMap<String,Integer>();      
        Cursor c= mDb.query(DB_TABLE_OPTIONS, new String[] {KEY_OS_CODICE, KEY_OS_VALUE}, null, null, null, null, null);            
        while (c.moveToNext()){        
                hm.put(c.getString(0),c.getInt(1));        
        }
        if (!c.isClosed()){
                c.close();
        }
        return hm;
    }
}

e nell'activity devi inserire il seguente codice
Codice (Java): [Seleziona]
FourSmilesDbAdapter mDbHelper = new FourSmilesDbAdapter(this);
mDbHelper.open();              
HashMap<String,Integer> options = mDbHelper.getHMOptions();
mDbHelper.close();

Questo cmq è solo un esempio...



Offline Renovatio

  • Nuovo arrivato
  • *
  • Post: 17
  • Respect: 0
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    I9100
  • Sistema operativo:
    Windows 8
Re:Quale DB?
« Risposta #4 il: 30 Marzo 2010, 19:52:38 CEST »
0
Grazie Mille ;-)