android 中SQliteDatabase数据库使用SQLiteOpenHelper辅助类来创建SQLite数据库视图,如下代码:
create view 表名 as 定义SQLiteOpenHelper类是一个辅助类,用于创建或打开数据库。
该类的使用方法一般是自定义一个子类,继承自SQLiteOpenHelper,并覆写其中最关键的两个方法:onCreate(SQLiteDatabase db)和onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)。当新建一个数据库时会调用前者,一般在里面做一些创建表或视图的 *** 作。数据库版本升级时则会调用后者。
定义好子类后(假如叫SqlHelper),只要调用SqlHelper对象的getReadableDatabase()方法或getWritableDatabase()方法即可返回一个SQLiteDatabase对象。如果是第一次调用,则会创建数据库。随后可使用SQLiteDatabase对象的方法进行数据 *** 作,如:execSQL(), insert(), update(), query(), rawQuery(), delete()等。
PS:通过该方法创建的数据库存放的目录是固定的,其路径为/data/data/packageName/databases/。
SQLiteDatabase
db
=
thisgetReadableDatabase();
String
sql
=
"Create
TABLE
IF
NOT
EXISTS
"
+
用户输入的表名
+
"
(表结构字段);";
dbexecSQL(sql1);
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。
在SD卡上创建数据库
通过android的SQLiteOpenHelper类的源码,可以看到SQLiteOpenHelper类的getWritableDatabase
这个接口实际上调用的是Context的openOrCreateDatabase方法,而这个方法是不支持带路径的数据库名
称的,也就是说,用这个方法创建的数据库只能放在/data/data/包名称/ 目录下;要想在SD卡上创建数据库
,我们可以调用SQLiteDatabase类的openOrCreateDatabase方法,这个方法是支持带路径的数据库名称的。
那么下面的问题就是如何判断是否存在SD卡,已经如何获取SD卡的路径了?
判断是否存在SD卡:
androidosEnvironmentMEDIA_MOUNTEDequals(
androidosEnvironmentgetExternalStorageState());
获取SD卡路径:String dbPath=androidosEnvironmentgetExternalStorageDirectory()
getAbsolutePath();
在SD卡上创建数据库方法如下:
String dbPath=androidosEnvironmentgetExternalStorageDirectory()
getAbsolutePath()+"/database";
File dbp=new File(dbPath);
File dbf=new File(dbPath+"/"+"testdb");
if(!dbpexists()){
dbpmkdir();
}
//数据库文件是否创建成功
boolean isFileCreateSuccess=false;
if(!dbfexists()){
try{
isFileCreateSuccess=dbfcreateNewFile();
}
catch(IOException ioex){
}
}
else{
isFileCreateSuccess=true;
}
if(isFileCreateSuccess)
db = SQLiteDatabaseopenOrCreateDatabase(dbf, mFactory);
为了简便起见,我们可以用上述方法重写SQLiteOpenHelper类的getWritableDatabase方法,
其他逻辑参照SQLiteOpenHelper类即可。最后别忘了,加入SD卡的读写权限:
<uses-permission android:name="androidpermissionWRITE_EXTERNAL_STORAGE"/>。
1使用intelij idea创建一个andorid项目
2创建如下工具类:
MyDBHelperjava
package comamosandroid_database;
import androidcontentContext;
import androiddatabasesqliteSQLiteDatabase;
import androiddatabasesqliteSQLiteOpenHelper;
import androidutilLog;
/
Created by amosli on 14-6-10
/
public class MyDBHelper extends SQLiteOpenHelper{
/
创建数据库的构造方法
@param context 应用程序上下文
name 数据库的名字
factory 查询数据库的游标工厂一般情况下用sdk默认的
version 数据库的版本一般大于0
/
public MyDBHelper(Context context) {
super(context, "testdb", null, 4);
}
private String tag = "MyDBHelperclass";
/
在数据库第一次创建时会执行
@param db
/
@Override
public void onCreate(SQLiteDatabase db) {
Logd(tag,"onCreate");
//创建一个数据库
dbexecSQL("create table person (personid integer primary key autoincrement ,name varchar(30) )");
}
/
更新数据的时候调用的方法
@param db
@param oldVersion
@param newVersion
/
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Logd(tag,"onUpgrade");
//增加一列
dbexecSQL("alter table person add phone varchar(13) null");
}
}
MyActivityjava
package comamosandroid_database;
import androidappActivity;
import androidosBundle;
public class MyActivity extends Activity {
/
Called when the activity is first created
/
@Override
public void onCreate(Bundle savedInstanceState) {
superonCreate(savedInstanceState);
setContentView(Rlayoutmain);
MyDBHelper myDBHelper = new MyDBHelper(this);
myDBHelpergetReadableDatabase();
myDBHelperclose();
}
}
3打开生成的testdb
1)下载安装SQLiteStudio(SQLite的可视化工具)
下载地址:>
Android 不自动提供数据库。在 Android 应用程序中使用 SQLite,必须自己创建数据库,然后创建表、索引,填充数据。Android 提供了 SQLiteOpenHelper 帮助你创建一个数据库,你只要继承 SQLiteOpenHelper 类,就可以轻松的创建数据库。SQLiteOpenHelper 类根据开发应用程序的需要,封装了创建和更新数据库使用的逻辑。SQLiteOpenHelper 的子类,至少需要实现三个方法:
构造函数,调用父类 SQLiteOpenHelper 的构造函数
onCreate()方法;// TODO 创建数据库后,对数据库的 *** 作
onUpgrage()方法。// TODO 更改数据库版本的 *** 作
当你完成了对数据库的 *** 作(例如你的 Activity 已经关闭),需要调用 SQLiteDatabase 的 Close() 方法来释放掉数据库连接。
通常来说,一个android应用程序不止一个Activity(活动),更不止一个界面。于是需要创建多个Activity来满足应用程序的要求,这里我将告诉大家如何添加新的Activity,并实现Activity之间的切换,这里的两个活动以不同界面展示,活动的切换相当于界面的切换。
Android studio
Android手机或者安卓模拟器
首先创建一个Test项目工程,选择默认版式,选择好自己喜欢的主题(Theme)。
Android studio教程:[6]创建多个Activity
在文件管理器中找到layout下的xml文件,并将其复制粘贴一份到layout目录下,命名为second_activityxml。
Android studio教程:[6]创建多个Activity
接下来在java文件处新建一个java class,命名为SecondActivity。
Android studio教程:[6]创建多个Activity
Android studio教程:[6]创建多个Activity
此时可以看到文件目录中多出来一个xml文件和一个java类文件。
Android studio教程:[6]创建多个Activity
打开AndroidManifestxml文件,添加一个<activity></activity>标签,添加内容如下:
<activity
android:name="SecondActivity"
android:label="Second Activity">
<intent-filter>
<action android:name="comlitreilySecondActivity"/>
<category android:name="androidintentcategoryDEFAULT"/>
</intent-filter>
</activity>
Android studio教程:[6]创建多个Activity
修改SecondActivityxml:
<TextView
android:text="The Second Activity!"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
Android studio教程:[6]创建多个Activity
修改SecondActivityjava文件:
public class SecondActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
superonCreate(savedInstanceState);
setContentView(RlayoutSecondActivity);
}
}
Android studio教程:[6]创建多个Activity
修改主界面的activity_myxml文件,添加一个按钮,用于跳转Activity:
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="转到下一个界面"
android:onClick="onClick"/>
Android studio教程:[6]创建多个Activity
在主界面的java类中实现按钮的点击事件响应函数onClick,通过startActivity函数打开新的Activity
public void onClick(View view)
{
startActivity(new Intent("comlitreilySecondActivity"));
}
Android studio教程:[6]创建多个Activity
设置采用模拟器打开App,并启动调试打开模拟器。
Android studio教程:[6]创建多个Activity
在模拟器中运行程序,点击按钮可以切换Activity,在第二个界面点击返回键可以返回主界面。
Android studio教程:[6]创建多个Activity
Android studio教程:[6]创建多个Activity
注意事项
xml文件的命名为小写字母或者数字,大写字母可能会报错
以上就是关于如何通过Android SQLiteDatabase 创建SQLite数据库视图全部的内容,包括:如何通过Android SQLiteDatabase 创建SQLite数据库视图、android 如何让用户创建数据库、android怎么在手机SD卡上创建SQLite数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)