



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年浙江省建筑安全员《B证》考试题库
- 《公共政策学》题库及答案 2
- 西安信息职业大学《商业伦理》2023-2024学年第二学期期末试卷
- 2024-2025学年山东省聊城市高唐县第二中学高三上学期12月月考历史试卷
- 武汉船舶职业技术学院《R语言与数据可视化》2023-2024学年第二学期期末试卷
- 湖南财经工业职业技术学院《斜视弱视学》2023-2024学年第二学期期末试卷
- 2025青海省安全员《C证》考试题库
- 潍坊理工学院《经济统计学》2023-2024学年第二学期期末试卷
- 临夏现代职业学院《数字信号处理A》2023-2024学年第二学期期末试卷
- 平顶山学院《安全类专业写作》2023-2024学年第二学期期末试卷
- Photoshop+2024学习手册:第1课认识与操作基础
- 《不同血流限制训练方案对膝关节损伤运动员下肢功能的影响》
- 药品经营企业(批发和零售)面临的风险点和应对措施
- 基本公共卫生服务项目培训
- 北师大版(2024新版)七年级上册数学期末模拟测试卷(含答案)
- 无人机组装与调试 课件 项目1任务1 多旋翼无人机飞行平台组装调试
- 消防行业岗位培训与校企联合方案
- 中国通 用技术集团招聘笔试题库
- 自动化部门的发展规划
- 2024年中国天然橡胶产业数据分析简报-农小蜂
- 《S公司客户开发与维护策略改进探究》开题报告10000字
评论
0/150
提交评论