android 数据库操作

来源:互联网 发布:fc2视频域名更改 编辑:程序博客网 时间:2024/06/06 01:35
1.SQLiteOpenHelper
  SQliteOpenHelper是一个抽象类,来管理数据库的创建和版本的管理。要使用它必须实现它的nCreate(SQLiteDatabase),onUpgrade(SQLiteDatabase, int, int)方法
  onCreate:当数据库第一次被建立的时候被执行,例如创建表,初始化数据等。
  onUpgrade:当数据库需要被更新的时候执行,例如删除久表,创建新表。
2.实现代码
[java] view plaincopy
package xqh.utils;  
  
import android.content.Context;  
import android.database.sqlite.SQLiteDatabase;  
import android.database.sqlite.SQLiteOpenHelper;  
import android.database.sqlite.SQLiteDatabase.CursorFactory;  
  
public class DBHelper extends SQLiteOpenHelper {  
  
    //数据库版本  
    private static final int VERSION = 1;  
    //新建一个表  
    String sql = "create table if not exists TestUsers"+  
    "(id int primary key,name varchar,sex varchar)";  
      
    public DBHelper(Context context, String name, CursorFactory factory,  
            int version) {  
        super(context, name, factory, version);  
    }  
  
    public DBHelper(Context context,String name,int version){  
        this(context,name,null,version);  
    }  
      
    public DBHelper(Context context,String name){  
        this(context,name,VERSION);  
    }  
      
    @Override  
    public void onCreate(SQLiteDatabase db) {  
        db.execSQL(sql);  
    }  
  
    @Override  
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {  
          
    }  
      
}  


3.SQLite的使用
  Android提供了一个名为SQLiteDatabase的类,它封装了一些操作数据库的API。使用它能实现基本的CRUD操作,通过getWritableDatabase()和getReadableDatabase()可以获取数据库实例。
4.实现代码
[java] view plaincopy
package xqh.sqlite;  
  
import xqh.utils.DBHelper;  
import android.app.Activity;  
import android.database.SQLException;  
import android.database.sqlite.SQLiteDatabase;  
import android.os.Bundle;  
import android.widget.Button;  
import android.util.Log;  
import android.view.View;  
import android.view.View.OnClickListener;;  
  
public class TestSQLite extends Activity {  
  
    Button textBtn = null;  
    Button btnCreateDb = null;  
    Button btnCreateTb = null;  
    Button btnInsert = null;  
    Button btnUpdate = null;  
    Button btnDelete = null;  
    DBHelper dbHelper = null;  
    SQLiteDatabase db = null;  
      
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        // TODO Auto-generated method stub  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.sqlitetest);  
          
        OpenDb();  
          
        textBtn = (Button)findViewById(R.id.btnHeader);  
        textBtn.setFocusable(true);  
          
//        btnCreateDb = (Button)findViewById(R.id.btnCreateDb);  
//        btnCreateDb.setOnClickListener(createDbListener);  
//          
//        btnCreateTb = (Button)findViewById(R.id.btnCreateTb);  
//        btnCreateTb.setOnClickListener(createTbListener);  
          
        btnInsert = (Button)findViewById(R.id.btnInsert);  
        btnInsert.setOnClickListener(insertTbListener);  
          
        btnUpdate = (Button)findViewById(R.id.btnUpdate);  
        btnUpdate.setOnClickListener(updateTbListener);  
          
        btnDelete = (Button)findViewById(R.id.btnDelete);  
        btnDelete.setOnClickListener(deleteTbListener);  
  
    }  
      
    public OnClickListener deleteTbListener = new OnClickListener() {  
        public void onClick(View v) {  
            DeleteTb();  
        }  
    };  
      
    public OnClickListener updateTbListener = new OnClickListener() {  
        public void onClick(View v) {  
            UpdateTb();  
        }  
    };  
      
    public OnClickListener insertTbListener = new OnClickListener() {  
        public void onClick(View v) {  
            InsertTb();  
        }  
    };  
      
