Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android和java中的SQLite数据库大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_262_4@ 我在理解sqlite数据库android中的工作原理时遇到了一些困难.我创建了一个 DatabaseHelper.java类,如下所示:

import android.content.Context;
import android.database.sqlite.sqliteDatabase;
import android.database.sqlite.sqliteOpenHelper;

public class DatabaseHelper extends sqliteOpenHelper {
    private static final String DATABASE_NAME = "library.db";
    public static final String titlE = "title";
    public static final String MUSICtitlE = "musictitle";
    public static final String AUTHOR = "author";
    public static final String ARTIST = "artist";


    public DatabaseHelper(Context context) {
        super(context,DATABASE_NAME,null,1);
    }

    @Override
    public void onCreate(sqliteDatabase db) {
        db.execsql( "create table music (_id INTEGER PRIMARY KEY AUTOINCREMENT,Title TEXT,artist text);");
        db.execsql( "create table books (_id INTEGER PRIMARY KEY AUTOINCREMENT,author text);");
        db.execsql( "create table movies (_id INTEGER PRIMARY KEY AUTOINCREMENT,Title TEXT);");
    }

    @Override
    public void onUpgrade(sqliteDatabase db,int oldVersion,int newVersion) {
        android.util.Log.v("Constants","Upgrading database which will destroy all old data");
        db.execsql("drop table IF EXISTS books");
        db.execsql("drop table IF EXISTS music");
        db.execsql("drop table IF EXISTS movies");
        onCreate(db);
    }

}

据我所知,这确实有用,并已使用adb控制台进行检查.

我的问题是如何从不同的活动中查询应用程序中的这个数据库,例如我想在我的应用程序中查询数据库SELECT title FROM books;这将返回书表中的标题,如何连接到数据库,运行此查询然后将所有结果存储到数组中?

– – – – – – – – – – – – – – – – – 编辑 – – – – – – – – ————————-

是的,所以在我要查询的部分中,我已经放置了这段代码

if (category.equals("Books")){
            img.setImageresource(R.drawable.book);
            ArrayList<String> list = new ArrayList<String>();
            dh = new DatabaseHelper(this);
            sqliteDatabase db = dh.getReadableDatabase();
            cursor cursor = db.query("books",new String[] { "title" },"title desc");
            if (cursor.moveToFirst()) {
                do {
                    list.add(cursor.getString(1));
                } while (cursor.moveToNext());
            }
            if (cursor != null && !cursor.isClosed()) {
               cursor.close();
            }
            list.add("Test");
            cont_array = (String[]) list.toArray();
            db.close();
        }

通过类别向下传递前一个活动.来自奥利维尔的回答.这段代码崩溃了应用程序,我不明白为什么.在此if语句之后使用变量cont_array来填充ListView.任何人都有任何想法我错了,LogCat中没有任何东西可以告诉我哪里失败了?

解决方法

在您的活动内部执行以下操作:

public class DBACt extends Activity {
    private DataHelper dh;

    @Override
    public void onCreate(Bundle savedInstanceStatE) {
        super.onCreate(savedInstanceStatE);

        //init your activity here
        //e.g. setContentView(R.layout.main);

        dh = new DataHelper(this);
        sqliteDatabase db = dh.getReadableDatabase();
        cursor cursor = db.query("books","title desc");
        if (cursor.moveToFirst()) {
            do {
                list.add(cursor.getString(0));
            } while (cursor.moveToNext());
        }
        if (cursor != null && !cursor.isClosed()) {
           cursor.close();
        }
        db.close();
    }
}

大佬总结

以上是大佬教程为你收集整理的android和java中的SQLite数据库全部内容,希望文章能够帮你解决android和java中的SQLite数据库所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。