Android数据库权限!
发布网友
发布时间:2022-04-22 01:35
我来回答
共1个回答
热心网友
时间:2022-04-11 10:09
数据库支持,无论生命线的大小每一个应用程序,除非你的应用程序只能处理简单的数据,你需要一个数据库系统来存储你的结构化数据,使用SQLite数据库,这是一个开源的Android,支持多操作系统的SQL数据库广泛应用于许多领域,如Mozilla Firefox是使用SQLite的存储配置数据,iPhone还使用SQLite来存储数据。
在Android中,您创建一个应用程序的数据库,只有它可以访问,其他应用程序无法访问位于Android设备/数据/数据/ /数据库文件夹中的数据库,在这篇文章中,您将学习如何创建和使用在Android的数据库。
SQLite数据库
使用Eclipse创建一个Android项目,命名数据库,如图1:
中国1数据库 - 使用Eclipse创建新项目的Android
创建最佳实践DBAdapter数据库的辅助类
操作是创建一个辅助类,它封装了访问数据库的所有复杂性,调用代码来讲它是透明的,所以我创建了一个帮手DBAdapter类,创建,打开,关闭和使用SQLite数据库它。
首先,在src /文件夹(在本实施例中的src / net.learn2develop.Database)下一个DBAdapter.java文件中的溶液。
在DBAdapter.java文件要使用导入所有的命名空间:
- 软件包net.learn2develop.Databases;
中国进口android.content.ContentValues;
进口android.content.Context;
进口android.database.Cursor;
进口android.database.SQLException;
进口android.database.sqlite.SQLiteDatabase;
进口android.database.sqlite .SQLiteOpenHelper;
进口android.util.Log;
公共类DBAdapter
{}
中国接下来,创建一个数据库,名为bookstitles,如图所示领域。
中国2数据库字段酒店在DBAdapter.java文件,如清单1
文件清单1中定义的常量定义DBAdapter.java不断
包net.learn2develop.Database;
进口android.content.ContentValues;
进口android.content。语境;
进口android.database.Cursor;
进口android.database.SQLException;
进口android.database.sqlite.SQLiteDatabase;
进口android.database.sqlite.SQLiteOpenHelper;
进口android.util.Log;
公共类DBAdapter
{
公共静态最后弦乐KEY_ROWID = _id;
公共静态最后弦乐KEY_ISBN = ISBN;
公共静态最后弦乐KEY_TITLE =称号;
公共静态最后弦乐KEY_PUBLISHER =发行;
私有静态最后字符串变量= DBAdapter;
私有静态最后弦乐DATABASE_NAME =书籍;
私有静态最后弦乐DATABASE_TABLE =职称;
私有静态最终诠释DATABASE_VERSION = 1;
私有静态最后弦乐DATABASE_CREATE =
创建表的标题(_id整数主键自动增量,
+ ISBN文本不为空,标题文本不为空,
+出版商文字NOT NULL); ;
私人最终上下文语境;
}
DATABASE_CREATE常数包括标题表创建SQL语句。
在DBAdapter类,你可以扩展SQLiteOpenHelper类,这是一款Android辅助类,主要用于创建数据库和版本管理。事实上,你可以覆盖的onCreate()和onUpgrade()方法,如清单2所示清单2.
DBAdapter类,涵盖了SQLiteOpenHelper的onCreate()和onUpgrade()方法登录到到网扩展类 - 软件包net.learn2develop.Database;
中国进口的Android。 content.ContentValues;
进口android.content.Context;
进口android.database.Cursor;
进口android.database.SQLException;
进口android.database.sqlite.SQLiteDatabase;
进口android.database.sqlite.SQLiteOpenHelper;
进口android.util.Log;
公共类DBAdapter
{
公共静态最后弦乐KEY_ROWID = _id;
公共静态最后弦乐KEY_ISBN = ISBN;
公共静态最后弦乐KEY_TITLE =称号;
公共静态最后弦乐KEY_PUBLISHER =发行;
私有静态最后字符串变量= DBAdapter;
私有静态最后弦乐DATABASE_NAME =书籍;
私有静态最后弦乐DATABASE_TABLE =职称;
私有静态最终诠释DATABASE_VERSION = 1;
私有静态最后弦乐DATABASE_CREATE =
创建表的标题(_id整数主键自动增量,
+ ISBN文本不为空,标题文本不为空,
+出版商文字NOT NULL);;
私人最终上下文语境;
私人DatabaseHelper DBHelper;
私人SQLiteDatabase分贝;
公共DBAdapter(上下文CTX){
this.context = CTX;
DBHelper =新DatabaseHelper(上下文);
}
私有静态类DatabaseHelper扩展SQLiteOpenHelper
{
DatabaseHelper(上下文环境){
超(背景下,DATABASE_NAME,空,DATABASE_VERSION);
}
覆盖
公共无效的onCreate(SQLiteDatabase DB){
db.execSQL(DATABASE_CREATE);
}
覆盖
公共无效onUpgrade(SQLiteDatabase分贝,INT oldVersion,
INT NEWVERSION){
Log.w(TAG,从版本升级数据库?+ oldVersion
?+到
+ NEWVERSION +,这将销毁所有旧的数据);
db.execSQL(“DROP TABLE IF EXISTS标题”);
的onCreate(DB);
}}
}
的onCreate()方法创建一个新的数据库,onUpgrade()方法用于升级数据库,它可以通过检查DATABASE_VERSION常数值来定义?实现,为onUpgrade()方法,只是简单地删除表,然后只创建一个表。追问大哥 我的数据库类没问题 在真机上就是创建不了DB文件 我虚拟机跑是没问题的 肯定是手机权限问题