Android之SQLite数据库的使用

SQLite是比较小而功能比较全的关系型数据库,下面介绍一下SQLite数据库的使用方法,及增删改查操作。

创建一个Android项目;

首先我们需要创建一个DatabaseHelper这个助手类,源码:

[html]  view plain  copy
  1. package cn.android.sword.sqlite.db;  
  2.   
  3. import android.content.Context;  
  4. import android.database.sqlite.SQLiteDatabase;  
  5. import android.database.sqlite.SQLiteDatabase.CursorFactory;  
  6. import android.database.sqlite.SQLiteOpenHelper;  
  7. import android.util.Log;  
  8.   
  9. public class DatabaseHelper extends SQLiteOpenHelper{  
  10.     private static final int VERSION = 1;  
  11.     private static final String SWORD="SWORD";  
  12.     //三个不同参数的构造函数  
  13.     //带全部参数的构造函数,此构造函数必不可少  
  14.     public DatabaseHelper(Context context, String name, CursorFactory factory,  
  15.             int version) {  
  16.         super(context, name, factory, version);  
  17.           
  18.     }  
  19.     //带两个参数的构造函数,调用的其实是带三个参数的构造函数  
  20.     public DatabaseHelper(Context context,String name){  
  21.         this(context,name,VERSION);  
  22.     }  
  23.     //带三个参数的构造函数,调用的是带所有参数的构造函数  
  24.     public DatabaseHelper(Context context,String name,int version){  
  25.         this(context, name,null,version);  
  26.     }  
  27.     //创建数据库  
  28.     public void onCreate(SQLiteDatabase db) {  
  29.         Log.i(SWORD,"create a Database");  
  30.         //创建数据库sql语句  
  31.         String sql = "create table user(id int,name varchar(20))";  
  32.         //执行创建数据库操作  
  33.         db.execSQL(sql);  
  34.     }  
  35.   
  36.     @Override  
  37.     public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {  
  38.         //创建成功,日志输出提示  
  39.         Log.i(SWORD,"update a Database");  
  40.     }  
  41.   
  42. }  

布局资源文件:

[html]  view plain  copy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:layout_width="fill_parent"  
  4.     android:layout_height="fill_parent"  
  5.     android:orientation="vertical" >  
  6.   
  7.     <Button   
  8.         android:id="@+id/createDatabase"  
  9.         android:layout_width="fill_parent"  
  10.         android:layout_height="wrap_content"  
  11.         android:text="@string/createDatabse"/>  
  12.     <Button   
  13.         android:id="@+id/updateDatabase"  
  14.         android:layout_width="fill_parent"  
  15.         android:layout_height="wrap_content"  
  16.         android:text="@string/updateDatabase"/>  
  17.     <Button   
  18.         android:id="@+id/insert"  
  19.         android:layout_width="fill_parent"  
  20.         android:layout_height="wrap_content"  
  21.         android:text="@string/insert"/>  
  22.     <Button   
  23.         android:id="@+id/update"  
  24.         android:layout_width="fill_parent"  
  25.         android:layout_height="wrap_content"  
  26.         android:text="@string/update"/>  
  27.     <Button   
  28.         android:id="@+id/query"  
  29.         android:layout_width="fill_parent"  
  30.         android:layout_height="wrap_content"  
  31.         android:text="@string/query"/>  
  32.     <Button   
  33.         android:id="@+id/delete"  
  34.         android:layout_width="fill_parent"  
  35.         android:layout_height="wrap_content"  
  36.         android:text="@string/delete"/>  
  37.       
  38. </LinearLayout>  

在Activity中进行增删改查操作,源码:

