如何在移动APP中,创建sqlite数据库时在指定文件位置

如何在移动APP中,创建sqlite数据库时在指定文件位置,第1张

要在Android系统中 *** 作SQLite数据库,是通过Android的核心类SQLiteDatabase类来实现的,通常情况下为了数据库升级的需要以及使用方便,会选择继承SQLiteOpenHelper抽像类,但是SQLiteOpenHelper会将数据库文件创建在一个固定的目录(内存的/data/data/<package name/databases>目录中),如果想使用已经存在的数据库文件也就是说数据库会和程序一起发布,就得通过使用SQLiteDabase的静态方法OpenOrCreateDatabase()方法来得到SQLiteDabase对象,下面是一个具体 *** 作类:

package netmydao;

import javaioFile;

import javaioFileOutputStream;

import javaioInputStream;

import netmyjokebookR;

import androidappActivity;

import androidcontentContext;

import androiddatabasesqliteSQLiteDatabase;

public class DBHelper {

//得到SD卡路径

private final String DATABASE_PATH = androidosEnvironment

getExternalStorageDirectory()getAbsolutePath()

+ "/joke";

private final Activity activity;

//数据库名

private final String DATABASE_FILENAME;

public DBHelper(Context context) {

// TODO Auto-generated constructor stub

//这里直接给数据库名

DATABASE_FILENAME = "jokebookdb3";

activity = (Activity)context;

}

//得到 *** 作数据库的对象

public SQLiteDatabase openDatabase()

{

try

{

boolean b = false;

//得到数据库的完整路径名

String databaseFilename = DATABASE_PATH + "/" + DATABASE_FILENAME;

//将数据库文件从资源文件放到合适地方(资源文件也就是数据库文件放在项目的res下的raw目录中)

//将数据库文件复制到SD卡中 File dir = new File(DATABASE_PATH);

if (!direxists())

b = dirmkdir();

//判断是否存在该文件

if (!(new File(databaseFilename))exists())

{

//不存在得到数据库输入流对象

InputStream is = activitygetResources()openRawResource(

Rrawjokebook);

//创建输出流

FileOutputStream fos = new FileOutputStream(databaseFilename);

//将数据输出

byte[] buffer = new byte[8192];

int count = 0;

while ((count = isread(buffer)) > 0)

{

foswrite(buffer, 0, count);

}

//关闭资源

fosclose();

isclose();

}

//得到SQLDatabase对象

SQLiteDatabase database = SQLiteDatabaseopenOrCreateDatabase(

databaseFilename, null);

return database;

}

catch (Exception e)

{

Systemoutprintln(egetMessage());

}

return null;

}

}

写完这个类之后,就能得到SQLiteDatabase对象,就能对数据库 *** 作了。

Navicat Premium是一款(收费性)数据库管理工具。但其软件小巧功能强大,安装简单使用方便,支持中文视图界面,支持MySQL、SQL Server、Oracle等多种数据库,支持Windows、Mac OS X、Linux主流系统,故此深受广大使用者喜欢。

通过此经验学会如何使用Navicat创建MySQL数据库后,在创建SQL Server、Oracle、SQLite、MariaDB等数据库也就会了。

如何使用Navicat创建MySQL数据库呢?

工具/原料

示例数据库:MySQL 57

示例版本:Navicat Premium 11017(windows)

方法/步骤

运行“Navicat Premium”数据库管理工具。

新建MySQL数据库连接,点击“连接--MySQL”。

连接MySQL服务器,建议先做“连接测试”,其次在“确定”连接。

注:若连接非本地MySQL服务器,首先要ping通被连服务器IP,其次被连服务器准予远程连接MySQL数据库。

双击“本地MySQL数据库”打开数据库,右击鼠标后选择“新建数据库”。

5

新建数据库,填写数据库名(必填)、字符集(可空)、排序规则(可空),最后"确定"完成test数据库创建。

注:若字符集、排序规则为空,数据库创建后会自动添加上。

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 中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/。

以上就是关于如何在移动APP中,创建sqlite数据库时在指定文件位置全部的内容,包括:如何在移动APP中,创建sqlite数据库时在指定文件位置、navicat怎么创建sqlite、androidstudio 怎么创建sqlite数据表等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9726108.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存