本站不再更新,歡迎光臨 java開發技術網
          隨筆-230  評論-230  文章-8  trackbacks-0

          今晚寫了個sqLite的應用例子,粘一下代碼,就不詳細詳述了。

          package com.peidw.demo;

          import java.io.FileNotFoundException;

          import android.content.Context;
          import android.database.sqlite.SQLiteDatabase;
          import android.database.sqlite.SQLiteOpenHelper;
          import android.database.sqlite.SQLiteDatabase.CursorFactory;
          import android.util.Log;

          /**
           * 數據庫操作
           * 
          @author peidw 2009-04-06
           *
           
          */
          public class DatabaseHelper extends SQLiteOpenHelper{
              
          private Context ctx = null;
              
              
          public DatabaseHelper(Context context, String name, CursorFactory factory, int version) {
                  
          super(context, name, factory, version);

              }
              

              @Override
              
          public void onCreate(SQLiteDatabase arg0) {
                  
              }
              @Override
              
          public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
                  
              }

              

          }
          package com.peidw.demo;

          import java.util.*;
          import android.app.*;
          import android.content.Context;
          import android.database.Cursor;
          import android.database.sqlite.SQLiteDatabase;
          import android.database.sqlite.SQLiteOpenHelper;
          import android.database.sqlite.SQLiteDatabase.CursorFactory;
          import android.os.*;
          import android.util.*;

          /**
           * 操作數據庫例子
           * 
          @author peidw 2009-04-19
           *
           
          */
          public class ConnectionProvider {
              
              
          private static  SQLiteDatabase db=null;
              
              
              
          public  ConnectionProvider(Context ctx) {
                  
          if (db==null){
                      Log.v(
          "ConnectionProvider","ctx="+ctx.toString());
                      DatabaseHelper dbHelper
          =new DatabaseHelper(ctx,"StudDB"null,1);
                      db
          = dbHelper.getWritableDatabase();
                  }
              }
              
              
          public SQLiteDatabase getConnection (){
                  
          return db;
              }
              
              
          public void closeConnection (){
                  db.close();
              }
              
          /**
               * 判斷表是否存在
               * 
          @param tablename
               * 
          @return
               
          */
              
          public boolean isTableExits(String tablename){
                  
          boolean result=false;//表示不存在
                  String str="select count(*) xcount  from sqlite_master where table='"+tablename+"'";
                  Cursor c 
          = db.rawQuery(str,null);
                  
          int xcount=c.getColumnIndex("xcount");
                  
          if(xcount!=0){
                      result
          =true//表存在
                  }
                  
          return result;
              }
          }

          在程序中操作數所的代碼片段

           ConnectionProvider cp
          =new ConnectionProvider(this.getBaseContext());
                  
          // if(cp.isTableExits(TABLE_NAME)){//表已存在
                       createTable(cp);
                      queryTable(cp);
                  
          // }else{//表不存在
                  
          //     createTable();
                  
          // }



          public void createTable( ConnectionProvider cp){
                  

                  SQLiteDatabase db
          = cp.getConnection();
                  db.execSQL(
          "CREATE TABLE IF NOT EXISTS " + TABLE_NAME + " ("
                          
          + "stud_no" + " TEXT,"
                          
          + "stud_name" + " TEXT"
                          
          + ");");
              
                  String sql_1 
          = "insert into "+ TABLE_NAME +" (stud_no, stud_name) values('S777', 'Lily Chang');";
                  String sql_2 
          = "insert into " + TABLE_NAME +" (stud_no, stud_name) values('S888', 'Linda Lin');";
                  String sql_3 
          = "insert into " + TABLE_NAME +" (stud_no, stud_name) values('S999', 'Bruce Wang');";
                  db.execSQL(sql_1); db.execSQL(sql_2); db.execSQL(sql_3);
              }
              
          public void queryTable(ConnectionProvider cp){
                  String str
          ="select * from "+TABLE_NAME;
                  Cursor c 
          =cp.getConnection().rawQuery(str,null);
                  Log.v(
          "loginactive","查詢記錄");
                  Log.v(
          "loginactive",String.valueOf(c.getCount()) );
                  
          if(c!=null){
                      c.moveToFirst();
                      
          while(!c.isLast()){
                          Log.v(
          "loginactive","outp.");
                          String stud_no
          =c.getString(0);
                          String stud_name
          =c.getString(1);
                          System.out.println(stud_no
          +"---------------"+stud_name);
                          Log.v(
          "loginactive",stud_no+"---------------"+stud_name);
                          c.moveToNext();
                      }
                  }

              }
          麻煩幫單擊一次廣告了 !!!

          posted on 2009-04-19 22:20 有貓相伴的日子 閱讀(7836) 評論(4)  編輯  收藏 所屬分類: Android

          評論:
          # re: android 中使用sqLite例子[未登錄] 2009-08-12 13:42 | qingsong
          不錯  回復  更多評論
            
          # re: android 中使用sqLite例子 2010-08-16 14:13 | 路過
          while(!c.isLast()){
          ...
          }
          如果select出來的只有1條數據 豈不是滿足了條件 不執行循環內的邏輯了  回復  更多評論
            
          # re: android 中使用sqLite例子 2010-08-24 19:39 | unix007
          不錯!!lz能利用sqlite開發出一個類似listpro的軟件嗎?listpro是wm和palm上面很非常好用的記事軟件,不少玩家使用這個軟件有10年之久,可惜現在廠家不開發android這個版本的軟件。
          如果你能開發出來,我可以召集最少30個人購買。關于listpro,你可以上www.iliumsoft.com這個網站查看一下。如果興趣,詳細情況可以聯系我:88584832@163.com, QQ:66118390  回復  更多評論
            
          # re: android 中使用sqLite例子[未登錄] 2012-11-19 16:35 | kevin
          # re: android 中使用sqLite例子 2010-08-16 14:13 | 路過

          while(!c.isLast()){
          ...
          } 應該是筆誤,筆者的意圖貌似:
          while(!c.isAfterLast()){
          ...
          }   回復  更多評論
            
          本站不再更新,歡迎光臨 java開發技術網
          主站蜘蛛池模板: 海安县| 莆田市| 南和县| 阳西县| 永兴县| 界首市| 鄱阳县| 玉屏| 离岛区| 瑞金市| 绵阳市| 瓦房店市| 柳州市| 彭阳县| 平顺县| 宝应县| 江都市| 侯马市| 海城市| 张家港市| 文成县| 安溪县| 青田县| 民和| 务川| 荔浦县| 襄垣县| 镇雄县| 萨迦县| 康定县| 临清市| 乌拉特后旗| 澳门| 瑞昌市| 安阳市| 额敏县| 防城港市| 阜南县| 怀化市| 藁城市| 无棣县|