【问题标题】:Connecting a database on computer in Android Studio在 Android Studio 中连接计算机上的数据库
【发布时间】:2020-12-13 19:50:54
【问题描述】:

我目前正在 Android Studio 中开发一个项目。我在我的计算机上创建了一个充满信息的数据库,我希望我的程序专门连接到该数据库。

但是,它似乎对我不起作用。出于测试目的,我创建了一个测试数据库来检查我的代码是否有效。它看起来像这样:(我没有费心为表/其他数据库相关方法放入创建语句)

public class DatabaseHelper extends SQLiteOpenHelper {

private static final int DATABASE_VERSION = 1;
public static final String DATABASE_NAME = "sample_database";

public SampleDBSQLiteHelper(Context context) {
    super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

@Override
public void onCreate(SQLiteDatabase db) {
   ...
}

@Override
public void onUpgrade(SQLiteDatabase db) {
   ...
}
}

不胜感激。每当我查找它时,我都会得到连接远程服务器上的 sqlite 数据库的答案。

【问题讨论】:

    标签: sqlite android-studio


    【解决方案1】:

    不完全确定您的问题是什么,但这里有一个数据库助手类的示例,它可以让您在移动应用上将数据写入 SQL。

    public class DatabaseHelper extends SQLiteOpenHelper {
    
        public static final String DATABASE_NAME ="Database.db";
        // Database Version
        private static final int DATABASE_VERSION = 1;
        public static final String TABLE  = "TABLE";
      
        public static final String COL1 = "ID",COL2 = "D2", COL3 = "D3";
        public DatabaseHelper(Context context) {
            super(context, DATABASE_NAME, null, DATABASE_VERSION);
        }
        @Override
        public void onCreate(SQLiteDatabase db) {
            // creating required tables
            String CREATED_TABLE = "CREATE TABLE " + TABLE + " (ID INTEGER PRIMARY KEY, " +
                    "D1 TEXT, D2 TEXT)";
            db.execSQL(CREATED_TABLE);
      
        }
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            // on upgrade drop older tables
            db.execSQL("DROP TABLE IF EXISTS " + TABLE);
            onCreate(db);
        }
        public boolean addData_Sensor_Board(String d1, String d2){
    
            SQLiteDatabase db = this.getWritableDatabase();//Enable the database to be written to
            ContentValues contentValues = new ContentValues();//Setup the data input note COL1 is for the ID
            contentValues.put(COL2,d1);//2
            contentValues.put(COL3,22);//3
         
    
            long result = db.insert(TABLE,null,contentValues);//Check to see if pass in has been successful and pass in the data on this line via the pass in of content values
            if(result == -1){//Returned false when inputting data to the database
                return false;
            }
            else{
                return true;//No error
            }
        }
        public Cursor showData(){//Used to locate the data inside the database
            SQLiteDatabase db = this.getReadableDatabase();
            String selectQuery = "SELECT  * FROM " + TABLE;
    
            Cursor data = db.rawQuery(selectQuery, null);
            return data;
        }
        public void delete_table(){//Clears the entire database
            SQLiteDatabase db = this.getWritableDatabase();
            String clearDB = "DELETE FROM "+ TABLE;
            db.execSQL(clearDB);
        }  
    }
    
    
    

    【讨论】:

    • 我有一个预先存在的数据库,它是在我的计算机上创建的。我的 android studio 项目也在同一台计算机上。我只想将该数据库连接到项目。因为我做不到,所以我创建了一个测试数据库而不是连接真实的东西。
    【解决方案2】:

    据我所知,没有简单的方法可以做到这一点,但 Florina Muntenescu 写了 this great blogpost,介绍了如何使用 Room 将预填充的数据库加载到您的应用程序中。

    成功加载数据库后,您可以使用 Android Studio 4.1 使用内置的 Database Inspector 操作数据库(还必须将 Android Gradle 插件更新到 4.1.0 或更高版本)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-20
      • 2019-06-06
      • 2021-04-28
      相关资源
      最近更新 更多