久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Android從零開始(7)(SQLite數(shù)據(jù)庫)(新)

 北斗燭龍 2014-12-25

轉(zhuǎn)載請注明本文出自Cym的博客(http://blog.csdn.net/cym492224103),,謝謝支持!


前言

之前學習了多種數(shù)據(jù)存儲的方式,,但是要是存儲數(shù)據(jù)多了,前面的方式就不太合適了,,今天我們來學習手機的數(shù)據(jù)庫知識,。


SQLite數(shù)據(jù)庫

數(shù)據(jù)庫:它就是一個軟件,需要安裝,,安裝完后就有自己的目錄結(jié)構(gòu),。都有客戶端和服務端,所有的數(shù)據(jù)庫都實現(xiàn)了SQL標準,。它是一個輕量級數(shù)據(jù)庫,,設(shè)計目的是嵌入式的,而且它占用的資源非常少

注意:除了主鍵不能存儲任意的類型之外,,其他的字段可以存放任意的數(shù)據(jù)類型,。

圖片1.png

圖片2.png


Cmd操作指令:

sqlite3 qjq.db 進入數(shù)據(jù)庫

.tables 查看數(shù)據(jù)庫里面的表


創(chuàng)建數(shù)據(jù)庫文件:

三種方式:

第一種通過上下文創(chuàng)建數(shù)據(jù)庫:

  1. public class DBsqlite {  
  2.         private Context context;  
  3.         public DBsqlite(Context context) {  
  4.                 super();  
  5.                 this.context = context;  
  6.         }  
  7.         public void createDB() {  
  8.                 //通過上下文創(chuàng)建數(shù)據(jù)庫  
  9.                    context.openOrCreateDatabase("persons.db", Context.MODE_PRIVATE, null);  
  10.         }  
  11. }  

第二種SQLiteDatabase創(chuàng)建數(shù)據(jù)庫

  1. public void createDB(){  
  2.             String dir="/data/data/"+context.getPackageName();  
  3.             File file=new File(dir,"persons.db");  
  4.             SQLiteDatabase.openOrCreateDatabase(file, null);  
  5.     }  

第三種創(chuàng)建一個help類繼承SQLiteOpenHelper實現(xiàn)DBhelp構(gòu)造onCreate方法onUpgrade方法

  1. public class DBhelp extends SQLiteOpenHelper {  
  2.         public DBhelp(Context context) {  
  3. //                上下文        ,數(shù)據(jù)庫名,,游標工廠 ,,數(shù)據(jù)版本  
  4.                 super(context, "persons.db"null2);  
  5.                 // TODO Auto-generated constructor stub  
  6.         }  
  7.         //數(shù)據(jù)庫第一次創(chuàng)建之后調(diào)用該方法。創(chuàng)建表,、視圖,。。,。 或者初始化表信息  
  8.         public void onCreate(SQLiteDatabase db) {  
  9.                 // 創(chuàng)建數(shù)據(jù)庫  
  10.                 db.execSQL("create table fish(_id integer primary key autoincrement,name text)");  
  11.         }  
  12.   
  13.         @Override  
  14. //當數(shù)據(jù)版本被改變則會執(zhí)行該方法super(context, "persons.db", null, 3),;  
  15.         public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {  
  16.                 // 版本修改表添加一列  
  17.                 db.execSQL("ALTER TABLE fish ADD amount integer");  
  18.         }  


Crud(增刪改查)

以下分別用兩種方式crud了,一種是面向SQL ,,一種是面向?qū)ο?,但是面向?qū)ο蟮脑创a里面其實也是在幫你拼接sql

  1. public class OtherFishService {  
  2.         private SQLiteOpenHelper mOpenHelper;  
  3.   
  4.         public OtherFishService(Context context) {  
  5.                 // TODO Auto-generated constructor stub  
  6.                 mOpenHelper = new DBHelper(context);  
  7.         }  
  8.   
  9.         /** 
  10.          * 插入數(shù)據(jù) 
  11.          * @param name 
  12.          */  
  13.         public void insert(String name){  
  14.                 SQLiteDatabase db = mOpenHelper.getWritableDatabase();  
  15. //                String sql = "insert into fish(name) values(?)";  
  16.                 if(db.isOpen()){  
  17. //                        db.execSQL(sql, new Object[]{name});  
  18.                         //insert into fish  
  19.                         //ContentValues里面就是要插入的值  
  20.                         ContentValues values = new ContentValues();  
  21.                         values.put("name", name);  
  22.                         db.insert("fish""_id", values);  
  23.                         db.close();  
  24.                 }  
  25.         }  
  26.   
  27.   
  28.         public List<Fish> query(){  
  29.   
  30.                 List<Fish> fishs = new ArrayList<Fish>();  
  31.   
  32.                 SQLiteDatabase db = mOpenHelper.getReadableDatabase();  
  33. //                String sql ="select * from fish";  
  34.                 if(db.isOpen()){  
  35.                         //cursor 就是resultset  
  36. //                        Cursor cursor = db.rawQuery(sql, null);  
  37.                         Cursor cursor = db.query("fish",//表名  
  38.                                         new String[]{"*"},//要查詢的列名  
  39.                                         null,//查詢條件  
  40.                                         null,//條件參數(shù)  
  41.                                         null,//分組  
  42.                                         null,//條件  
  43.                                         null);//排序  
  44.                         while(cursor.moveToNext()){  
  45.                                 //得到_id的下標  
  46.                                 int column_index = cursor.getColumnIndex("_id");  
  47.                                 //得到_id的值  
  48.                                 int _id = cursor.getInt(column_index);  
  49.   
  50.                                 String name = cursor.getString(cursor.getColumnIndex("name"));  
  51.   
  52.                                 Fish fish = new Fish(_id, name);  
  53.                                 fishs.add(fish);  
  54.                         }  
  55.                         //cursor使用完成之后一定要關(guān)閉  
  56.                         cursor.close();  
  57.                         db.close();  
  58.                 }  
  59.                 return fishs;  
  60.         }  
  61.   
  62.         public void update(Fish fish){  
  63.                 SQLiteDatabase db = mOpenHelper.getWritableDatabase();  
  64.                 if(db.isOpen()){  
  65. //                        String sql = "update Fish set name = ? where _id = ?";  
  66. //                        db.execSQL(sql,new Object[]{fish.name,fish._id});  
  67.                         ContentValues values = new ContentValues();  
  68.                         values.put("name", fish.name);  
  69.                         String whereClause = " _id = ?";  
  70.                         String[] whereArgs = new String[]{fish._id+""};  
  71.                         db.update("fish", values, whereClause, whereArgs);  
  72.                 }  
  73.         }  
  74.   
  75.         public void delete(int _id){  
  76.                 SQLiteDatabase db = mOpenHelper.getWritableDatabase();  
  77.                 if(db.isOpen()){  
  78. //                        String sql = "delete from fish where _id = ?";  
  79. //                        db.execSQL(sql,new Object[]{_id});  
  80.                         String whereClause = " _id = ?";  
  81.                         String[] whereArgs = new String[]{_id+""};  
  82.                         db.delete("fish", whereClause, whereArgs);  
  83.                 }  
  84.         }  
  85. }  



    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導購買等信息,,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多