1. Hast Du Lust, bei uns mitzuarbeiten und das AH-Team zu verstärken? Alle Details zu dieser aktuellen Herausforderung findest Du hier.
  1. jWoz, 22.10.2011 #1
    jWoz

    jWoz Threadstarter Neuer Benutzer

    Hallo Zusammen,

    aktuell arbeite ich mich in die Android-App-Entwicklung ein, indem ich versuche ein von mir erstelltes Java-Prog auf Android lauffähig zu machen. Das gemeinte Java-Programm enthält eine MS-Access-Datenbank und soweit ich weiß sind Access-Datenbanken nicht Android-Konfrom, sodass ich im vorfeld schon mal die Datenbank mit SQLite realisert habe.

    Nun zu meinem vorgehen! Ich habe die SQLite Datenbank in den Ordner "assets", zu finden im Applications-Dateisystem, reinkopiert und versucht diese über folgendem Code anzuspielen

    Code:
                    public class Conn_db {
                    private static Connection con;
    
                    public Bank hole_bank_daten(String vorname, String name) throws Exception{
    
                    Class.forName("SQLite.JDBCDriver");
    		DriverManager.getConnection("jdbc:sqlite:/assets/datenbank.sqlite");
    		PreparedStatement stmt;
    		stmt = con.prepareStatement("SELECT * FROM Daten WHERE" + strWhere);
    		stmt.setString(1, vorname);
    		if (b_ort) stmt.setString(2, nachname);
    		ResultSet rs = stmt.executeQuery();
                    .....
    
    Wenn ich es compiliere, erhalte die Meldungen:
    
    10-22 11:08:35.261: WARN/System.err(295): java.sql.SQLException: java.sql.SQLException: SQLite.Exception: unknown error in open
    10-22 11:08:35.281: WARN/System.err(295):     at SQLite.JDBCDriver.connect(JDBCDriver.java:83)
    10-22 11:08:35.281: WARN/System.err(295):     at java.sql.DriverManager.getConnection(DriverManager.java:191)
    10-22 11:08:35.291: WARN/System.err(295):     at java.sql.DriverManager.getConnection(DriverManager.java:154)
    10-22 11:08:35.291: WARN/System.err(295):     at db_connection.Conn_db.<init>(Conn_db.java:49)
    
    
    Leider funzt es nicht wie ich es gern hätte, würde mich auf nützliche Tipps sehr freuen!

    Viele Grüße
     
  2. sixi, 22.10.2011 #2
    sixi

    sixi Erfahrener Benutzer

    > DriverManager.getConnection("jdbc:sqlite:/assets/datenbank.sqlite");
    Das "/assets/datenbank.sqlite" kann in keinem Fall funktionieren - mit dem "leading" / bewegst du dich ja ins Root-Verzeichnis - und da gibts bestimmt keinen "assets" Ordner...

    Ne Anleitung findest du z.B. hier.
    Wenn deine Datenbank größer als 1MB ist, dann kopier sie in den "raw" Ordner und gib ihr eine Dateinamenerweiterung, die auf komprimierten Inhalt hindeutet. Also z.B. "meinedatenbank.jpg" oder .jet - denn sonst meckert Android, dass unkomprimierte Inhalte über 1MB nicht erlaubt sind.
     
    jWoz gefällt das.
  3. jWoz, 22.10.2011 #3
    jWoz

    jWoz Threadstarter Neuer Benutzer

    Hi Sixi,

    danke für den schnellen Tipp! Ich habe nun den Ordner "raw" in res erstellt und mit einer Dateinanemerweiterung ergänzt.
    Den Code habe ich entsprechend angepasst und bekomme aber leider folgende Fehlermeldung:#

    Code:
    
    Class.forName("SQLite.JDBCDriver");
    DriverManager.getConnection("jdbc:sqlite:res/raw/datenbank.sqlite");
    
    10-22 11:47:11.961: WARN/System.err(299): java.sql.SQLException: No suitable driver
    10-22 11:47:12.001: WARN/System.err(299):     at java.sql.DriverManager.getConnection(DriverManager.java:199)
    10-22 11:47:12.011: WARN/System.err(299):     at java.sql.DriverManager.getConnection(DriverManager.java:154)
    10-22 11:47:12.011: WARN/System.err(299):     at db_connection.Conn_db.<init>(Conn_db.java:49)
    
    Hättest du vielleicht eine weitere Idee ?

    Viele Grüße
     
  4. jWoz, 24.10.2011 #4
    jWoz

    jWoz Threadstarter Neuer Benutzer

    Das sind die beiden Klassen, die ich benutze um die Datenbankverbindung aufzubauen.


    Activity
    Code:
    
    
    
    import ce.ge.play.DB;
    import ce.ge.play.R;
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.TextView;
    
    public class Z2Activity extends Activity {
       
    	Button button1;
    	TextView input1;
    	
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            
            final String meineNull="0";
            button1=(Button)findViewById(R.id.button1);
            input1=(TextView)findViewById(R.id.editText1);
            button1.setOnClickListener((OnClickListener) this);
            input1.setText(meineNull);
        }
        public void onClick(View v) {
        	
        	DB d = new DB();
        	try {
    			d.openDataBase();
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		input1.setText("Datenbankverbindung wurde aufgebaut");
        }
    }
    
    

    Datenbankverbindung:
    Code:
    
    import java.sql.SQLException;
    
    import android.content.Context;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteOpenHelper;
    
    public class DB  {
    	    private static String DB_PATH = "assets/";
    	    private static String DB_NAME = "Daten.sqlite";
    	    private SQLiteDatabase myDataBase;
    	
    	    	 
    	        public void openDataBase() throws SQLException{
    	        	 
    	        	//Open the database
    	            String myPath = DB_PATH + DB_NAME;
    	        	myDataBase = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);
    
    	        }
    }
    
    
    Freue mich auf Tipps,
    viele Grüße
     
Die Seite wird geladen...
Ähnliche Themen Forum Datum
[OFFEN] Keine doppelten Einträge in die Firebase Datenbank Android App Entwicklung 27.10.2017
[OFFEN] Übereinstimmung Spracherkennung Datenbank finden Android App Entwicklung 13.10.2017
[OFFEN] Komplette SQLite Datenbank verschlüsseln Android App Entwicklung 19.09.2017
[ERLEDIGT] Probleme mit Bluetooth / Beam Ordner Android App Entwicklung 25.07.2017
[ERLEDIGT] Frage zu den drawable-Ordnern Android App Entwicklung 20.05.2017
[OFFEN] Updateinstallation: Trotzdem Datenbank gelöscht Android App Entwicklung 12.05.2017
[ERLEDIGT] Listview mit Datenbank über Custom ArrayList verbinden Android App Entwicklung 22.04.2017
[ERLEDIGT] Datenbank in eine Cloud sichern (Backup) Android App Entwicklung 29.03.2017
Wie bekomme ich Map Markers von einer SQL Datenbank Android App Entwicklung 11.03.2017
Class (Datenbank) nur einmal instanzieren Android App Entwicklung 23.02.2017

Benutzer fanden diese Seite durch die Suche nach:

  1. sqlite im assets ordner

Du betrachtest das Thema "Datenbank im Ordner assets?" im Forum "Android App Entwicklung",