android 数据库demo,Android 数据库使用demo

应用A

package com.example.testc;

import android.content.Context;

import android.database.sqlite.SQLiteDatabase;

import android.database.sqlite.SQLiteDatabase.CursorFactory;

import android.database.sqlite.SQLiteOpenHelper;

public class DatabaseHelper extends SQLiteOpenHelper {

//创建 表格 名字data    表格里面 主键   uid  int   ,total  text , name text

private static final String CREATE_TABLE = "create table data(_id INTEGER PRIMARY KEY autoincrement,uid int,total text,name text);";

private Context mContext;

public DatabaseHelper (Context context, String name, CursorFactory factory, int version) {

super(context, name, factory, version);

// TODO Auto-generated constructor stub

mContext = context;

}

@Override

public void onCreate(SQLiteDatabase db) {

// TODO Auto-generated method stub创建数据库后,对数据库的操作

db.execSQL(CREATE_TABLE);

}

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

// TODO Auto-generated method stub 更改数据库版本的操作

db.execSQL("drop table if exists peopleinfo");

onCreate(db);

}

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

package com.example.testc;

import java.util.ArrayList;

import android.net.Uri;

import android.os.Bundle;

import android.annotation.TargetApi;

import android.app.Activity;

import android.content.ContentResolver;

import android.content.ContentValues;

import android.content.Context;

import android.database.Cursor;

import android.database.sqlite.SQLiteDatabase;

import android.util.Log;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.TextView;

@TargetApi(23)

public class MainActivity extends Activity {

private Context mcontext;

private TextView IEMI;

MapBroadcast mapReceiver;

DatabaseHelper helper;

SQLiteDatabase db;

ArrayList< Appinfo> lists ;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

mcontext = getApplicationContext();

initView();

helper = new DatabaseHelper(MainActivity.this, "mydb.db", null, 1);

db = helper.getWritableDatabase();

lists = new ArrayList();

/* 创建一个MySQLiteOpenHelper,该语句执行是不会创建或打开连接的 */

}

private void initView() {

// TODO Auto-generated method stub

IEMI = (TextView) findViewById(R.id.hello);

Button bt = (Button) findViewById(R.id.bt);

Button bt1 = (Button)findViewById(R.id.bt1);

Button bt2 = (Button)findViewById(R.id.bt3);

bt.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

db.execSQL("DELETE FROM data"); //插入前清空表格

for (int i = 0; i < 10; i++) {

ContentValues values = new ContentValues();

values.put("uid", i);

values.put("total", "12MB");

values.put("name", "zhangsan");

// 插入数据

db.insert("data", null, values);

}

}

});

bt1.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

//清空表格数据

testQuery();

}

});

bt2.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

//查询数据

Cursor cursor = db.query("data", null, null, null, null, null, null);

lists.clear();

while (cursor.moveToNext()) {

String uid = cursor.getString(cursor.getColumnIndex("uid"));

String total = cursor.getString(cursor.getColumnIndex("total"));

String name = cursor.getString(cursor.getColumnIndex("name"));

Appinfo appinfo=new Appinfo(uid, total, name);

/*  Log.e("TAG", "[uid]="+uid+"[total]="+total+"[name]="+name);

*/                      appinfo.setName(name);

appinfo.setTotal(total);

appinfo.setUid(uid);

lists.add(appinfo);

}

cursor.close();

if(lists.size() > 0){

for (Appinfo listappinfo : lists) {

Log.e("data", "[info]="+listappinfo.toString());

}

}

}

});

}

@Override

protected void onDestroy() {

// TODO Auto-generated method stub

super.onDestroy();

}

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

数据库对外提供接口 内容提供者

package com.example.testc;

import android.content.ContentProvider;

import android.content.ContentUris;

import android.content.ContentValues;

import android.content.UriMatcher;

import android.database.Cursor;

import android.database.sqlite.SQLiteDatabase;

import android.net.Uri;

public class AppTotalContentProvider extends ContentProvider {

private DatabaseHelper dbHelper;

// 若不匹配采用UriMatcher.NO_MATCH(-1)返回

private static final UriMatcher MATCHER = new UriMatcher(UriMatcher.NO_MATCH);

// 匹配码

private static final int CODE_NOPARAM = 1;

static

{

// 对等待匹配的URI进行匹配操作,必须符合cn.xyCompany.providers.personProvider/person格式

// 匹配返回CODE_NOPARAM,不匹配返回-1

MATCHER.addURI("com.example.testc", "data", CODE_NOPARAM);

}

@Override

public boolean onCreate() {

// TODO Auto-generated method stub

dbHelper = new DatabaseHelper(this.getContext(), "mydb.db", null, 1);

return true;

}

@Override

public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {

// TODO Auto-generated method stub

SQLiteDatabase db = dbHelper.getReadableDatabase();

return db.query("data", projection, selection, selectionArgs, null, null, sortOrder);

}

@Override

public String getType(Uri uri) {

// TODO Auto-generated method stub

return null;

}

@Override

public Uri insert(Uri uri, ContentValues values) {

// TODO Auto-generated method stub

SQLiteDatabase db = dbHelper.getWritableDatabase();

// 特别说一下第二个参数是当name字段为空时,将自动插入一个NULL。

long rowid = db.insert("data", "null", values);

Uri insertUri = ContentUris.withAppendedId(uri, rowid);// 得到代表新增记录的Uri

this.getContext().getContentResolver().notifyChange(uri, null);

return insertUri;

}

@Override

public int delete(Uri uri, String selection, String[] selectionArgs) {

// TODO Auto-generated method stub

return 0;

}

@Override

public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {

// TODO Auto-generated method stub

return 0;

}

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

//插入数据到数据库

ContentResolver contentResolver = getContentResolver();

Uri insertUri = Uri.parse("content://com.example.testc/data");

ContentValues values = new ContentValues();

values.put("name", "wangkuifeng");

values.put("uid", "1111");

values.put("total", "123M");

Uri uri = contentResolver.insert(insertUri, values);

1

2

3

4

5

6

7

8

在AndroidManifest.xml 添加

android:name="com.example.testc.AppTotalContentProvider"

android:authorities="com.example.testc"

android:exported="true" />

1

2

3

4

5

测试: 应用B

package com.example.testb;

import android.app.Activity;

import android.content.ContentResolver;

import android.database.Cursor;

import android.net.Uri;

import android.os.Bundle;

import android.util.Log;

import android.view.Menu;

import android.view.MenuItem;

public class MainActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

testQuery();

}

public void testQuery(){

Uri uri = Uri.parse("content://com.example.testc/data");

ContentResolver resolver = this.getContentResolver();

Cursor cursor = resolver.query(uri, new String[]{"uid","name","total"}, null, null, null);

while(cursor.moveToNext()){

String uid=  cursor.getString(cursor.getColumnIndex("uid"));

String name = cursor.getString(cursor.getColumnIndex("name"));

String total =  cursor.getString(cursor.getColumnIndex("total"));

Log.e("TAG", "[uid]="+uid+"[total]="+total +"[name]="+name);

}

cursor.close();

}

}

---------------------

标签:

数据库

分享:

评论:

你还没有登录,请先登录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值