Articles of sqliteopenhelper

在Libgdx中使用SQLite数据库

我是Libgdx的新手,我在游戏中使用数据库时遇到了麻烦。 我搜索了一个关于如何使用Libgdx使SQLite在Android和桌面应用程序上工作的教程,但我没有find一个简单的教程。 我最后一次在Android中使用数据库时,创建了一个从SQLiteOpenHelper扩展的类。 有没有一种简单的方法来使用Libgdx做同样的事情? 或者至少,有人能指出我一步一步的教程或类似的东西吗? 编辑 我忘了说我正在寻找能够管理SQLiteOpenHelper版本的SQLiteOpenHelper 。 换句话说,当我在代码上更改我的数据库版本时,我想在apk安装上在Android中重新创建我的数据库。 解 在@42n4回答之后,我设法了如何使用Android应用程序上的SQLiteOpenHelper和桌面应用程序上的JDBC连接到SQLite数据库。 首先,我为桌面和Android应用程序创建了一个“通用类”: //General class that needs to be implemented on Android and Desktop Applications public abstract class DataBase { protected static String database_name=”recycling_separation”; protected static DataBase instance = null; protected static int version=1; //Runs a sql query like “create”. public abstract void execute(String sql); //Identical […]

资产文件夹中的数据库文件。 它会被更新吗?

我是Android SQLite的新手。 这就是我所拥有的: 我的assets文件夹中有db.sqlite 。 db的意图是READ ONLY。 用户不会写信给它。 当应用程序更新时, db.sqlite将被替换为新的数据库(我将从项目中删除旧文件并添加新文件)。 我关心的是: 旧的db文件会被删除吗? (这就是我想要的;用新的替换旧的) 为什么这么问? 因为当我调试我的应用程序时,每次更新db文件时,我都需要从设备上卸载应用程序以强制进行更新。 用户在从Play商店更新我的应用程序时是否需要执行相同的操作? 我很害怕。 这会受到我实现onCreate(SQLiteDatabase)和onUpgrade(SQLiteDatabase,int,int)的影响吗? 如果是,那么实施它们以满足我的要求的正确方法是什么? 这是我扩展SQLiteOpenHelper类的方法。 我按照我在互联网上find的教程: import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import android.content.Context; import android.database.Cursor; import android.database.SQLException; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteException; import android.database.sqlite.SQLiteOpenHelper; import android.util.Log; public class DataBaseHelper extends SQLiteOpenHelper{ //The Android’s default system path of your […]

没有事先close()Android的游标最终确定

在我的应用程序中,我有一个listview。 我通过SQLiteDatabase中的查询获取数据。 当我从db获取数据时,我收到此错误: 当我从第20行到第21行时发生。 我尝试将cursor.deactivate()和cursor.close()放在regel 50上。但没有结果。 任何人都知道我为什么会得到这个错误以及如何解决它? 谢谢 :)

混淆:SQLiteOpenHelper onUpgrade()如何表现? 和导入旧数据库备份一起?

假设我在SQLiteOpenHelper中有一个包含2列的数据库表test_table和相应的创建脚本: DB_VERSION = 1: public void onCreate(SQLiteDatabase db) { db.execSql(“CREATE table test_table (COL_A, COL_B); } 这是最初的应用版本1,发布在Play商店中。 过了一会儿,应用程序和使用的数据库都有更新。 我想SQLiteOpenHelper类必须像这样调整: DB_VERSION = 2: public void onCreate(SQLiteDatabase db) { db.execSql(“CREATE table test_table (COL_A, COL_B, COL_C)”); } public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSql(“ALTER TABLE test_table ADD Column COL_C”); } 一段时间后,另一个应用更新: DB_VERSION = 3: public void […]

在Android应用程序中存储用户名和密码的最佳选择

我正在开发一个应用程序,用户需要登录才能执行操作……但主要是在Android手机上使用“让我登录”……在这种情况下,我必须保持用户名和密码的值我的应用程序……应该使用首选项,还是SQLite Db,还是有其他东西,我怎样才能使它安全? Plz帮助…在此先感谢..

困惑于SQLiteOpenHelper和创build多个表

我觉得Android开发人员有关在SQLite中保存数据的指导方针真的很缺乏。 当我涉及到多个表格的时候,我对这个一般性的指南是什么感到困惑。 我目前有两个经理向用户界面公开(CRUD)两个不同的实体集。 我是否: 在每个pipe理器中创build一个私有类SQLiteOpenHelper。 每个助手将有自己的onCreate自己的表? 要么 创build一个公共类SQLiteOpenHelper创buildTABLE的? 我没有看到任何明显的优势,使用上面的一个,但我看到他们两个正在使用。 Android对此有何评论?

Android Studio中的“android.database.sqlite.SQLitepenhelper”中没有可用的默认构造函数

尝试扩展类与SQLiteOpenHelper,但是这个错误显示:“没有默认构造函数在android.database.sqlite.SQLitepenhelper”与其他“无法parsing符号类别,注意,…” class DbHelper extends SQLiteOpenHelper { @Override public void onCreate(SQLiteDatabase db) { db.execSQL(Category.getSql()); db.execSQL(Note.getSql()); db.execSQL(Attachment.getSql()); db.execSQL(CheckItem.getSql()); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS " + Category.TABLE_NAME); db.execSQL("DROP TABLE IF EXISTS " + Note.TABLE_NAME); db.execSQL("DROP TABLE IF EXISTS " + Attachment.TABLE_NAME); db.execSQL("DROP TABLE IF EXISTS " + CheckItem.TABLE_NAME); […]

为什么我们需要onUpgrade(); 方法在SQLiteOpenHelper类中

我遵循这个教程。 http://www.androidhive.info/2011/11/android-sqlite-database-tutorial/ 任何机构可以让我清除这个代码块。 // Creating Tables @Override public void onCreate(SQLiteDatabase db) { String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_CONTACTS + "(" + KEY_ID + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT," + KEY_PH_NO + " TEXT" + ")"; db.execSQL(CREATE_CONTACTS_TABLE); } // Upgrading database @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) […]

SQLiteOpenHelper同步

所以我想出了一些想法,我想知道它是否可以实现。 比方说,我有多个表(数据库模型),每个表都由一些类来表示。我不会用开放的帮助器来使用单例模式,所以我创build了一些简单的类来提供单个数据库实例。我的的想法是,只要所有的表持有对SQLiteDatabase的引用(由开放的帮助器返回),他们都将使用相同的数据库实例,可能不需要同步工作与数据库,因为打开帮助器这样做。最后一个表完成它的工作GC将收集打开帮助(因为最后一个引用将是弱引用) – >调用finalize(),并在此方法中closures数据库,以防止从操作系统的任何警告。 我的问题是:这是否可以工作?它会自动closures数据库,将泄漏或抛出一些exception? 这是我的class级: public class DatabaseHelper { private static WeakReference<SomeCustomOpenHelper> sDBOpenHelper; private void notifyDBCreate(SQLiteDatabase db) { for (DBTable table : mTables) { table.onDBCreate(db); } } private void notifyDBUpgrade(SQLiteDatabase db) { for (DBTable table : mTables) { table.onDBUpgrade(db); } } public SQLiteDatabase getDatabase(boolean readOnly) { SomeCustomOpenHelper dbHelper = sDBOpenHelper.get(); if (dbHelper == null) […]

在SQLiteOpenHelper的onCreate中获取上下文

在我的android应用程序:我怎样才能访问上下文SQLiteOpenHelper的onCreate方法?