我是android的新手,我有一个很大的问题,我创建了一个需要连接到数据库的应用程序。所以我使用sqllite expert pro
创建一个数据库,你可以在这里看到:
CREATE TABLE [user](
[name] tEXT,
[id] INT PRIMARY KEY);
我的数据库名称为a
。我想读取用户表中的值,如我在代码中所示:
SQLiteDatabase mydatabase = openOrCreateDatabase("a",MODE_PRIVATE,null);
Cursor resultSet = mydatabase.rawQuery("Select * from user",null);
resultSet.moveToFirst();
String username = resultSet.getString(1);
String password = resultSet.getString(2);
TextView tv = (TextView) findViewById(R.id.editText1);
tv.setText("Text is: " + username + password);
但它不起作用,我应该在我的代码中添加连接字符串,还是应该将数据库导入到我的项目中,因为数据库位于我的工作区文件夹中。
我使用此代码在android中创建一个测试数据库,但它不能再次运行了吗?
SQLiteDatabase mydatabase = openOrCreateDatabase("ali",MODE_PRIVATE,null);
mydatabase.execSQL("CREATE TABLE IF NOT EXISTS TutorialsPoint(Username VARCHAR,Password VARCHAR);");
mydatabase.execSQL("INSERT INTO TutorialsPoint VALUES('admin','admin');");
Cursor resultSet = mydatabase.rawQuery("Select * from TutorialsPoint",null);
resultSet.moveToFirst();
String username = resultSet.getString(1);
String password = resultSet.getString(2);
答案 0 :(得分:2)
您的数据库需要先复制到手机的内部存储空间。您可以手动或借助此库Android SqliteAsset Helper
进行操作按照正确的方法在android中使用代码创建数据库:
创建一个扩展SqliteOpenHelper
的类。
public class DbOpener extends SqliteOpenHelper {
DbOpener(Context c){
super(c, 1, "a", null, 1); //where "a" is the database name
}
public void onCreate (SqliteDatabase db){
db.execSQL("CREATE TABLE TutorialsPoint (Username VARCHAR, Password VARCHAR);");
}
}
然后在您的活动中使用它如下:
DbOpener opener = new DbOpener(this);
SqliteDatabase myDatabase = opener.getWritableDatabase();
//Now you can perform all your queries (including insertions) using the myDatabase object
答案 1 :(得分:1)
首先,您应该将数据库名称更改为可读的名称,例如“ mydata.db ”
其次,在Android中使用SQLite不需要连接字符串,就像我们从Java代码访问数据库一样。
您需要使用SQLiteOpenHelper访问数据库。来自Android SQLite database and content provider的教程。尝试从教程中了解Android和SQLite。
然后,在掌握了概念并了解其后,您可以使用Android SQLiteAssetHelper
来使用预定义的数据库。