html5开发的移动web app如何连接服务器数据库交互信息?

html5开发的移动web app如何连接服务器数据库交互信息?,第1张

WebRTC是一种新的Web标准,用于实现Web环境中的实时点对点通信,可以传输数据、语音和视频。有一些第三方javascript库可以方便的支持WebRTC,比如PeerJS - Simple peer-to-peer with WebRTC。但是!可惜的是,目前在“相对先进”的移动端的浏览器世界中,也只有Android Chrome 37支持它。想要利用它的优秀特性,可能只能再等等。

参见:Can I use... Support tables for HTML5, CSS3, etc。

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

package net.my.dao

import java.io.File

import java.io.FileOutputStream

import java.io.InputStream

import net.my.jokebook.R

import android.app.Activity

import android.content.Context

import android.database.sqlite.SQLiteDatabase

public class DBHelper {

//得到SD卡路径

private final String DATABASE_PATH = android.os.Environment

.getExternalStorageDirectory().getAbsolutePath()

+ "/joke"

private final Activity activity

//数据库名

private final String DATABASE_FILENAME

public DBHelper(Context context) {

// TODO Auto-generated constructor stub

//这里直接给数据库名

DATABASE_FILENAME = "jokebook.db3"

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 (!dir.exists())

b = dir.mkdir()

//判断是否存在该文件

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

{

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

InputStream is = activity.getResources().openRawResource(

R.raw.jokebook)

//创建输出流

FileOutputStream fos = new FileOutputStream(databaseFilename)

//将数据输出

byte[] buffer = new byte[8192]

int count = 0

while ((count = is.read(buffer)) >0)

{

fos.write(buffer, 0, count)

}

//关闭资源

fos.close()

is.close()

}

//得到SQLDatabase对象

SQLiteDatabase database = SQLiteDatabase.openOrCreateDatabase(

databaseFilename, null)

return database

}

catch (Exception e)

{

System.out.println(e.getMessage())

}

return null

}

}

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

这个有难度。一般不是直接访问的。

都是通过一个自己写的程序接口,来间接访问的。

原因如下:

J2ME

移动设备,上网以后,拿到的是一个

移动运营商分配的IP地址

(是不是公网还不确定)

一般企业的数据库,即使放在电信机房的,也是带防火墙,不让外部直接访问的。

否则太危险,如果外部可以直接访问,那么有人就可以先脚本,去尝试登陆数据库。

至于一般Web虚拟主机的

提供商,好像提供的数据库,也仅仅在本地提供访问,不开放公网端口的。

因此,如果你要

J2ME移动设备

访问数据库,

只能在Web服务器那里,额外写一个

Servlet

或者

JSP

之类的。

J2ME,以访问

Web

页面的方式,把

SQL

语句传递给

Servlet

或者

JSP。

然后

Servlet

或者

JSP

去访问数据库,拿到结果以后,返回给

J2ME

客户端。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存