Android数据库SQLite的简单示例.docx

上传人:b****4 文档编号:6344066 上传时间:2023-05-09 格式:DOCX 页数:26 大小:286.04KB
下载 相关 举报
Android数据库SQLite的简单示例.docx_第1页
第1页 / 共26页
Android数据库SQLite的简单示例.docx_第2页
第2页 / 共26页
Android数据库SQLite的简单示例.docx_第3页
第3页 / 共26页
Android数据库SQLite的简单示例.docx_第4页
第4页 / 共26页
Android数据库SQLite的简单示例.docx_第5页
第5页 / 共26页
Android数据库SQLite的简单示例.docx_第6页
第6页 / 共26页
Android数据库SQLite的简单示例.docx_第7页
第7页 / 共26页
Android数据库SQLite的简单示例.docx_第8页
第8页 / 共26页
Android数据库SQLite的简单示例.docx_第9页
第9页 / 共26页
Android数据库SQLite的简单示例.docx_第10页
第10页 / 共26页
Android数据库SQLite的简单示例.docx_第11页
第11页 / 共26页
Android数据库SQLite的简单示例.docx_第12页
第12页 / 共26页
Android数据库SQLite的简单示例.docx_第13页
第13页 / 共26页
Android数据库SQLite的简单示例.docx_第14页
第14页 / 共26页
Android数据库SQLite的简单示例.docx_第15页
第15页 / 共26页
Android数据库SQLite的简单示例.docx_第16页
第16页 / 共26页
Android数据库SQLite的简单示例.docx_第17页
第17页 / 共26页
Android数据库SQLite的简单示例.docx_第18页
第18页 / 共26页
Android数据库SQLite的简单示例.docx_第19页
第19页 / 共26页
Android数据库SQLite的简单示例.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Android数据库SQLite的简单示例.docx

《Android数据库SQLite的简单示例.docx》由会员分享,可在线阅读,更多相关《Android数据库SQLite的简单示例.docx(26页珍藏版)》请在冰点文库上搜索。

Android数据库SQLite的简单示例.docx

Android数据库SQLite的简单示例

Android数据库SQLite的使用示例

Android提供了三种数据存储方式,第一种是文件存储;第二种是SharedPreferences存储;第三种就是数据库SQLiteDatabase存储。

文件存储我就不用多说了,而SharedPreferences可以存取简单的数据(int,double,float.etc),它经常用于数据缓存,因为它读取存储简单。

详细可以参见本系列。

Android高手进阶教程(七)之----Android中Preferences的使用!

今天我们将讲一下SQLiteDatabase的使用。

而掌握SqliteDatabase,将会我们接下来掌握ContentProvider打下良好的基石。

为了让大家更好的掌握,我们手把手完成该节的Demo。

第一步:

新建一个Android工程,命名为SQLiteDatabaseDemo.

第二步:

创建一个新的类BooksDB.java这个类要继承于android.database.sqlite.SQLiteOpenHelper抽象类,我们要实现其中两个方法:

onCreate(),onUpdate.具体代码如下:

01

packagecom.android.tutor;

02

importandroid.content.ContentValues;

03

importandroid.content.Context;

04

importandroid.database.Cursor;

05

importandroid.database.sqlite.SQLiteDatabase;

06

importandroid.database.sqlite.SQLiteOpenHelper;

07

publicclassBooksDBextendsSQLiteOpenHelper{

08

privatefinalstaticStringDATABASE_NAME="BOOKS.db";

09

privatefinalstaticintDATABASE_VERSION=1;

10

privatefinalstaticStringTABLE_NAME="books_table";

11

publicfinalstaticStringBOOK_ID="book_id";

12

publicfinalstaticStringBOOK_NAME="book_name";

13

publicfinalstaticStringBOOK_AUTHOR="book_author";

14

15

publicBooksDB(Contextcontext){

16

//TODOAuto-generatedconstructorstub

17

super(context,DATABASE_NAME,null,DATABASE_VERSION);

18

}

19

//创建table

20

@Override

21

publicvoidonCreate(SQLiteDatabasedb){

22

Stringsql="CREATETABLE"+TABLE_NAME+"("+BOOK_ID

23

+"INTEGERprimarykeyautoincrement,"+BOOK_NAME+"text,"+BOOK_AUTHOR+"text);";

24

db.execSQL(sql);

25

}

26

@Override

27

publicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion){

28

Stringsql="DROPTABLEIFEXISTS"+TABLE_NAME;

29

db.execSQL(sql);

30

onCreate(db);

31

}

