我学习ophone里使用sqlite3

发布时间:2019-07-12 10:02:51编辑:auto阅读(1259)

    写得很辛苦,大家觉得好的话请多多回帖支持我,有时间会发布第二篇

    演示环境

    Windows xp
    Eclipse 3.4.2
    Ophone SDK 1.0
     
    一、 创建工程
    在Eclipse里
    File->new->Android project->输入工程名sqlite_demo等等如下图:->点击完成
     

     

    二、建立数据库连接类
    在src下oms.sqlite_demo下新建DBHelper类
    写代码如下
     
    1. /*class DBHelper code start*/ 
    2. package oms.sqlite_demo; 
    3.  
    4. import android.content.Context; 
    5. import android.database.sqlite.SQLiteDatabase; 
    6. import android.database.sqlite.SQLiteOpenHelper; 
    7. import android.database.sqlite.SQLiteDatabase.CursorFactory; 
    8. import android.util.Log; 
    9.  
    10. /** 
    11.  * 数据库连接类 
    12.  *  
    13.  * @author yifangyou 2010-01-15 
    14.  *  
    15.  */ 
    16. public class DBHelper extends SQLiteOpenHelper { 
    17.     private static SQLiteDatabase db = null
    18.     /** 
    19.      * 连接数据库,数据库不存在则创建 
    20.      * 
    21.      * @param Context context, 内容上限文 
    22.      * @param String dbname, 数据库名字 
    23.      * @param CursorFactory factory, 数据库游标 
    24.      * @param int version, 数据库版本 
    25.      * @return SQLiteDatabase 返回数据库操作类  
    26.      */ 
    27.     public DBHelper(Context context, String dbname, CursorFactory factory, 
    28.             int version) { 
    29.         super(context, dbname, factory, version); 
    30.     } 
    31.     /** 
    32.      * 连接数据库,数据库不存在则创建 
    33.      * 
    34.      * @return SQLiteDatabase 返回数据库操作类  
    35.      */ 
    36.     public SQLiteDatabase getconnect() { 
    37.         if (db == null) { 
    38.             db = this.getWritableDatabase(); 
    39.         } 
    40.         return db; 
    41.     } 
    42.     /** 
    43.      * 断开数据库连接 
    44.      * 
    45.      * @return void  
    46.      */ 
    47.     public void close() { 
    48.         if (db != null) { 
    49.             db.close(); 
    50.         } 
    51.     } 
    52.  
    53.     @Override 
    54.     public void onCreate(SQLiteDatabase arg0) { 
    55.  
    56.     } 
    57.  
    58.     @Override 
    59.     public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) { 
    60.  
    61.     } 
    62. /* class DBHelper code end */ 

    三、操作数据库

    sqlite_demo.java里的代码如下

     

    1. package oms.sqlite_demo; 
    2.  
    3. import android.app.Activity; 
    4. import android.database.Cursor; 
    5. import android.database.sqlite.SQLiteDatabase; 
    6. import android.os.Bundle; 
    7. import android.util.Log; 
    8.  
    9.  
    10. public class sqlite_demo extends Activity { 
    11.     private final String DB_NAME = "testdb"
    12.     private final String TABLE_NAME = "student"
    13.     /** Called when the activity is first created. */ 
    14.     @Override 
    15.     public void onCreate(Bundle savedInstanceState) { 
    16.         super.onCreate(savedInstanceState); 
    17.         setContentView(R.layout.main); 
    18.         DBHelper dbh=new DBHelper(this.getBaseContext(),DB_NAME, null,1); 
    19.         SQLiteDatabase db= dbh.getconnect(); 
    20.         createTable(db); 
    21.         queryTable(db); 
    22.         dbh.close(); 
    23.     } 
    24.      
    25.      
    26. public void createTable( SQLiteDatabase db){ 
    27.         db.execSQL("CREATE TABLE IF NOT EXISTS " + TABLE_NAME + " (" 
    28.                 + "stud_no" + " TEXT," 
    29.                 + "stud_name" + " TEXT" 
    30.                 + ");"); 
    31.      
    32.         String sql_1 = "insert into "+ TABLE_NAME +" (stud_no, stud_name) values('S777', 'Lily Chang');"
    33.         String sql_2 = "insert into " + TABLE_NAME +" (stud_no, stud_name) values('S888', 'Linda Lin');"
    34.         String sql_3 = "insert into " + TABLE_NAME +" (stud_no, stud_name) values('S999', 'Bruce Wang');"
    35.         db.execSQL(sql_1); db.execSQL(sql_2); db.execSQL(sql_3); 
    36.     } 
    37.     public void queryTable(SQLiteDatabase db){ 
    38.         String str="select * from "+TABLE_NAME; 
    39.         Cursor c =db.rawQuery(str,null); 
    40.          
    41.         Log.v("loginactive","查询记录"); 
    42.         Log.v("loginactive",String.valueOf(c.getCount()) ); 
    43.         if(c!=null){ 
    44.             c.moveToFirst(); 
    45.             while(!c.isLast()){ 
    46.                 Log.v("loginactive","outp."); 
    47.                 String stud_no=c.getString(0); 
    48.                 String stud_name=c.getString(1); 
    49.                 System.out.println(stud_no+"---------------"+stud_name); 
    50.                 Log.v("loginactive",stud_no+"---------------"+stud_name); 
    51.                 c.moveToNext(); 
    52.             } 
    53.         } 
    54.  
    55.     } 

    四、启动DDMS
    在eclipse里
    Window->New Perspective->DDMS

     

    五、运行
    选择">"里的run configure->如下图填完后->apply->run

     

    六、查看结果

    点击run后马上点击右上角的DDMS就能在log里看到结果

    七、命令行下查看数据库

    Cd $OPHONE_HOME/tools

    adb pull /data/data/oms.sqlite_dmoe/databases/testdb test.db

    sqlite3 test.db

     

     

     

关键字