关于SQLite数据库名的疑问
androidstudio吧
全部回复
仅看楼主
level 5
江心磐 楼主
辅助类DatabaseHelper 如下:
package com.example.administrator.myapp1;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
/**
* Created by Administrator on 2016-05-31.
*/
public class DatabaseHelper extends SQLiteOpenHelper {
public DatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory,
int version) {
super(context, name, factory, version);
}
//辅助类建立时运行该方法
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "CREATE TABLE CARD (_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , fileName VARCHAR, description VARCHAR)";
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
实现代码:
String dbname="db_sds";
String tablename_card="CARD";
String fileName="fileName";
String description="description";
DatabaseHelper mOpenHelper=new DatabaseHelper(this,dbname,null,124);
SQLiteDatabase db=mOpenHelper.getWritableDatabase();
String sql1="insert into "+tablename_card+"("+fileName+","+description+") values('lilei','man');";
textView.setText(sql1);
db.execSQL(sql1);
setTitle("插入成功");
按理说,DatabaseHelper mOpenHelper=new DatabaseHelper(this,dbname,null,124);这句应该是创建一个名为dbname的数据库,可是我试了出错。而如果dbname换成tablename_card就没问题,可是我现在是在创建数据库,为什么要用表名才正确?
2016年06月01日 07点06分 1
level 8
[滑稽]
2016年06月01日 08点06分 3
level 6
并不是
2016年06月01日 09点06分 4
level 6
help 那个是数据库打开帮助器 并不是新建一个数据库
2016年06月01日 09点06分 5
求科普。。。
2016年06月01日 13点06分
level 6
认真看了下你的代码 在解释一下 当你想对数据库进行操作的话或则说 当你用打开帮助器那个api的时候 传入的就是数据表 不是数据库 api就是这样规定的
2016年06月01日 13点06分 6
这个概念能理解,我主要纠结的是创建数据库这一步是不是在super那一步已经自动完成了?
2016年06月01日 14点06分
@江心磐 你说的是你代码开头的那个super吗 如果是 那么你可能要看一下help那个api 这个api不是用来创建数据库的
2016年06月01日 14点06分
@changequi 那数据库到底是在哪一步创建完成的呢?
2016年06月02日 00点06分
@changequi 在我的猜想中,当新建helper对象mOpenHelper的时候,helper里面的public DatabaseHelper函数会(存在)打开/(不存在)创建数据库,会是这样么?
2016年06月02日 00点06分
1