[html]  view plain  copy
  1. package cn.android.sword.sqlite;  
  2.   
  3. import cn.android.sword.sqlite.db.DatabaseHelper;  
  4. import android.app.Activity;  
  5. import android.content.ContentValues;  
  6. import android.database.Cursor;  
  7. import android.database.sqlite.SQLiteDatabase;  
  8. import android.os.Bundle;  
  9. import android.util.Log;  
  10. import android.view.View;  
  11. import android.view.View.OnClickListener;  
  12. import android.widget.Button;  
  13.   
  14. public class SQLiteActivity extends Activity implements OnClickListener{  
  15.     private final static String SWORD="SWORD";  
  16.     //声明五个控件对象  
  17.     Button createDatabase=null;  
  18.     Button updateDatabase=null;  
  19.     Button insert=null;  
  20.     Button update=null;  
  21.     Button query=null;  
  22.     Button delete=null;  
  23.       
  24.     public void onCreate(Bundle savedInstanceState) {  
  25.         super.onCreate(savedInstanceState);  
  26.         setContentView(R.layout.main);  
  27.         findViews();  
  28.     }  
  29.   
  30.     private void findViews() {  
  31.         //根据控件ID得到控件  
  32.         createDatabase = (Button) this.findViewById(R.id.createDatabase);  
  33.         updateDatabase = (Button) this.findViewById(R.id.updateDatabase);  
  34.         insert = (Button) this.findViewById(R.id.insert);  
  35.         update = (Button) this.findViewById(R.id.update);  
  36.         query = (Button) this.findViewById(R.id.query);  
  37.         delete = (Button) this.findViewById(R.id.delete);  
  38.         //添加监听器  
  39.         createDatabase.setOnClickListener(this);  
  40.         updateDatabase.setOnClickListener(this);  
  41.         insert.setOnClickListener(this);  
  42.         update.setOnClickListener(this);  
  43.         query.setOnClickListener(this);  
  44.         delete.setOnClickListener(this);  
  45.     }  
  46.   
  47.     @Override  
  48.     public void onClick(View v) {  
  49.         //判断所触发的被监听控件,并执行命令  
  50.         switch(v.getId()){  
  51.         //创建数据库  
  52.         case R.id.createDatabase:  
  53.             //创建一个DatabaseHelper对象  
  54.             DatabaseHelper dbHelper1 = new DatabaseHelper(SQLiteActivity.this, "test_db");  
  55.             //取得一个只读的数据库对象  
  56.             SQLiteDatabase db1 = dbHelper1.getReadableDatabase();  
  57.             break;  
  58.         //更新数据库  
  59.         case R.id.updateDatabase:  
  60.             DatabaseHelper dbHelper2 = new DatabaseHelper(SQLiteActivity.this, "test_db", 2);  
  61.             SQLiteDatabase db2 = dbHelper2.getReadableDatabase();  
  62.             break;  
  63.         //插入数据  
  64.         case R.id.insert:  
  65.             //创建存放数据的ContentValues对象  
  66.             ContentValues values = new ContentValues();  
  67.             //像ContentValues中存放数据  
  68.             values.put("id", 1);  
  69.             values.put("name","zhangsan");  
  70.             DatabaseHelper dbHelper3 = new DatabaseHelper(SQLiteActivity.this, "test_db");  
  71.             SQLiteDatabase db3 = dbHelper3.getWritableDatabase();  
  72.             //数据库执行插入命令  
  73.             db3.insert("user", null, values);  
  74.             break;  
  75.         //更新数据信息  
  76.         case R.id.update:  
  77.             DatabaseHelper dbHelper4 = new DatabaseHelper(SQLiteActivity.this, "test_db");  
  78.             SQLiteDatabase db4 = dbHelper4.getWritableDatabase();  
  79.             ContentValues values2 = new ContentValues();  
  80.             values2.put("name", "xiaosan");  
  81.             db4.update("user", values2, "id=?", new String[]{"1"});  
  82.             break;  
  83.         //查询信息  
  84.         case R.id.query:  
  85.             DatabaseHelper dbHelper5 = new DatabaseHelper(SQLiteActivity.this, "test_db");  
  86.             SQLiteDatabase db5 = dbHelper5.getReadableDatabase();  
  87.             //创建游标对象  
  88.             Cursor cursor = db5.query("user", new String[]{"id","name"}, "id=?", new String[]{"1"}, null, null, null, null);  
  89.             //利用游标遍历所有数据对象  
  90.             while(cursor.moveToNext()){  
  91.                 String name = cursor.getString(cursor.getColumnIndex("name"));  
  92.                 //日志打印输出  
  93.                 Log.i(SWORD,"query-->"+name);  
  94.             }  
  95.             break;  
  96.         //删除记录  
  97.         case R.id.delete:  
  98.             DatabaseHelper dbHelper6 = new DatabaseHelper(SQLiteActivity.this,"test_db");  
  99.             SQLiteDatabase db6 = dbHelper6.getWritableDatabase();  
  100.             db6.delete("user", "id=?", new String[]{"1"});  
  101.             break;  
  102.         default:  
  103.             Log.i(SWORD,"error");  
  104.             break;  
  105.         }  
  106.     }  
  107. }  

在虚拟机中运行:


点击createDatabase按钮查看日志输出:


我们看到成功打印了语句,说明我们的数据库已经创建完毕,那么我们在哪里找到这个数据库呢,当然,有很多中方法,我采用的是一种相对比较麻烦的,不过我用的很顺手,

在File Explorer下的data下的data文件夹中找到我们创建该项目时的包名(cn.android.sword.sqlite),

导出test_db文件,打开这个数据库文件我们可以用SQLite Expert或Navicat软件,我用的是Navicat;

将test_db导入到软件中就可以查看了,一次点击insert,update,query和delete可以看到数据库中数据变化的预期

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值