我想将我的应用与Android手机上的数据库连接,所以我写了一个名为DBHelper
的课程。
但是我得到了一个错误,它说" MODE_PRIVATE"无法解析为变量。所以我做了#34; Context.MODE_PRIVATE"。现在,可以解析变量,但我得到一个新的错误:
"对于类型DBHelper",未定义方法openOrCreateDatabase(String,int,null)。
如果我使用DBHelper.this.openOrCreateDatabase
打开它,则无济于事。
有人能帮助我吗?
这是我的代码:
public class DBHelper {
SQLiteDatabase db;
public void insert(String news, Context con){
db = openOrCreateDatabase("PlanB", con.MODE_PRIVATE, null);
db.execSQL("DROP TABLE IF EXISTS News");
db.execSQL("CREATE TABLE IF NOT EXISTS INBOX(id INTEGER,title VARCHAR,text VARCHAR,date VARCHAR);");
String[] divided = news.split("/newentry/");
int length = divided.length;
int pos = 0;
while(pos <= length){
String[] entry = divided[pos].split("/;/");
db.execSQL("INSERT INTO INBOX VALUES('"+entry[0]+"','"+entry[1]+"','"+entry[2]+"','"+entry[3]+"');");
pos++;
}
db.close();
}
}
答案 0 :(得分:1)
如果您在Android中使用SQLite,请查看SQLiteOpenHelper,因为您应该将其扩展到某个位置。
文档:
用于管理数据库创建和版本管理的帮助程序类。
您创建了一个实现onCreate(SQLiteDatabase)的子类, onUpgrade(SQLiteDatabase,int,int)和可选项 onOpen(SQLiteDatabase),这个类负责打开 数据库(如果存在),如果不存在则创建它,并将其升级为 必要。事务用于确保数据库始终 处于明智的状态。
这是database helper你可以找到一些用途。
答案 1 :(得分:0)
最好在类中扩展SQLiteOpenHelper并覆盖其方法
1.onCreate - 在指定的数据库中创建表 2.onUpdate--通常用于删除表格,并对其进行更新。
还要确保您创建该类的构造函数,其中包含以下语句 super(context,DB_NAME,null,DB_VERSION);
每当您在另一个类(项目中的任何类)中声明此类的对象时,此构造函数将自动为您创建数据库。接下来onCreate方法被自动调用,如果它不存在则创建表。 现在,您可以在类中添加自定义方法,即扩展SQLiteOpenHelper以在表中添加或删除数据。 现在可以通过其他类中的对象声明来接收这些方法。
这是关于SQLiteOpenHelper的教程。
http://www.vogella.com/articles/AndroidSQLite/article.html
我希望这会给你一个小小的提示或指导。