//    public OnClickListener createDbListener = new OnClickListener() {  
//        public void onClick(View v) {  
//            CreateDatabase("TestDb01");  
//        }  
//    };  
  
//    public OnClickListener createTbListener = new OnClickListener() {  
//        public void onClick(View v) {  
//            CreateTable();  
//        }  
//    };  
      
//    /**  
//     * 新建一个数据库  
//     * @param dbName  
//     * @return  
//     */  
//    public SQLiteDatabase CreateDatabase(String dbName){  
//        dbHelper = new DBHelper(this, dbName);  
//        return dbHelper.getWritableDatabase();  
//    }  
      
    /** 
     * 新建一个表 
     * @param db 
     */  
    public void CreateTable(){  
        db = dbHelper.getWritableDatabase();  
        String sql = "create table if not exists TestUsers"+  
                        "(id int primary key,name varchar,sex varchar)";  
        try {  
            db.execSQL(sql);  
        } catch (SQLException e) {  
            Log.i("err", "create table failed");  
        }  
    }  
      
    /** 
     * 插入数据 
     */  
    public void InsertTb(){  
        db = dbHelper.getWritableDatabase();  
        String sql = "insert into TestUsers (id,name,sex) values (2,'hongguang','men')";  
        try {  
            db.execSQL(sql);  
        } catch (SQLException e) {  
            Log.i("err", "insert failed");  
        }  
    }  1.SQLiteOpenHelper

  SQliteOpenHelper是一个抽象类,来管理数据库的创建和版本的管理。要使用它必须实现它的nCreate(SQLiteDatabase),onUpgrade(SQLiteDatabase, int, int)方法

  onCreate:当数据库第一次被建立的时候被执行,例如创建表,初始化数据等。

  onUpgrade:当数据库需要被更新的时候执行,例如删除久表,创建新表。

2.实现代码

[java] view plaincopy
  1. package xqh.utils;  
  2.   
  3. import android.content.Context;  
  4. import android.database.sqlite.SQLiteDatabase;  
  5. import android.database.sqlite.SQLiteOpenHelper;  
  6. import android.database.sqlite.SQLiteDatabase.CursorFactory;  
  7.   
  8. public class DBHelper extends SQLiteOpenHelper {  
  9.   
  10.     //数据库版本  
  11.     private static final int VERSION = 1;  
  12.     //新建一个表  
  13.     String sql = "create table if not exists TestUsers"+  
  14.     "(id int primary key,name varchar,sex varchar)";  
  15.       
  16.     public DBHelper(Context context, String name, CursorFactory factory,  
  17.             int version) {  
  18.         super(context, name, factory, version);  
  19.     }  
  20.   
  21.     public DBHelper(Context context,String name,int version){  
  22.         this(context,name,null,version);  
  23.     }  
  24.       
  25.     public DBHelper(Context context,String name){  
  26.         this(context,name,VERSION);  
  27.     }  
  28.       
  29.     @Override  
  30.     public void onCreate(SQLiteDatabase db) {  
  31.         db.execSQL(sql);  
  32.     }  
  33.   
  34.     @Override  
  35.     public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {  
  36.           
  37.     }  
  38.       
  39. }  

3.SQLite的使用

  Android提供了一个名为SQLiteDatabase的类,它封装了一些操作数据库的API。使用它能实现基本的CRUD操作,通过getWritableDatabase()和getReadableDatabase()可以获取数据库实例。

4.实现代码

