?單機android ? sqlite數據庫的實現,這個數據庫可與程序一起生成在安裝包中
一、下載sqlite3.exe文件
二、運行 cmd 轉到sqlite3.exe?所在目錄 ?運行?sqlite3.exe 數據庫名.db
? ??然后會出現sqlite>的命令提示符
? ? 輸入創建表的語句, create table 表名(‘列’,‘列’。。。);(注意: 要在結束部分加 ?分號 )
? ??此時會在sqlite3.exe?所在目錄,出現所建數據庫的文件
三、如果想在Android中運行的話,需要在數據庫中增添
?CREATE?TABLE?"android_metadata"?("locale"?TEXT?DEFAULT?'zh_CN')
INSERT?INTO?"android_metadata"?VALUES?('zh_CN')四、將數據庫?復制到?Android項目中res/raw中五、下面是代碼:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 | public?class?TestSqlDatabase{ private?static?final?String DATABASE_PATH =?"/data/data/your.package.name/databases";?????//此處不要改動,這個為數據庫在手機上的物理地址 private?static?final?int?DATABASE_VERSION =?0; private?static?final?String DATABASE_NAME =?"test.db";??//此處為數據庫名稱 private?static?String outFileName = DATABASE_PATH +?"/"?+ DATABASE_NAME; private?Context context; private?SQLiteDatabase database; public?TestSqlDatabase(Context context) { this.context = context; File file =?new?File(outFileName); if?(file.exists()) { database = SQLiteDatabase.openOrCreateDatabase(outFileName,?null); if?(database.getVersion() != DATABASE_VERSION) { database.close(); file.delete();? } } try?{ buildDatabase(); }?catch?(Exception e) { e.printStackTrace(); } } private?void?buildDatabase()?throws?Exception{ InputStream myInput = context.getResources().openRawResource(R.raw.test); File file =?new?File(outFileName); File dir =?new?File(DATABASE_PATH); if?(!dir.exists()) { if?(!dir.mkdir()) { throw?new?Exception("創建失敗"); } } if?(!file.exists()) {?????????? try?{ OutputStream myOutput =?new?FileOutputStream(outFileName); byte[] buffer =?new?byte[1024]; int?length; while?((length = myInput.read(buffer))>0){ myOutput.write(buffer,?0, length); } myOutput.close(); myInput.close(); }?catch?(Exception e) { e.printStackTrace(); } } } /** * 查找 * @return */ public?Cursor select() { database = SQLiteDatabase.openOrCreateDatabase(outFileName,?null); String sql =?"select * from note_table"; Cursor cursor = database.rawQuery(sql,?null); return?cursor; } /** * 插入 * @param word * @param note * @return */ public?long?insert(String word, String note) { database = SQLiteDatabase.openOrCreateDatabase(outFileName,?null); ContentValues cv =?new?ContentValues(); cv.put("word", word); cv.put("note", note); long?result = database.insert("note_table",?null, cv);??? return?result; } /** * 更新 * @param word * @param note * @return */ private?int?update(String word, String note) {????????????????????????????//參數 word 為修改條件?? note為修改內容 database = SQLiteDatabase.openOrCreateDatabase(outFileName,?null); ContentValues cv =?new?ContentValues(); cv.put("note", note); int?result = database.update("note_table", cv,?"word=?",?new?String[]{word});???? return?result; } /** * 刪除 * @param word */ public?int?deleteNote(String word) { database = SQLiteDatabase.openOrCreateDatabase(outFileName,?null); int?result = database.delete("note_table",?"word=?",?new?String[]{word}); return?result; } public?void?close() { database.close(); } } |
轉載于:https://blog.51cto.com/12945177/1930153