Soru & Cevap

sql ekleme

31.08.2014 - 11:25

sa arkadaşlar

elimde sql veri dosyası var. (.sql)  bunu android uygulamama eklemek istiyorum. net ortamında baktıklarım genelde sql veriyi programın içinden sıfırdan yaratıp kullanıcı ekleme yöntemlerini vermişler. android uygulamamıza bu dosyayı nasıl monte edeceğiz? yani ekleyeceğim dosya data/data/database klasöründe gözükecek. bu konu ile ilgili link atarsanız çok yardımcı olursunuz.

iyi günler...

13 Görüntülenme

3 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user u.Oguz
u.Oguz
02.09.2014 - 06:27

Android programlamada yeni olduğum için verdiğiniz kodları çalıştıramadım, rica etsem tam kodlarıyla örnek bir proje verebilir misiniz ?

Teşekkürler.

Haris
03.09.2014 - 11:37
Android LifeCycle nasil calistigini ve Aktivitenin ne olduguna bi bak, onCreate() methodu incele (bir aktivitenin ilk cagiracagi metodtur). Bu medodun icersinde importDatabase() methodunu cagirarak istedigin sonuca varirsin. Benim bunu anlatip da kodu vermemem senin icin yararli. Gidip buradan ben kodu yazarsam, kopyala yapistir yapar bisey ogrenmezsin, kendini gelistiremezsin.
picture-24422-1406059911.jpg
hrskrs
01.09.2014 - 07:25

.sqlite veritabanini assets klasorune yukle. Bu kodu onCreate() methodunda cagir. Uygulama acilfiginda, veritabanin telefonun local veritabanina kopyalansin.
[code]public void importDatabase() throws IOException{
        boolean databaseExist = checkDatabase();
        if(databaseExist){
            Log.i(TAG, DB_NAME + " exists on the device");
        }
        else{
            this.getWritableDatabase();
            copyDatabase();
        }
    }
    
    public boolean checkDatabase(){
        File databaseFile = new File(DB_PATH + DB_NAME);
        return databaseFile.exists();
    }
    
    private void copyDatabase() throws IOException{
        Log.i(TAG, DB_NAME + " is being copied");
        //Open your local db as the input stream
        InputStream myInput = context.getAssets().open(DB_NAME);
        //Path to the just created empty db
        String outFileName = DB_PATH + DB_NAME;
        //Open the empty db as the output stream
        OutputStream myOutput = new FileOutputStream(outFileName);
        //Transfer bytes from the input file to the output file
        byte[] buffer = new byte[1024];
        int length;
        while((length = myInput.read(buffer))>0){
            myOutput.write(buffer, 0, length);
        }
        
        //Close the streams
        myOutput.flush();
        myOutput.close();
        myInput.close();
        
        Log.i(TAG, DB_NAME + " has been copied to device");
    }
    
    //Open the database
    public void open() throws SQLException{
        String myPath = DB_PATH + DB_NAME;
        db = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READWRITE);
    }
    
    @Override
    public synchronized void close() {
        if(db != null)
            db.close();
        super.close();
    }[/code]

 

DB_NAME = veritabani adi

DB_PATH =  "/data/data/"+ keni package adi +"/databases/";  // telefonun veritabani yeri