[java] view plaincopy
  1. package xqh.sqlite;  
  2.   
  3. import xqh.utils.DBHelper;  
  4. import android.app.Activity;  
  5. import android.database.SQLException;  
  6. import android.database.sqlite.SQLiteDatabase;  
  7. import android.os.Bundle;  
  8. import android.widget.Button;  
  9. import android.util.Log;  
  10. import android.view.View;  
  11. import android.view.View.OnClickListener;;  
  12.   
  13. public class TestSQLite extends Activity {  
  14.   
  15.     Button textBtn = null;  
  16.     Button btnCreateDb = null;  
  17.     Button btnCreateTb = null;  
  18.     Button btnInsert = null;  
  19.     Button btnUpdate = null;  
  20.     Button btnDelete = null;  
  21.     DBHelper dbHelper = null;  
  22.     SQLiteDatabase db = null;  
  23.       
  24.     @Override  
  25.     protected void onCreate(Bundle savedInstanceState) {  
  26.         // TODO Auto-generated method stub  
  27.         super.onCreate(savedInstanceState);  
  28.         setContentView(R.layout.sqlitetest);  
  29.           
  30.         OpenDb();  
  31.           
  32.         textBtn = (Button)findViewById(R.id.btnHeader);  
  33.         textBtn.setFocusable(true);  
  34.           
  35. //        btnCreateDb = (Button)findViewById(R.id.btnCreateDb);  
  36. //        btnCreateDb.setOnClickListener(createDbListener);  
  37. //          
  38. //        btnCreateTb = (Button)findViewById(R.id.btnCreateTb);  
  39. //        btnCreateTb.setOnClickListener(createTbListener);  
  40.           
  41.         btnInsert = (Button)findViewById(R.id.btnInsert);  
  42.         btnInsert.setOnClickListener(insertTbListener);  
  43.           
  44.         btnUpdate = (Button)findViewById(R.id.btnUpdate);  
  45.         btnUpdate.setOnClickListener(updateTbListener);  
  46.           
  47.         btnDelete = (Button)findViewById(R.id.btnDelete);  
  48.         btnDelete.setOnClickListener(deleteTbListener);  
  49.   
  50.     }  
  51.       
  52.     public OnClickListener deleteTbListener = new OnClickListener() {  
  53.         public void onClick(View v) {  
  54.             DeleteTb();  
  55.         }  
  56.     };  
  57.       
  58.     public OnClickListener updateTbListener = new OnClickListener() {  
  59.         public void onClick(View v) {  
  60.             UpdateTb();  
  61.         }  
  62.     };  
  63.       
  64.     public OnClickListener insertTbListener = new OnClickListener() {  
  65.         public void onClick(View v) {  
  66.             InsertTb();  
  67.         }  
  68.     };  
  69.       
  70. //    public OnClickListener createDbListener = new OnClickListener() {  
  71. //        public void onClick(View v) {  
  72. //            CreateDatabase("TestDb01");  
  73. //        }  
  74. //    };  
  75.   
  76. //    public OnClickListener createTbListener = new OnClickListener() {  
  77. //        public void onClick(View v) {  
  78. //            CreateTable();  
  79. //        }  
  80. //    };  
  81.       
  82. //    /**  
  83. //     * 新建一个数据库  
  84. //     * @param dbName  
  85. //     * @return  
  86. //     */  
  87. //    public SQLiteDatabase CreateDatabase(String dbName){  
  88. //        dbHelper = new DBHelper(this, dbName);  
  89. //        return dbHelper.getWritableDatabase();  
  90. //    }  
  91.       
  92.     /** 
  93.      * 新建一个表 
  94.      * @param db 
  95.      */  
  96.     public void CreateTable(){  
  97.         db = dbHelper.getWritableDatabase();  
  98.         String sql = "create table if not exists TestUsers"+  
  99.                         "(id int primary key,name varchar,sex varchar)";  
  100.         try {  
  101.             db.execSQL(sql);  
  102.         } catch (SQLException e) {  
  103.             Log.i("err""create table failed");  
  104.         }  
  105.     }  
  106.       
  107.     /** 
  108.      * 插入数据 
  109.      */  
  110.     public void InsertTb(){  
  111.         db = dbHelper.getWritableDatabase();  
  112.         String sql = "insert into TestUsers (id,name,sex) values (2,'hongguang','men')";  
  113.         try {  
  114.             db.execSQL(sql);  
  115.         } catch (SQLException e) {  
  116.             Log.i("err""insert failed");  
  117.         }  
  118.     }  
  119.       
  120.     /** 
  121.      * 更新数据 
  122.      */  
  123.     public void UpdateTb() {  
  124.         db = dbHelper.getWritableDatabase();  
  125.         String sql = "Update TestUsers set name = 'anhong',sex = 'men' where id = 2";  
  126.         try {  
  127.             db.execSQL(sql);  
  128.         } catch (SQLException e) {  
  129.             Log.i("err""update failed");  
  130.         }  
  131.     }  
  132.       
  133.     /** 
  134.      * 删除数据 
  135.      */  
  136.     public void DeleteTb(){  
  137.         db = dbHelper.getWritableDatabase();  
  138.         String sql = "delete from TestUsers where id = 2";  
  139.         try {  
  140.             db.execSQL(sql);  
  141.         } catch (SQLException e) {  
  142.             Log.i("err""delete failed");  
  143.         }  
  144.     }  
  145.       
  146.     /** 
  147.      * 打开数据库 
  148.      */  
  149.     public void OpenDb(){  
  150.         dbHelper = new DBHelper(this"TestDb01");  
  151.         db = dbHelper.getWritableDatabase();  
  152.     }  
  153.       
  154.     /** 
  155.      * 关闭数据库 
  156.      */  
  157.     public void CloseDb(){  
  158.         dbHelper.close();  
  159.     }  
  160.       
  161.     @Override  
  162.     protected void onDestroy() {  
  163.         super.onDestroy();  
  164.         if(db!=null){  
  165.             db.close();  
  166.         }  
  167.         if(dbHelper!=null){  
  168.             dbHelper.close();  
  169.         }  
  170.     }  
  171.       
  172. }  

