如何在移动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对象,就能对数据库 *** 作了。

手机是不能直接去连接你服务器的mysql数据库

请在你的服务端写代码去连接mysql数据吧

Mysql连接方法

1 加载数据库驱动: ClassforName("orggjtmmmysqlDriver"); //加载数据库驱动

String url = "jdbc:mysql://localhost:3306/test";

String user = "root";

String passowrd = "123456";

2 获取数据库连接Connection con数= DriverManagergetConnection(url,user,password)

3 获取SQL执行器 PreparedStatement prepare = conprepareStatement("SQL语句")

4 执行SQL语句,得到结果集 ResultSet result = prepareexecuteQuery();

while(resultnext()){

  //读取结果

}

最后不要忘记导入jdbc驱动包

纯工手打字,请采纳哈

一般的数据量很小的项目,没必要使用数据库,如果只是保存写用户信息,大可以用其他的方法,用keychain或者nsuserdefault或者其他的都可以。

对于sqlite和coredata,只是两种不同的存储方法,一种是小型轻量级sqlite数据库,所有移动设备经常用到的,还有一种是苹果针对ios *** 作系统开发的coredata数据存储,可以说是各有优缺点,一般如果数据库要非常多的表格互相关联最后查询一条结果那么采用sqlite,如果存储一些有规律的数据那么就会采用coredata,没有哪个更好的说法,只能说这两种都各有千秋,而我听前辈们说,coredata只是苹果对sqlite的又一次封装而已,方便 *** 作但也局限 *** 作。

怎样将数据库和APP相连

1、用你搭建的DBHelper(继承与SQLiteOpenHelper)

2、获取到DBHelper实例,调用getReadableDatabase()(用于读) 或者 getWritableDatabase(用于写)

3、再调用其具体方法如 insert,delete等

以上就是关于如何在移动APP中,创建sqlite数据库时在指定文件位置全部的内容,包括:如何在移动APP中,创建sqlite数据库时在指定文件位置、Android手机app 链接服务器的mysql 读取数据库、手机app用什么数据库比较好等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存