练习使用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软件查看信息。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。