Android SQLite数据库连接错误

时间:2013-08-20 19:49:34

标签: java android database sqlite

我想将我的应用与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();
    }
}

2 个答案:

答案 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

我希望这会给你一个小小的提示或指导。