32

33

publicCursorselect(){

34

SQLiteDatabasedb=this.getReadableDatabase();

35

Cursorcursor=db

36

.query(TABLE_NAME,null,null,null,null,null,null);

37

returncursor;

38

}

39

//增加操作

40

publiclonginsert(Stringbookname,Stringauthor)

41

{

42

SQLiteDatabasedb=this.getWritableDatabase();

43

/*ContentValues*/

44

ContentValuescv=newContentValues();

45

cv.put(BOOK_NAME,bookname);

46

cv.put(BOOK_AUTHOR,author);

47

longrow=db.insert(TABLE_NAME,null,cv);

48

returnrow;

49

}

50

//删除操作

51

publicvoiddelete(intid)

52

{

53

SQLiteDatabasedb=this.getWritableDatabase();

54

Stringwhere=BOOK_ID+"=?

";

55

String[]whereValue={Integer.toString(id)};

56

db.delete(TABLE_NAME,where,whereValue);

57

}

58

//修改操作

59

publicvoidupdate(intid,Stringbookname,Stringauthor)

60

{

61

SQLiteDatabasedb=this.getWritableDatabase();

62

Stringwhere=BOOK_ID+"=?

";

63

String[]whereValue={Integer.toString(id)};

64

65

ContentValuescv=newContentValues();

66

cv.put(BOOK_NAME,bookname);

67

cv.put(BOOK_AUTHOR,author);

68

db.update(TABLE_NAME,cv,where,whereValue);

69

}

70

}

第三步:

修改main.xml布局如下,由两个EditText和一个ListView组成,代码如下:

01

xmlversion="1.0"encoding="utf-8"?

>

02

android="

03

04

android:

orientation="vertical"

05

android:

layout_width="fill_parent"

06

android:

layout_height="fill_parent"

07

>

08

09

android:

id="@+id/bookname"

10

android:

layout_width="fill_parent"

11

android:

layout_height="wrap_content"

12

13

>

14

15

16

android:

id="@+id/author"

17

android:

layout_width="fill_parent"

18

android:

layout_height="wrap_content"

19

>

20

21

22

android:

id="@+id/bookslist"

23

24

android:

layout_width="fill_parent"

25

android:

layout_height="wrap_content"

26

>

27

28

第四步:

修改SQLiteDatabaseDemo.java代码如下:

001

packagecom.android.tutor;

002

importandroid.app.Activity;

003

importandroid.content.Context;

004

importandroid.database.Cursor;

005

importandroid.os.Bundle;

006

importandroid.view.Menu;

007

importandroid.view.MenuItem;

008

importandroid.view.View;

009

importandroid.view.ViewGroup;

010

importandroid.widget.AdapterView;

011

importandroid.widget.BaseAdapter;

012

importandroid.widget.EditText;

013

importandroid.widget.ListView;

014

importandroid.widget.TextView;

015

importandroid.widget.Toast;

016