5.一些SQLite操作命令

  5.1 adb shell 进入命令模式

  5.2 cd 文件名 进入文件

  5.3 ls或ls -l 查看目录下的文件

  5.4 sqlite3 数据库名 进入数据库

  5.5 .schema 查看数据库下的信息

  5.6 ctrl+d 退出sqlite模式

转自:http://tech.chinaunix.net/a2010/1103/1121/000001121539.shtml


      
    /** 
     * 更新数据 
     */  
    public void UpdateTb() {  
        db = dbHelper.getWritableDatabase();  
        String sql = "Update TestUsers set name = 'anhong',sex = 'men' where id = 2";  
        try {  
            db.execSQL(sql);  
        } catch (SQLException e) {  
            Log.i("err", "update failed");  
        }  
    }  
      
    /** 
     * 删除数据 
     */  
    public void DeleteTb(){  
        db = dbHelper.getWritableDatabase();  
        String sql = "delete from TestUsers where id = 2";  
        try {  
            db.execSQL(sql);  
        } catch (SQLException e) {  
            Log.i("err", "delete failed");  
        }  
    }  
      
    /** 
     * 打开数据库 
     */  
    public void OpenDb(){  
        dbHelper = new DBHelper(this, "TestDb01");  
        db = dbHelper.getWritableDatabase();  
    }  
      
    /** 
     * 关闭数据库 
     */  
    public void CloseDb(){  
        dbHelper.close();  
    }  
      
    @Override  
    protected void onDestroy() {  
        super.onDestroy();  
        if(db!=null){  
            db.close();  
        }  
        if(dbHelper!=null){  
            dbHelper.close();  
        }  
    }  
      
}  


5.一些SQLite操作命令
  5.1 adb shell 进入命令模式
  5.2 cd 文件名 进入文件
  5.3 ls或ls -l 查看目录下的文件
  5.4 sqlite3 数据库名 进入数据库
  5.5 .schema 查看数据库下的信息
  5.6 ctrl+d 退出sqlite模式
转自:http://tech.chinaunix.net/a2010/1103/1121/000001121539.shtml
0 0
原创粉丝点击