练习使用SQLite实现数据存储

第一个Demo:

 1 package com.example.sqlitedemo;
 2 
 3 import android.os.Bundle;
 4 import android.app.Activity;
 5 import android.database.Cursor;
 6 import android.database.sqlite.SQLiteDatabase;
 7 import android.util.Log;
 8 import android.view.Menu;
 9 
10 public class MainActivity extends Activity {
11 
12     @Override
13     protected void onCreate(Bundle savedInstanceState) {
14         super.onCreate(savedInstanceState);
15         setContentView(R.layout.activity_main);
16         SQLiteDatabase db = openOrCreateDatabase("user.db", MODE_PRIVATE, null);
17         db.execSQL("create table if not exists usertb(_id integer primary key autoincrement,name text not null,age integer not null,sex text not null)");
18         db.execSQL("insert into usertb(name,sex,age) values ('阿狸','女',18)");
19         db.execSQL("insert into usertb(name,sex,age) values ('阿Q','男',32)");
20         db.execSQL("insert into usertb(name,sex,age) values ('小学生','男',9)");
21         db.execSQL("insert into usertb(name,sex,age) values ('橙哥','男',16)");
22         Cursor c = db.rawQuery("select * from usertb", null);
23         if(c != null) {
24             while(c.moveToNext()) {
25                 Log.i("info", ""+c.getInt(c.getColumnIndex("_id")));
26                 Log.i("info", ""+c.getString(c.getColumnIndex("name")));
27                 Log.i("info", ""+c.getString(c.getColumnIndex("age")));
28                 Log.i("info", ""+c.getInt(c.getColumnIndex("age")));
29                 Log.i("info","!!!!!!");
30             }
31             c.close();
32         }
33         db.close();
34     }
35 
36 }

使用原生SQL语句实现数据插入,并在Log中查询数据。

 

Demo2:

 1 package com.example.sqlitedemo2;
 2 
 3 import android.os.Bundle;
 4 import android.app.Activity;
 5 import android.content.ContentValues;
 6 import android.database.Cursor;
 7 import android.database.sqlite.SQLiteDatabase;
 8 import android.util.Log;
 9 import android.view.Menu;
10 
11 public class MainActivity extends Activity {
12 
13     @Override
14     protected void onCreate(Bundle savedInstanceState) {
15         super.onCreate(savedInstanceState);
16         setContentView(R.layout.activity_main);
17         SQLiteDatabase db = openOrCreateDatabase("stu.db", MODE_PRIVATE, null);
18         db.execSQL("create table if not exists stutb(_id integer primary key autoincrement,name text not null,sex text not null,age integer not null)");
19         ContentValues values = new ContentValues();
20         values.put("name", "阿狸");
21         values.put("sex", "男");
22         values.put("age", 18);
23         db.insert("stutb", null, values);
24         values.clear();
25         values.put("name", "Asuna");
26         values.put("sex", "男");
27         values.put("age", 16);
28         db.insert("stutb", null, values);
29         values.clear();
30         values.put("name", "Siber");
31         values.put("sex", "男");
32         values.put("age", 17);
33         db.insert("stutb", null, values);
34         values.clear();
35         values.put("name", "阿Q");
36         values.put("sex", "男");
37         values.put("age", 32);
38         db.insert("stutb", null, values);
39         values.clear();
40         values.put("name", "Lucifer");
41         values.put("sex", "男");
42         values.put("age", 99999);
43         db.insert("stutb", null, values);
44         values.clear();
45         values.put("sex", "女");
46         db.update("stutb", values, "_id<=?", new String[]{"3"});
47         db.delete("stutb", "name like ?", new String[]{"%Lu%"});
48         Cursor c = db.query("stutb", null, "_id>?", new String[]{"0"}, null, null, "age");
49         if(c != null) {
50             String[] columns = c.getColumnNames();
51             while(c.moveToNext()) {
52                 for(String columnName : columns) {
53                     Log.i("info", c.getString(c.getColumnIndex(columnName)));
54                 }
55             }
56             c.close();
57         }
58         db.close();
59     }
60 
61 }

使用ContentValues载入键值对进行数据操作。

 

Demo3:

MainActivity:

 1 package com.example.sqlitedemo3;
 2 
 3 import android.os.Bundle;
 4 import android.app.Activity;
 5 import android.database.Cursor;
 6 import android.database.sqlite.SQLiteDatabase;
 7 import android.util.Log;
 8 import android.view.Menu;
 9 
10 public class MainActivity extends Activity {
11 
12     @Override
13     protected void onCreate(Bundle savedInstanceState) {
14         super.onCreate(savedInstanceState);
15         setContentView(R.layout.activity_main);
16         DBOpenHelper helper = new DBOpenHelper(MainActivity.this, "stu.db");
17 //        helper.getReadableDatabase();
18         SQLiteDatabase db = helper.getWritableDatabase();
19         Cursor c = db.rawQuery("select * from stutb", null);
20         if(c != null) {
21             String[] columnName = c.getColumnNames();
22             while(c.moveToNext()) {
23                 for(String columns:columnName) {
24                     Log.i("info", c.getString(c.getColumnIndex(columns)));
25                 }
26             }
27             c.close();
28         }
29         db.close();
30     }
31 }

DBOpenHelper:

 1 package com.example.sqlitedemo3;
 2 
 3 import android.content.ContentValues;
 4 import android.content.Context;
 5 import android.database.sqlite.SQLiteDatabase;
 6 import android.database.sqlite.SQLiteDatabase.CursorFactory;
 7 import android.database.sqlite.SQLiteOpenHelper;
 8 
 9 public class DBOpenHelper extends SQLiteOpenHelper {
10 
11     public DBOpenHelper(Context context, String name) {
12         super(context, name, null, 1);
13         // TODO Auto-generated constructor stub
14     }
15     
16     public DBOpenHelper(Context context, String name, CursorFactory factory,
17             int version) {
18         super(context, name, factory, version);
19         // TODO Auto-generated constructor stub
20     }
21 
22     @Override
23     public void onCreate(SQLiteDatabase db) {
24         // TODO Auto-generated method stub
25         db.execSQL("create table if not exists stutb(_id integer primary key,name text not null,sex text not null,age integer not null)");
26         db.execSQL("insert into stutb(name,sex,age) values('Nico','female',16)");
27     }
28 
29     @Override
30     public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
31         // TODO Auto-generated method stub
32         
33     }
34 
35 }

使用SQLiteOpenHelper类实现数据库的创建、更新等操作。

 

生成的数据库导出后可用NaviCat软件查看信息。

posted @ 2014-12-15 16:01  青柘白芽  阅读(227)  评论(1编辑  收藏  举报