publicclassSQLiteDatabaseDemoextendsActivityimplementsAdapterView.OnItemClickListener{

017

privateBooksDBmBooksDB;

018

privateCursormCursor;

019

privateEditTextBookName;

020

privateEditTextBookAuthor;

021

privateListViewBooksList;

022

023

privateintBOOK_ID=0;

024

protectedfinalstaticintMENU_ADD=Menu.FIRST;

025

protectedfinalstaticintMENU_DELETE=Menu.FIRST+1;

026

protectedfinalstaticintMENU_UPDATE=Menu.FIRST+2;

027

028

publicvoidonCreate(BundlesavedInstanceState){

029

super.onCreate(savedInstanceState);

030

setContentView(R.layout.main);

031

setUpViews();

032

}

033

034

publicvoidsetUpViews(){

035

mBooksDB=newBooksDB(this);

036

mCursor=mBooksDB.select();

037

038

BookName=(EditText)findViewById(R.id.bookname);

039

BookAuthor=(EditText)findViewById(R.id.author);

040

BooksList=(ListView)findViewById(R.id.bookslist);

041

042

BooksList.setAdapter(newBooksListAdapter(this,mCursor));

043

BooksList.setOnItemClickListener(this);

044

}

045

046

@Override

047

publicbooleanonCreateOptionsMenu(Menumenu){

048

super.onCreateOptionsMenu(menu);

049

050

menu.add(Menu.NONE,MENU_ADD,0,"ADD");

051

menu.add(Menu.NONE,MENU_DELETE,0,"DELETE");

052

menu.add(Menu.NONE,MENU_DELETE,0,"UPDATE");

053

returntrue;

054

}

055

056

publicbooleanonOptionsItemSelected(MenuItemitem)

057

{

058

super.onOptionsItemSelected(item);

059

switch(item.getItemId())

060

{

061

caseMENU_ADD:

062

add();

063

break;

064

caseMENU_DELETE:

065

delete();

066

break;

067

caseMENU_UPDATE:

068

update();

069

break;

070

}

071

returntrue;

072

}

073

074

publicvoidadd(){

075

Stringbookname=BookName.getText().toString();

076

Stringauthor=BookAuthor.getText().toString();

077

//书名和作者都不能为空,或者退出

078

if(bookname.equals("")||author.equals("")){

079

return;

080

}

081

mBooksDB.insert(bookname,author);

082

mCursor.requery();

083

BooksList.invalidateViews();

084

BookName.setText("");

085

BookAuthor.setText("");

086

Toast.makeText(this,"AddSuccessed!

",Toast.LENGTH_SHORT).show();

087

}

088

089

publicvoiddelete(){

090

if(BOOK_ID==0){

091

return;

092

}

093

mBooksDB.delete(BOOK_ID);

094

mCursor.requery();

095

BooksList.invalidateViews();

096

BookName.setText("");

097

BookAuthor.setText("");

098

Toast.makeText(this,"DeleteSuccessed!

",Toast.LENGTH_SHORT).show();

099

}

100

101

publicvoidupdate(){

102

Stringbookname=BookName.getText().toString();

103

Stringauthor=BookAuthor.getText().toString();

104

//书名和作者都不能为空,或者退出

105

if(bookname.equals("")||author.equals("")){

106

return;

107

}

108

mBooksDB.update(BOOK_ID,bookname,author);

109

mCursor.requery();

110

BooksList.invalidateViews();

111

BookName.setText("");

112

BookAuthor.setText("");

113

Toast.makeText(this,"UpdateSuccessed!

",Toast.LENGTH_SHORT).show();

114

}

115

116

@Override

117

publicvoidonItemClick(AdapterView

>parent,Viewview,intposition,longid){

118

119

mCursor.moveToPosition(position);

120

BOOK_ID=mCursor.getInt(0);

121

BookName.setText(mCursor.getString

(1));

122

BookAuthor.setText(mCursor.getString

(2));

123

124

}

125

126

publicclassBooksListAdapterextendsBaseAdapter{

127

privateContextmContext;

128

privateCursormCursor;

129

publicBooksListAdapter(Contextcontext,Cursorcursor){

130

131

mContext=context;

132

mCursor=cursor;

133

}

134

@Override

135

publicintgetCount(){

136

returnmCursor.getCount();

137

}

138

@Override

139

publicObjectgetItem(intposition){

140

returnnull;

141

}

142

@Override

143

publiclonggetItemId(intposition){

144

return0;

145

}

146

@Override

147

publicViewgetView(intposition,ViewconvertView,ViewGroupparent){

148

TextViewmTextView=newTextView(mContext);

149

mCursor.moveToPosition(position);

150

mTextView.setText(mCursor.getString

(1)+"___"+mCursor.getString

(2));

151

returnmTextView;

152

}

153

154

}

155

}

第五步:

运行程序效果如下:

第六步:

查看我们所建的数据库。

有两种方法:

第一种用命令查看:

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 职业教育 > 职业技术培训

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2