在android里,如下代码通过SQLITE方式创建数据库BookStore.db,然后用android自带模拟器启动运行,请问在运行这时能连接刚创建数据数据库吗?要怎么连接?
public class MyDatabaseHelper extends SQLiteOpenHelper {
public MyDatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
myContent = context;
}
}
public class MainActivity extends AppCompatActivity {
private MyDatabaseHelper dbHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//构建一个 MyDatabaseHelper 对象,通过构造函数将数据库名指定为 BookStore.db
dbHelper = new MyDatabaseHelper(this,"BookStore.db",null,1);
Button createDatabase = (Button)findViewById(R.id.create_database);
}
在你的代码中,你已经创建了一个名为 "BookStore.db" 的数据库,并且定义了一个名为 MyDatabaseHelper 的帮助类来管理数据库连接和升级。但是,在你的 onCreate 方法中,并没有实际执行创建数据库表或连接数据库的操作。
要连接到数据库并执行操作,你需要在适当的时机调用 getWritableDatabase 或 getReadableDatabase 方法。这两个方法会返回一个 SQLiteDatabase 对象,允许你执行数据库操作。
通常,在 onCreate 方法中,你可以执行一些初始化数据库的操作。例如,你可以在 onCreate 中创建表格,如下所示:
java
Copy code
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 构建一个 MyDatabaseHelper 对象,通过构造函数将数据库名指定为 BookStore.db
dbHelper = new MyDatabaseHelper(this,"BookStore.db",null,1);
// 获取可写的数据库对象
SQLiteDatabase db = dbHelper.getWritableDatabase();
// 执行数据库初始化操作,比如创建表格
createTable(db);
// 在完成操作后,你可以关闭数据库连接
db.close();
Button createDatabase = (Button)findViewById(R.id.create_database);
}
private void createTable(SQLiteDatabase db) {
// 创建表格的 SQL 语句
String createTableSQL = "CREATE TABLE IF NOT EXISTS Books ("
+ "id INTEGER PRIMARY KEY AUTOINCREMENT,"
+ "title TEXT,"
+ "author TEXT)";
// 执行创建表格的 SQL 语句
db.execSQL(createTableSQL);
}
上述代码示例在 onCreate 方法中获取了可写的数据库连接,并调用了 createTable 方法来创建一个名为 "Books" 的表格。然后,你可以在 createTable 方法中定义你的表格结构。
请注意,在实际应用中,你可能需要更多的方法来执行其他数据库操作,如插入、查询、更新和删除数据。确保在使用完数据库连接后关闭它,以释放资源。
谢谢,那创建后,要怎么用可视化工具连接来查看?在启动测试时数据库路径怎么选?
@herry507: Navicat 可以可视化 把db文件复制到PC