SQLite使用方法

来源:互联网 发布:迅雷网络 编辑:程序博客网 时间:2024/04/30 11:07
 

1、使用Sqlite的关键是创建一类,这个类继承SQLiteOpenHelper,继承的类必须重写三个方法:构造方法,onCreate方法,onUpgrate方法

2、SQLiteDatabase是直接操作数据库的对象,可以使用SQLiteOpenHelper的getReadableDatabase或 getWritableDatabase方法得到SQLiteDatabase对象。具体使用这两个方法得到的SQLiteDatabase对象的不同 点,根据方法名就可以看出。一个是得到可读的,一个是得到可写的。


实例代码:

1、布局文件

XML/HTML代码
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android "  
  3.     android:orientation="vertical" android:layout_width="fill_parent"  
  4.     android:layout_height="fill_parent">  
  5.     <Button android:id="@+id/createDatabase" android:layout_width="fill_parent"  
  6.         android:layout_height="wrap_content" android:text="Create Database"></Button>  
  7.     <Button android:id="@+id/upgrateDatabase" android:layout_width="fill_parent"  
  8.         android:layout_height="wrap_content" android:text="Upgrate Database"></Button>  
  9.     <Button android:id="@+id/insert" android:layout_width="fill_parent"  
  10.         android:layout_height="wrap_content" android:text="Insert"></Button>  
  11.     <Button android:id="@+id/update" android:layout_width="fill_parent"  
  12.         android:layout_height="wrap_content" android:text="Update"></Button>  
  13.     <Button android:id="@+id/query" android:layout_width="fill_parent"  
  14.         android:layout_height="wrap_content" android:text="Query"></Button>  
  15.     <Button android:id="@+id/delete" android:layout_width="fill_parent"  
  16.         android:layout_height="wrap_content" android:text="Delete"></Button>  
  17. </LinearLayout>  


2、自定义继承SQLiteOpenHelper的类,重写三个方法

Java代码
  1. package yyl.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.   
  8. public class DatabaseHelper extends SQLiteOpenHelper {  
  9.       
  10.     //构造函数  
  11.     public DatabaseHelper(Context context,String name,CursorFactory factory, int version)  
  12.     {  
  13.         super(context,name,factory,version);  
  14.     }  
  15.   
  16.     //该函数在第一次创建数据库的时候执行  
  17.     @Override  
  18.     public void onCreate(SQLiteDatabase db) {  
  19.         System.out.println("Creaet a database test_user and table user");  
  20.         db.execSQL("create table user (id int,name varchar(20))");  
  21.   
  22.     }  
  23.   
  24.     @Override  
  25.     public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {  
  26.         System.out.println("upgrate a database");  
  27.   
  28.     }  
  29.   
  30. }  


3、数据库操作代码

