【移动应用开发技术】Android SQLite3基础中如何建立数据库_第1页
【移动应用开发技术】Android SQLite3基础中如何建立数据库_第2页
【移动应用开发技术】Android SQLite3基础中如何建立数据库_第3页
【移动应用开发技术】Android SQLite3基础中如何建立数据库_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【移动应用开发技术】AndroidSQLite3基础中如何建立数据库

AndroidSQLite3基础中如何建立数据库,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面在下将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。背景SQLite是一个非常流行的嵌入式数据库,它提供了一个清爽的SQL接口,相当小的内存占用和高速的响应,更Happy

的是他还是免费的,大家都可以尽情的使用,很多牛叉的公司(诸如Adobe,Apple,Google,Sun,Symbian),开源项目(

Mozilla,PHP,Python)都在产品中装配SQLite.SQLite3特征和传统关系数据库比较有的:Sql语句:SELECTINSERTUPDATECREATEDROP数据类型:不区分大小写TEXT文本NUMERIC数值INTEGER整型REAL小数NONE无类型没有的:FOREIGNKEY外键约束RIGHTOUTERJOIN和FULLOUTERJOINALTERTABLE开始动手动手之前,确认你的机器中已经配置好如下环境:Android开发环境(怎么配置问Google,有很多)本文档适用环境Android1.01,建库方式一:命令行方式(适合调试用)可以使用adbshell进入设备后台,命令行方式手动创建,步骤如下:Eclipse中启动模拟器之后,cmd下输入进入设备Linux控制台D:\>adbshell之后进入应用data目录#cd/data/datals列表目录,查看文件,找到你的项目目录并进入查看有无databases目录,如果没有,则创建一个#mkdirdatabasescddatabases进入并创建数据库#sqlite3friends.dbsqlite3friends.dbSQLiteversion3.5.9Enter".help"forinstructionssqlite>ctrl+d退出sqlite提示符ls列表目录会看到有一个文件被创建friends.db他就是SQLite的库文件#lslsfriends.db方式二:编码方式(使用更多)android.content.Context中提供了函数,注:Activity是Context的子类openOrCreateDatabase()来创建我们的数据库db=context.openOrCreateDatabase(StringDATABASE_NAME,intContext.MODE_PRIVATE,null);StringDATABASE_NAME数据库的名字IntMODE操作模式Context.MODE_PRIVATE等CursorFactory指针工厂,本例中传入null,暂不用2,建表命令行方式#sqlite3sqlite>createtablewidgets(idintegerprimarykeyautoincrement,name

text);3,插入数据命令行增加,查询数据sqlite>insertintowidgetsvalues(null,'tom');insertintowidgetsvalues(null,'tom');sqlite>select*fromwidgets;select*fromwidgets;1|tomsqlite>API方式package

org.imti;

import

android.app.Activity;

import

android.database.Cursor;

import

android.os.Bundle;

import

android.view.View;

import

android.view.View.OnClickListener;

import

android.widget.Button;

import

android.widget.EditText;

import

android.widget.TextView;

/**

*

SQLite

Demo

*

*

供Activity私有访问的数据库

没有使用ContentProvider

方式

增加

查询数据

*

*

@author

daguangspecial@

*

*/

public

class

DbDemo

extends

Activity

{

EditText

inputTxt;

Button

btnAdd;

Button

btnViewAll;

TextView

viewAll;

DBHelper

db;

@Override

protected

void

onCreate(Bundle

savedInstanceState)

{

//

TODO

Auto-generated

method

stub

super.onCreate(savedInstanceState);

this.setContentView(R.layout.dbdemo);

//

初始化UI

btnAdd

=

(Button)

findViewById(R.id.btnAdd);

btnViewAll

=

(Button)

findViewById(R.id.btnViewAll);

viewAll

=

(TextView)

findViewById(R.id.viewAll);

inputTxt

=

(EditText)

findViewById(R.id.txtInput);

//

初始化DB

db

=

new

DBHelper(this);

//

初始化监听

OnClickListener

listener

=

new

OnClickListener()

{

public

void

onClick(View

v)

{

if

(v.getId()

==

R.id.btnAdd)

{

//

增加

db.save(inputTxt.getText().toString());

db.close();

}

else

if

(v.getId()

==

R.id.btnViewAll)

{

//

浏览所有数据

Cursor

cur

=

db.loadAll();

StringBuffer

sf

=

new

StringBuffer();

cur.moveToFirst();

while

(!cur.isAfterLast())

{

sf.append(cur.getInt(0)).append("

:

").append(

cur.getString(1)).append("\n");

cur.moveToNext();

}

db.close();

viewAll.setText(sf.toString());

}

}

};

btnAdd.setOnClickListener(listener);

btnViewAll.setOnClickListener(listener);

}

}Java代码package

org.imti;

import

android.content.Context;

import

android.database.Cursor;

import

android.database.sqlite.SQLiteDatabase;

import

android.util.Log;

/**

*

数据库操作工具类

*

*

@author

daguangspecial@

*

*/

public

class

DBHelper

{

private

static

final

String

TAG

=

"DBDemo_DBHelper";//

调试标签

private

static

final

String

DATABASE_NAME

=

"dbdemo.db";//

数据库名

SQLiteDatabase

db;

Context

context;//应用环境上下文

Activity

是其子类

DBHelper(Context

_context)

{

context

=

_context;

//开启数据库

db

=

context.openOrCreateDatabase(DATABASE_NAME,

Context.MODE_PRIVATE,null);

CreateTable();

Log.v(TAG,

"db

path="

+

db.getPath());

}

/**

*

建表

*

列名

区分大小写?

*

都有什么数据类型?

*

SQLite

3

*

TEXT

文本

NUMERIC

数值

INTEGER

整型

REAL

小数

NONE

无类型

*

查询可否发送select

?

*/

public

void

CreateTable()

{

try

{

db.execSQL("CREATE

TABLE

t_user

("

+

"_ID

INTEGER

PRIMARY

KEY

autoincrement,"

+

"NAME

TEXT"

+

");");

Log.v(TAG,

"Create

Table

t_user

ok");

}

catch

(Exception

e)

{

Log.v(TAG,

"Create

Table

t_user

err,table

exists.");

}

}

/**

*

增加数据

*

@param

id

*

@param

uname

*

@return

*/

public

boolean

save(String

uname){

String

sql="";

try{

sql="insert

into

t_user

values(null,'"+uname+"')";

db.execSQL(sql);

Log.v(TAG,"insert

Table

t_user

ok");

return

true;

}catch(Exception

e){

Log.v(TAG,"insert

Table

t_user

err

,sql:

"+sql);

return

false;

}

}

/**

*

查询所有记录

*

*

@retu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论