Java代码
  1. package yyl.sqlite;  
  2.   
  3. import yyl.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.view.View;  
  10. import android.widget.Button;  
  11.   
  12. public class SqliteActivity extends Activity {  
  13.     // 定义变量  
  14.     private Button createDatabase = null;  
  15.     private Button upgrateDatabase = null;  
  16.     private Button insert = null;  
  17.     private Button update = null;  
  18.     private Button query = null;  
  19.     private Button delete = null;  
  20.   
  21.     @Override  
  22.     public void onCreate(Bundle savedInstanceState) {  
  23.         super.onCreate(savedInstanceState);  
  24.         setContentView(R.layout.main);  
  25.   
  26.         // 根据ID得到控件对象  
  27.         createDatabase = (Button) findViewById(R.id.createDatabase);  
  28.         upgrateDatabase = (Button) findViewById(R.id.upgrateDatabase);  
  29.         insert = (Button) findViewById(R.id.insert);  
  30.         update = (Button) findViewById(R.id.update);  
  31.         query = (Button) findViewById(R.id.query);  
  32.         delete = (Button) findViewById(R.id.delete);  
  33.   
  34.         // 给按钮绑定单击事件监听器  
  35.         createDatabase.setOnClickListener(new View.OnClickListener() {  
  36.   
  37.             @Override  
  38.             public void onClick(View v) {  
  39.                 //生成DatabaseHelper对象  
  40.                 DatabaseHelper databaseHelper = new DatabaseHelper(SqliteActivity.this,"sqlite_user",null,1);  
  41.                 //只有调用了getReadableDatabase方法,或者getWritableDatabase方法,才会创建数据库  
  42.                 databaseHelper.getReadableDatabase();  
  43.             }  
  44.         });  
  45.         upgrateDatabase.setOnClickListener(new View.OnClickListener() {  
  46.   
  47.             @Override  
  48.             public void onClick(View v) {  
  49.                 //生成DatabaseHelper对象  
  50.                 DatabaseHelper databaseHelper = new DatabaseHelper(SqliteActivity.this,"sqlite_user",null,2);  
  51.                 //只有调用了getReadableDatabase方法,或者getWritableDatabase方法,才会更新数据库  
  52.                 databaseHelper.getReadableDatabase();  
  53.   
  54.             }  
  55.         });  
  56.         insert.setOnClickListener(new View.OnClickListener() {  
  57.   
  58.             @Override  
  59.             public void onClick(View v) {  
  60.                   
  61.                 //创建ContentValue对象  
  62.                 ContentValues values = new ContentValues();  
  63.                 //插入键值对,注意值的类型必须和数据库表中字段的类型一致  
  64.                 values.put("id"1);  
  65.                 values.put("name""yangyulin");  
  66.                 //生成SQLiteDatabase对象  
  67.                 DatabaseHelper dbHelper = new DatabaseHelper(SqliteActivity.this,"test_user",null,1);  
  68.                 SQLiteDatabase db = dbHelper.getWritableDatabase();  
  69.                 //执行插入  
  70.                 db.insert("user"null, values);  
  71.             }  
  72.         });  
  73.         update.setOnClickListener(new View.OnClickListener() {  
  74.   
  75.             @Override  
  76.             public void onClick(View v) {  
  77.                 //生成DatabaseHelper对象  
  78.                 DatabaseHelper dbHelper = new DatabaseHelper(SqliteActivity.this,"test_user",null,1);  
  79.                 //调用DatabaseHelper的getWritableDatabase方法,生成SQLiteDatabase对象  
  80.                 SQLiteDatabase db = dbHelper.getWritableDatabase();  
  81.                 //生成ContentValues对象,并设定键值对  
  82.                 ContentValues values = new ContentValues();  
  83.                 values.put("name""newSky");  
  84.                 //更新表信息:update user set name = 'newSky' where id =1;  
  85.                 db.update("user", values, " id=?"new String[]{"1"});  
  86.   
  87.             }  
  88.         });  
  89.         query.setOnClickListener(new View.OnClickListener() {  
  90.   
  91.             @Override  
  92.             public void onClick(View v) {  
  93.                 //生成DatabaseHelper对象  
  94.                 DatabaseHelper dbHelper = new DatabaseHelper(SqliteActivity.this,"test_user",null,1);  
  95.                 //调用DatabaseHelper的getReadableDatabase方法,生成SQLiteDatabase对象  
  96.                 SQLiteDatabase db = dbHelper.getReadableDatabase();  
  97.                 //执行查询,将查询结果放入到Cursor中  
  98.                 Cursor cursor = db.query("user"new String[]{"id","name"}, " id =?"new String[]{"1"}, nullnullnull);  
  99.   
  100.                 //打印查询结果  
  101.                 while(cursor.moveToNext())  
  102.                 {  
  103.                     String name = cursor.getString(cursor.getColumnIndex("name"));  
  104.                     System.out.println("name --> " + name);  
  105.                 }  
  106.                       
  107.             }  
  108.         });  
  109.         delete.setOnClickListener(new View.OnClickListener() {  
  110.   
  111.             @Override  
  112.             public void onClick(View v) {  
  113.                 //生成DatabaseHelper对象  
  114.                 DatabaseHelper dbHelper = new DatabaseHelper(SqliteActivity.this,"test_user",null,1);  
  115.                 //调用DatabaseHelper的getReadableDatabase方法,生成SQLiteDatabase对象  
  116.                 SQLiteDatabase db = dbHelper.getWritableDatabase();  
  117.                 db.delete("user""id =?"new String[]{"1"});  
  118.             }  
  119.         });  
  120.   
  121.     }  
  122. }  


查看数据库:

1、在CMD命令行下输入以下命令

>adb shelll

#>cd data/data/yyl.sqlite

#>cd databases

#>sqlite3 test_user

#>.schema

#>select * from user;

原创粉丝点击