當前位置:首頁 » 數據倉庫 » xutils資料庫操作
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

xutils資料庫操作

發布時間: 2022-08-16 12:14:25

㈠ xutils 中兩張表之間的雙向關系怎麼實現

公共基礎知識大綱公共基礎知識基本要求1.掌握演算法的基本概念。2.掌握基本數據結構及其操作。3.掌握基本排序和查找演算法。4.掌握逐步求精的結構化程序設計方法。5.掌握軟體工程的基本方法,具有初步應用相關技術進行軟體開發的能力。6.掌握資料庫的基本知識,了解關系資料庫的設計。考試內容一、基本數據結構與演算法1.演算法的基本概念;演算法復雜度的概念和意義(時間復雜度與空間復雜度)。2.數據結構的定義;數據的邏輯結構與存儲結構;數據結構的圖形表示;線性結構與非線性結構的概念。3.線性表的定義;線性表的順序存儲結構及其插入與刪除運算。4.棧和隊列的定義;棧和隊列的順序存儲結構及其基本運算。5.線性單鏈表、雙向鏈表與循環鏈表的結構及其基本運算。6.樹的基本概念;二叉樹的定義及其存儲結構;二叉樹的前序、中序和後序遍歷。7.順序查找與二分法查找演算法;基本排序演算法(交換類排序,選擇類排序,插入類排序)。二、程序設計基礎1.程序設計方法與風格。2.結構化程序設計。3.面向對象的程序設計方法,對象,方法,屬性及繼承與多態性。三、軟體工程基礎1.軟體工程基本概念,軟體生命周期概念,軟體工具與軟體開發環境。2.結構化分析方法,數據流圖,數據字典,軟體需求規格說明書。3.結構化設計方法,總體設計與詳細設計。4.軟體測試的方法,白盒測試與黑盒測試,測試用例設計,軟體測試的實施,單元測試、集成測試和系統測試。5.程序的調試,靜態調試與動態調試。四、資料庫設計基礎1.資料庫的基本概念:資料庫,資料庫管理系統,資料庫系統。2.數據模型,實體聯系模型及E-R圖,從E-R圖導出關系數據模型。3.關系代數運算,包括集合運算及選擇、投影、連接運算,資料庫規范化理論。4.資料庫設計方法和步驟:需求分析、概念設計、邏輯設計和物理設計的相關策略。考試方式公共基礎知識有10道選擇題和5道填空題共三十分。2004年新版NCRE二級c語言程序設計考試大綱本大綱適用於05年考試公共基礎知識基本要求1.熟悉TURBOC集成環境。2.熟練掌握結構化程序設計的方法,具有良好的程序設計風格。3.掌握程序設計中簡單的數據結構和演算法。4.TURBOC的集成環境下,能夠編寫簡單的C程序,並具有基本的糾錯和調試程序的能力。考試內容一、C語言的結構1.程序的構成,MAIN函數和其他函數。2.頭文件,數據說明,函數的開始和結束標志。3.源程序的書寫格式。4.C語言的風格。二、數據類型及其運算1.C的數據類型(基本類型、構造類型、指針類型、空類型)及其定義方法。2.C運算符的種類、運算優先順序和結合性。3.不同類型數據間的轉換與運算。4.C表達式類型(賦值表達式,算術表達式,關系表達式,邏輯表達式,條件表達式,逗號表達式)和求值規則。三、基本語句1.表達式語句,空語句,復合語句。2.數據的輸入與輸出,輸入輸出函數的調用。3.復合語句。4.GOTO語句和語句標號的使用。四、選擇結構程序設計1.用IF語句實現選擇結構。2.用SWITCH語句實現多分支選擇結構。3.選擇結構的嵌套。五、循環結構程序設計1.FOR循環結構。2.WHILE和DOWHILE循環結構。3.CONTINUE語句和BREAK語句。4.循環的嵌套。六、數組的定義和引用1.一維數組和多維數組的定義、初始化和引用。2.字元串與字元數組。七、函數1.庫函數的正確調用。2.函數的定義方法。3..函數的類型和返回值。4.形式參數與實在參數,參數值的傳遞。5.函數的正確調用,嵌套調用,遞歸調用。6.局部變數和全局變數。7.變數的存儲類別(自動,靜態,寄存器,外部),變數的作用域和生存期。8.內部函數與外部函數。八、編譯預處理1.宏定義:不帶參數的宏定義;帶參數的宏定義。2.「文件包含」處理。九、指針1.指針與指針變數的概念,指針與地址運算符。2.變數、數組、字元串、函數、結構體的指針以及指向變數、數組、字元串、函數、結構體的指針變數。通過指針引用以上各類型數據。3.用指針作函數參數。4.返回指針值的指針函數。5.指針數組,指向指針的指針,MAIN函數的命令行參數。十、結構體(即「結構」)與共用體(即「聯合」)1.結構體和共用體類型數據的定義方法和引用方法。2.用指針和結構體構成鏈表,單向鏈表的建立、輸出、刪除與插入。十一、位運算1.位運算符的含義及使用。2.簡單的位運算。十二、文件操作只要求緩沖文件系統(即高級磁碟I/O系統),對非標准緩沖文件系統(即低級磁碟I/O系統)不要求。1.文件類型指針(FILE類型指針)。2.文件的打開與關閉(FOPEN,FCLOSE)。3.文件的讀寫(FPUTC,FGETC,FPUTS,FGETS,FREAD,FWRITE,FPRINTF,FSCANF函數),文件的定位(REWIND,FSEEK函數)。考試方式1.筆試:120分鍾,滿分100分,其中含公共基礎知識部分的30分。2.上機:60分鍾,滿分100分。新版NCRE二級VisualBasic考試大綱2005年新版NCRE二級VisualBasic考試大綱公共基礎知識VisualBasic語言程序設計基本要求1、熟悉VisualBasic集成開發環境。2、了解VisualBasic中對象的概念和事件驅動程序的基本特性。3、了解簡單的數據結構和演算法。4、能夠編寫和調試簡單的VisualBasic程序。考試內容一、VisualBasic程序開發環境1、VisualBasic的特點和版本。2、VisualBasic的啟動與退出。3、主窗口:(1)標題和菜單。(2)工具欄。4、其他窗口:(1)窗體設計器和工程資源管理器。(2)屬性窗口和工具箱窗口。二、對象及其操作1、對象:(1)VisualBasic的對象。(2)對象屬性設置。2、窗體:(1)窗體的結構與屬性。(2)窗體事件。3、控制項:(1)標准控制項。(2)控制項的命名和控制項值。4、控制項的畫法和基本操作。5、事件驅動。三、數據類型及其運算1、數據類型:(1)基本數據類型。(2)用戶定義的數據類型。(3)枚舉類型。2、常量和變數:(1)局部變數與全局變數。(2)變體類型變數。(3)預設聲明。3、常用內部函數。4、運算符與表達式:(1)算術運算符。(2)關系運算符與邏輯運算符。(3)表達式的執行順序。四、數據輸入、輸出1、數據輸出:(1)Print方法。(2)與Print方法有關的函數(Tab、Spc、Space$)。(3)格式輸出(Fomat$)。2、InputBox函數。3、MsgBox函數和MsgBox語句。4、字形。5、列印機輸出:(1)直接輸出。(2)窗體輸出。五、常用標准控制項1、文本控制項:(1)標簽。(2)文本框。2、圖形控制項:(1)圖片框,圖像框的屬性,事件和方法。(2)圖形文件的裝入。(3)直線和形狀。3、按鈕控制項。4、選擇控制項:復選框和單選按鈕。5、選擇控制項:列表框和組合框。6、滾動條。7、計時器。8、框架。9、焦點與Tab順序。六、控制結構1、選擇結構:(1)單行結構條件語句。(2)塊結構條件語句。(3)IIf函數。2、多分支結構。3、For循環控制結構。4、當循環控制結構。5、Do循環控制結構。6、多重循環。7.GoTo型控制:(1)GoTo語句。(2)On-GoTo語句。七、數組1、數組的概念:(1)數組的定義。(2)靜態數組與動態數組。2、數組的基本操作:(1)數組元素的輸入、輸出和復制。(2)ForEachNext語句。(3)數組的初始化。3、控制項數組。八、過程1、Sub過程:(1)Sub過程的建立。(2)調用Sub過程。(3)通用過程與事件過程。2、Function過程:(1)Function過程的定義。(2)調用Function過程。3、參數傳送:(1)形參與實參。(2)引用。(3)傳值。(4)數組參數的傳送。4、可選參數與可變參數。5、對象參數:(1)窗體參數。(2)控制項參數。九、菜單與對話框1、用菜單編輯器建立菜單2、菜單項的控制:(1)有效性控制。(2)菜單項標記。(3)鍵盤選擇。3、菜單項的增減。4、彈出式菜單。5、通用對話框。6、文件對話框。7、其他對話框(顏色、字體、列印對話框)。十、多重窗體與環境應用1、建立多重窗體應用程序。2、多重窗體程序的執行與保存。3、VisualBasic工程結構。(1)標准模塊。(2)窗體模塊。(3)SubMain過程。4、閑置循環與DoEvents語句。十一、鍵盤與滑鼠事件過程1、KeyPress事件。2、KeyDown與KeyUp事件。3、滑鼠事件。4、滑鼠游標。5、拖放。十二、數據文件1、文件的結構和分類。2、文件操作語句和函數。3、順序文件:(1)順序文件的寫操作。(2)順序文件的讀操作。4、隨機文件:(1)隨機文件的打開與讀寫操作。(2)隨機文件中記錄的增加與刪除。(3)用控制項顯示和修改隨機文件。5、文件系統控制項:(1)驅動器列表框和目錄列表框。(2)文件列表框。6、文件基本操作。考試方式1、筆試:90分鍾,滿分100分,其中含公共基礎知識部分的30分。2、上機操作:90分鍾,滿分100分。上機操作包括:(l)基本操作。(2)簡單應用。(3)綜合應用。二級(VisualFoxPro資料庫程序設計)考試大綱基本要求1、具有資料庫系統的基礎知識。2,基本了解面向對象的概念。3、掌握關系資料庫的基本原理。4、掌握資料庫程序設計方法。5、能夠使用VisualFoxPro建立一個小型資料庫應用系統。考試內容一、VisualFoxPro基礎知識1、基本概念:資料庫、數據模型、資料庫管理系統、類和對象、事件、方法。2、關系資料庫(l)關系資料庫:關系模型、關系模式、關系、元組、屬性、域、主關鍵字和外部關鍵字。(2)關系運算:選擇、投影、連接。(3)數據的一致性和完整性:實體完整性、域完整性、參照完整性。3、VisualFoxPro系統特點與工作方式:(1)Windows版本資料庫的特點。(2)數據類型和主要文件類型。(3)各種設計器和向導。(4)工作方式:交互方式(命令方式、可視化操作)和程序運行方式。4、VisualFoxPro的基本數據元素:(1)常量、變數、表達式。(2)常用函數:字元處理函數、數值計算函數、日期時間函數、數據類型轉換函數、測試函數。二、VisualFoxPro資料庫的基本操作1、資料庫和表的建立、修改與有效性檢驗:(1)表結構的建立與修改。(2)表記錄的瀏覽、增加、刪除與修改。(3)創建資料庫,向資料庫添加或移出表。(4)設定欄位級規則和記錄級規則。(5)表的索引:主索引、候選索引、普通索引、唯一索引。2、多表操作:(1)選擇工作區。(2)建立表之間的關聯:一對一的關聯;一對多的關聯。(3)設置參照完整性。(4)建立表間臨時關聯。3、建立視圖與數據查詢:(l)查詢文件的建立、執行與修改。(2)視圖文件的建立、查看與修改。(3)建立多表查詢。(3)建立多表視圖。三、關系資料庫標推語言sqll、SQL的數據定義功能:(1)CREATETABLE-SQL。(2)ALTERTABLE-SQL。2、SQL的數據修改功能:(1)DELETE-SQL。(2)INSERT-SQL。(3)UPDATE-SQL。3、SQL的數據查詢功能:(1)簡單查詢。(2)嵌套查詢。(3)連接查詢。內連接外連接:左連接,右連接,完全連接。(4)分組計算查詢。(5)集合的並運算。四、項目管理器、設計器和向導的使用1、使用項目管理器:(1)使用"數據"選項卡。(2)使用"文檔"選項卡。2、使用表單設計器:(1)在表單中加入和修改控制項對象。(2)設定數據環境。3、使用菜單設計器:(1)建立主選項。(2)設計子菜單。(3)設定菜單選項程序代碼。4、使用報表設計器:(1)生成快速報表。(2)修改報表布局。(3)設計分組報表。(4)設計多欄報表。5、使用應用程序向導。6、應用程序生成器與連編應用程序。五、VisualFoxPro程序設計1、命令文件的建立與運行:(1)程序文件的建立。(2)簡單的互動式輸入輸出命令。(3)應用程序的調試與執行。2、結構化程序設計:(1)順序結構程序設計。(2)選擇結構程序設計。(3)循環結構程序設計。3、過程與過程調用:(1)子程序設計與調用。(2)過程與過程文件。(3)局部變數和全局變數、過程調用中的參數傳遞。4、用戶定義對話框(MESSAGEBOX)的使用。考試方式1、筆試:90分鍾,滿分100分,其中含公共基礎知識部分的30分。2、上機操作:90分鍾,滿分100分。(l)基本操作。(2)簡單應用。(3)綜合應用。最新二級C++語言程序設計考試大綱基本要求1.掌握C++語言的基本語法規則。2.熟練掌握有關類與對象的相關知識。3.能夠閱讀和分析C++程序。4.能夠採用面向對象的編程思路和方法編寫應用程序。5.能熟練使用VisualC++6.0集成開發環境編寫和調試程序。考試內容一、C++語言概述1.了解C++語言的基本符號。2.了解C++語言的詞彙(保留字、標識符、常量、運算符、標點符號等)。3.掌握C++程序的基本框架(結構程序設計框架、面向對象程序設計框架等)。4.能夠使用VisualC++6.0集成開發環境編輯、編譯、運行與調試程序。二、數據類型、表達式和基本運算1.掌握C++數據類型(基本類型,指針類型)及其定義方法。2.了解C++的常量定義(整型常量,字元常量,邏輯常量,實型常量,地址常量,符號常量)。3.掌握變數的定義與使用方法(變數的定義及初始化,全局變數,局部變數)。4.掌握C++運算符的種類、運算優先順序和結合性。5.熟練掌握C++表達式類型及求值規則(賦值運算,算術運算符和算術表達式,關系運算凸叵當澩鍤劍嘸慫惴吐嘸澩鍤劍跫慫悖剛朐慫悖漢瘧澩鍤劍?三、C++的基本語句1.掌握C++的基本語句,例如賦值語句、表達式語句、復合語句、輸入、輸出語句和空語句等。2.用if語句實現分支結構。3.用switch語句實現多分支選擇結構。4.用for語句實現循環結構。5.用while語句實現循環結構。6.用do…while語句實現循環結構。7.轉向語句(goto,continue,break和return)。8.掌握分支語句和循環語句的各種嵌套使用。四、數組、指針與引用1.掌握一維數組的定義、初始化和訪問,了解多維數組的定義、初始化和訪問。2.了解字元串與字元數組。3.熟練掌握常用字元串函數(strlen,strcpy,strcat,strcmp,strstr等)。4.指針與指針變數的概念,指針與地址運算符,指針與數組。5.引用的基本概念,引用的定義與使用。五、掌握函數的有關使用1.函數的定義方法和調用方法。2.函數的類型和返回值。3.形式參數與實在參數,參數值的傳遞。4.變數的作用域、生存周期和存儲類別(自動,靜態,寄存器,外部)。5.遞歸函數。6.函數重載。7.內聯函數。8.帶有預設參數值的函數。六、熟練掌握類與對象的相關知識1.類的定義方式、數據成員、成員函數及訪問許可權(public,private,protected)。2.對象和對象指針的定義與使用。3.構造函數與析構函數。4.靜態數據成員與靜態成員函數的定義與使用方式。5.常數據成員與常成員函數。6.this指針的使用。7.友元函數和友元類。8.對象數組與成員對象。七、掌握類的繼承與派生知識1.派生類的定義和訪問許可權。2.繼承基類的數據成員與成員函數。3.基類指針與派生類指針的使用。4.虛基類。八、了解多態性概念1.虛函數機制的要點。2.純虛函數與抽象基類、虛函數。3.了解運算符重載。九、模板1.簡單了解函數模板的定義和使用方式。2.簡單了解類模板的定義和使用方式。十、輸入輸出流1.掌握C++流的概念。2.能夠使用格式控制數據的輸入輸出。3.掌握文件的I/O操作。考試方式1.筆試:90分鍾,滿分100分,其中含公共基礎知識部分的30分。2.上機操作:90分鍾,滿分100分。上機操作包括:(1)基本操作。(2)簡單應用。(3)綜合應用。新版Access考試大綱新版NCREAccess資料庫程序設計語言考試大綱公共基礎知識Access資料庫程序設計基本要求1.具有資料庫系統的基礎知識。2.基本了解面向對象的概念。3.掌握關系資料庫的基本原理。4.掌握資料庫程序設計方法。5.能使用Access建立一個小型資料庫應用系統。考試內容一、資料庫基礎知識1.基本概念:資料庫,數據模型,資料庫管理系統,類和對象,事件。2.關系資料庫基本概念:關系模型(實體的完整性,參照的完整性,用戶定義的完整性),關系模式,關系,元組,屬性,欄位,域,值,主關鍵字等。3.關系運算基本概念:選擇運算,投影運算,連接運算。4.SQL基本命令:查詢命令,操作命令。5.Access系統簡介:(1)Access系統的基本特點。(2)基本對象:表,查詢,窗體,報表,頁,宏,模塊。二、資料庫和表的基本操作1.創建資料庫:(1)創建空資料庫。(2)使用向導創建資料庫。2.表的建立:(1)建立表結構:使用向導,使用表設計器,使用數據表。(2)設置欄位屬性。(3)輸入數據:直接輸入數據,獲取外部數據。3.表間關系的建立與修改:(1)表間關系的概念:一對一,一對多。(2)建立表間關系。(3)設置參照完整性。4.表的維護:(1)修改表結構:添加欄位,修改欄位,刪除欄位,重新設置主關鍵字。(2)編輯表內容:添加記錄,修改記錄,刪除記錄,復制記錄。(3)調整表外觀。5.表的其他操作:(1)查找數據。(2)替換數據。(3)排序記錄。(4)篩選記錄。三、查詢的基本操作1.查詢分類:(1)選擇查詢。(2)參數查詢。(3)交*表查詢。(4)操作查詢。(5)SQL查詢。2.查詢准則:(1)運算符。(2)函數。(3)表達式。3.創建查詢:(1)使用向導創建查詢。(2)使用設計器創建查詢。(3)在查詢中計算。4.操作已創建的查詢:(1)運行已創建的查詢。(2)編輯查詢中的欄位。(3)編輯查詢中的數據源。(4)排序查詢的結果。四、窗體的基本操作1.窗體分類:(1)縱欄式窗體。(2)表格式窗體。(3)主/子窗體。(4)數據表窗體。(5)圖表窗體。(6)數據透視表窗體。2.創建窗體:(1)使用向導創建窗體。(2)使用設計器創建窗體:控制項的含義及種類,在窗體中添加和修改控制項,設置控制項的常見屬性。五、報表的基本操作1.報表分類:(1)縱欄式報表;(2)表格式報表。(3)圖表報表。(4)標簽報表。2.使用向導創建報表。3.使用設計器編輯報表。4.在報表中計算和匯總。六、頁的基本操作1.數據訪問頁的概念。2.創建數據訪問頁:(1)自動創建數據訪問頁。(2)使用向導數據訪問頁。七、宏1.宏的基本概念。2.宏的基本操作:(1)創建宏:創建一個宏,創建宏組。(2)運行宏。(3)在宏中使用條件。(4)設置宏操作參數。(5)常用的宏操作。八、模塊1.模塊的基本概念:(1)類模塊。(2)標准模塊。(3)將宏轉換為模塊。2.創建模塊:(1)創建VBA模塊:在模塊中加入過程,在模塊中執行宏。(2)編寫事件過程:鍵盤事件,滑鼠事件,窗口事件,操作事件和其他事件。3.調用和參數傳遞。4.VBA程序設計基礎:(1)面向對象程序設計的基本概念。(2)VBA編程環境:進入VBE,VBE界面。(3)VBA編程基礎:常量,變數,表達式。(4)VBA程序流程式控制制:順序控制,選擇控制,循環控制。(5)VBA程序的調試:設置斷點,單步跟蹤,設置監視點。考試方式1.筆試:90分鍾,滿分100分,其中含公共基礎知識部分的30分。2.上機操作:90分鍾,滿分100分。上機操作包括:(1)基本操作。(2)簡單應用。(3)綜合應用2004年新版NCRE二級Java語言程序設計考試大綱公共基礎知識Java語言程序設計基本要求1.掌握Java語言的特點,實現機制和體系結構。2.掌握Java語言中面向對象的特性。3.掌握Java語言提供的數據類型和結構。4.掌握Java語言編程的基本技術。5.會編寫Java用戶界面程序。6.會編寫Java簡單應用程序。7.會編寫Java小應用程序(Applet)。8.了解Java的應用。考試內容一、Java語言的特點和實現機制二、Java體系結構1.JDK目錄結構。2.Java的API結構。3.開發環境設置。4.Java程序結構。三、Java語言中面向對象的特性1.面向對象編程的基本概念和特徵。2.類的基本組成和使用。3.對象的生成、使用和刪除。4.介面與包。5.Java類庫的常用類和介面。四、Java簡單數據類型及運算1.變數和常量。2.基本數據類型及轉換。3.Java類庫中對簡單數據類型的類包裝。4.運算符和表達式運算。5.數組和字元串。五、Java語言的基本語句1.表達式語句。2.條件語句。3.循環語句。4.注釋語句。5.異常處理。六、Java編程技術基礎1.線程的概念和使用。2.同步與共享。3.串列化概念和目的。4.串列化方法。5.串列化的舉例。6.基於文本的應用。7.文件和文件I/O。8.匯集(collections)介面。七、編寫用戶界面程序1.圖形用戶界面。2.AWT庫簡介。3.Swing簡介。4.AWT與Swing比較。八、編寫小應用程序(Applet)1.小應用程序概念。2.安全機制。3.Applet執行過程。4.Applet的圖形繪制。5.Applet的窗口。6.Applet的工作環境。7.JavaApplication和Applet。九、Java的應用十、J2DK的下載和操作考試方式1.筆試:90分鍾,滿分100分,其中含公共基礎知識部分的30分。2.上機操作:90分鍾,滿分100分。上機題目類型要求:(1)基本操作。(2)簡單應用。3綜合應用

㈡ android 資料庫框架哪個好

請看sqllite增刪改查的小例子,例子來自於android學習手冊,裡面有源碼。android學習手冊包含9個章節,108個例子,源碼文檔隨便看,例子都是可交互,可運行,源碼採用android studio目錄結構,高亮顯示代碼,文檔都採用文檔結構圖顯示,可以快速定位。360手機助手中下載,圖標上有貝殼

先介紹一下ORM的概念,以前也一直聽說,不過沒詳細了解啥意思。其全稱叫做對象關系映射(Object Relation Mapping),是一種程序設計技術,用於實現面向對象編程語言里不同類型系統的數據之間的轉換。從效果上說,它其實是創建了一個可在編程語言里使用的「虛擬對象資料庫」。
面向對象是從軟體工程基本原則(如耦合、聚合、封裝)的基礎上發展起來的,而關系資料庫則是從數學理論發展而來的. 兩者之間是不匹配的.而ORM作為項目中間件形式實現數據在不同場景下數據關系映射. 對象關系映射是一種為了解決面向對象與關系資料庫存在的互不匹配的現象的技術.ORM就是這樣而來的。


下面先列出幾個ORM框架:ORMLite、green、ormndroid、androrm、ActiveAndroid

其中以前最早接觸過ormlite,GreenDao了解過,其他的幾個真沒怎麼見過。所以這里主要介紹ormlite和GreenDao。

最開始現在stackoverflow輸入sqlite orm關鍵字,搜索出了一些相關的文章:http://stackoverflow.com/search?q=sqlite+orm,你會發現很有趣的是,ormlite的作者Gray和greenDao的開發團隊green robot同時出現在一些帖子中,向提問者推薦他們的框架。當然也會有一些熱心的朋友推薦ormdroid。其實不論在stackoverflow上還是官網上,greenDao的團隊的比較都是針對ORMLite的,可見,其主要的競爭對手,或許稱互相促進者更合適,畢竟他們沒有什麼商業利益,完全開源。所以開源的ORM框架中,ormLite和greenDao是最火的。其它幾種就不做比較,有興趣的朋友可以到官網看下。下面對ORMLite和GreenDao做個簡單的比較:


ormlite
基於註解和反射的的方式,導致ormlite性能有著一定的損失(註解其實也是利用了反射的原理)

優點:
文檔較全面,社區活躍,有好的維護,使用簡單,易上手。

缺點:
基於反射,效率較低

GreenDao

官網中明確指明了其首要設計目標:
Maximum performance (probably the fastest ORM for Android):系能最大化
Easy to use APIs:便於使用
Highly optimized for Android:對於Android高度優化
Minimal memory consumption:最小化內存開銷
Small library size, focus on the essentials:較小的文件體積,只集中在必要的部分上。

優點:
效率很高,插入和更新的速度是sqlite的2倍,載入實體的速度是ormlite的4.5倍。官網測試結果:http:/

/green-orm.com/features/
文件較小(<100K),佔用更少的內存 ,但是需要create Dao,
操作實體靈活:支持get,update,delete等操作


缺點:

學習成本較高。其中使用了一個java工程根據一些屬性和規則去generate一些基礎代碼,類似於javaBean但會有一些規則,另外還有QueryBuilder、Dao等API,所以首先要明白整個過程,才能方便使用。沒有ORMLite那樣封裝的完整,不過greenDao的官網上也提到了這一點,正是基於generator而不是反射,才使得其效率高的多。


另外GreenDao支持Protocol buffers協議數據的直接存儲 ,如果通過protobuf協議和伺服器交互,不需要任何的映射。

Protocol Buffers協議:以一種高效可擴展的對結構化數據進行編碼的方式。google內部的RPC協議和文件格式大部分都是使用它。
RPC:遠程過程調用(Remote Procere Call,RPC)是一個計算機通信協議,它是一種通過網路從遠程計算機程序上請求服務,而不需要了解底層網路技術的協議。


可能因為GreenDao的效率高,而且需要學習成本高點,所以個人還是有興趣學一學的。接下來會發布一些GreenDao更詳細的文章,有對官方文檔的翻譯還有代碼的簡單講解。

或許以上內容很簡單,只是簡單的介紹了下,對其它幾個框架並沒有做更多的介紹,有了解的朋友可以提出來,可以提出來,大家一起探討下。

㈢ xutils3和xutils3什麼區別

區別如下:

1、資料庫方面,兩者註解映射不同

xUtils2下 @Table(name="stu",execAfterTableCreated ="" ),而xUtils3下直接是代替了onCreated。

2、資料庫創建和查詢有改動,但基本還是相同

xutils2中db.findFirst(Selector.from(Parent.class)。where.....而xUtils3中則是db.selector(Parent.class).where(....).findFirst();但是裡面基本的條件例如where,whereBuilder等參數還是沒變的。

3、網路操作方面不同

xUtils3是直接x.image().bind..或者x.http().post()等取代了http.send(method,url,callback)。

4、視圖方面不同

xutils3中@Event()代替了@onClick(),而且下面的private代替了public。

㈣ android中的常用框架有哪些

Afinal框架
主要有四大模塊:
(1) 資料庫模塊:android中的orm框架,使用了線程池對sqlite進行操作。
(2) 註解模塊:android中的ioc框架,完全註解方式就可以進行UI綁定和事件綁定。無需findViewById和setClickListener等。
(3) 網路模塊:通過httpclient進行封裝http數據請求,支持ajax方式載入,支持下載、上傳文件功能。
(4) 圖片緩存模塊:通過FinalBitmap,imageview載入bitmap的時候無需考慮bitmap載入過程中出現的oom和android容器快速滑動時候出現的圖片錯位等現象。
FinalBitmap可以配置線程載入線程數量,緩存大小,緩存路徑,載入顯示動畫等。FinalBitmap的內存管理使用lru演算法,
沒有使用弱引用(android2.3以後google已經不建議使用弱引用,android2.3後強行回收軟引用和弱引用,詳情查看android官方文檔),
更好的管理bitmap內存。FinalBitmap可以自定義下載器,用來擴展其他協議顯示網路圖片,比如ftp等。同時可以自定義bitmap顯示器,
在imageview顯示圖片的時候播放動畫等(默認是漸變動畫顯示)。

xUtils框架

主要有四大模塊:
(1) 資料庫模塊:android中的orm框架,一行代碼就可以進行增刪改查;
支持事務,默認關閉;
可通過註解自定義表名,列名,外鍵,唯一性約束,NOT NULL約束,CHECK約束等(需要混淆的時候請註解表名和列名);
支持綁定外鍵,保存實體時外鍵關聯實體自動保存或更新;
自動載入外鍵關聯實體,支持延時載入;
支持鏈式表達查詢,更直觀的查詢語義,參考下面的介紹或sample中的例子。
(2) 註解模塊:android中的ioc框架,完全註解方式就可以進行UI,資源和事件綁定;
新的事件綁定方式,使用混淆工具混淆後仍可正常工作;
目前支持常用的20種事件綁定,參見ViewCommonEventListener類和包com.lidroid.xutils.view.annotation.event。
(3) 網路模塊:支持同步,非同步方式的請求;
支持大文件上傳,上傳大文件不會oom;
支持GET,POST,PUT,MOVE,COPY,DELETE,HEAD,OPTIONS,TRACE,CONNECT請求;
下載支持301/302重定向,支持設置是否根據Content-Disposition重命名下載的文件;
返迴文本內容的請求(默認只啟用了GET請求)支持緩存,可設置默認過期時間和針對當前請求的過期時間。
(4) 圖片緩存模塊:載入bitmap的時候無需考慮bitmap載入過程中出現的oom和android容器快速滑動時候出現的圖片錯位等現象;
支持載入網路圖片和本地圖片;
內存管理使用lru演算法,更好的管理bitmap內存;
可配置線程載入線程數量,緩存大小,緩存路徑,載入顯示動畫等...

㈤ xutils里的dbutils資料庫和activeandroid的區別

xUtils中DbUtils默認把資料庫存在哪裡,還有就是,如果是有關聯的兩張表,在對數據進行存儲的時候該怎樣操作?
------解決思路----------------------
一般是存儲在默認的Android 系統 DATA 下面的你的packagename 目錄下,你可以調試用DDMS文件管理看看,
多表關聯 只不過是查詢語句的問題
------解決思路----------------------
就是優化過的sqlite吧,可能在/data/data/包名/database/XX.db
------解決思路----------------------
存儲在sqlite的xUtils.db中

㈥ 增使用的是DBManager的哪些方法

1.DaoConfig Config=XUtil.getDaoConfig();
2.DbManager db = x.getDb(Config);
這里我要告訴大家的是,資料庫裡面表的創建的時間,只有在你對資料庫裡面的操作涉及到這張表的操作時,會先判斷當前的表是否存在,如果不存在,才會創建一張表,如果存在,才會進行相應的CRUD操作,但是只要我們想進行一張表的CRUD操作,我們必須先執行上面的2步,通俗點說就是必須拿到一個Dbmanger這個對象,我為什麼這么說呢?那麼咱們就先看一下DbManger的廬山真面目吧。
DbManager部分源碼如下:

[java] view plain print?
public interface DbManager extends Closeable {

DaoConfig getDaoConfig();

SQLiteDatabase getDatabase();

/**
* 保存實體類或實體類的List到資料庫,
* 如果該類型的id是自動生成的, 則保存完後會給id賦值.
*
* @param entity
* @return
* @throws DbException
*/
boolean saveBindingId(Object entity) throws DbException;

/**
* 保存或更新實體類或實體類的List到資料庫, 根據id對應的數據是否存在.
*
* @param entity
* @throws DbException
*/
void saveOrUpdate(Object entity) throws DbException;

/**
* 保存實體類或實體類的List到資料庫
*
* @param entity
* @throws DbException
*/
void save(Object entity) throws DbException;

/**
* 保存或更新實體類或實體類的List到資料庫, 根據id和其他唯一索引判斷數據是否存在.
*
* @param entity
* @throws DbException
*/
void replace(Object entity) throws DbException;

///////////// delete
void deleteById(Class<?> entityType, Object idValue) throws DbException;

void delete(Object entity) throws DbException;

void delete(Class<?> entityType) throws DbException;

void delete(Class<?> entityType, WhereBuilder whereBuilder) throws DbException;

///////////// update
void update(Object entity, String... updateColumnNames) throws DbException;

void update(Object entity, WhereBuilder whereBuilder, String... updateColumnNames) throws DbException;

///////////// find
<T> T findById(Class<T> entityType, Object idValue) throws DbException;

<T> T findFirst(Class<T> entityType) throws DbException;

<T> List<T> findAll(Class<T> entityType) throws DbException;

<T> Selector<T> selector(Class<T> entityType) throws DbException;

DbModel findDbModelFirst(SqlInfo sqlInfo) throws DbException;

List<DbModel> findDbModelAll(SqlInfo sqlInfo) throws DbException;

///////////// table

/**
* 刪除表
*
* @param entityType
* @throws DbException
*/
void dropTable(Class<?> entityType) throws DbException;

/**
* 添加一列,
* 新的entityType中必須定義了這個列的屬性.
*
* @param entityType
* @param column
* @throws DbException
*/
void addColumn(Class<?> entityType, String column) throws DbException;

///////////// db

/**
* 刪除庫
*
* @throws DbException
*/
void dropDb() throws DbException;

/**
* 關閉資料庫,
* xUtils對同一個庫的鏈接是單實例的, 一般不需要關閉它.
*
* @throws IOException
*/
void close() throws IOException;

///////////// custom
void execNonQuery(SqlInfo sqlInfo) throws DbException;

void execNonQuery(String sql) throws DbException;

Cursor execQuery(SqlInfo sqlInfo) throws DbException;

Cursor execQuery(String sql) throws DbException;
}

通過DbManager這個類我們知道主要它做了以下幾件事情:
1.getDaoConfig 獲取資料庫的配置信息
2.getDatabase 獲取資料庫實例
3.saveBindingId saveOrUpdate save 插入數據的3個方法(保存數據)
4.replace 只有存在唯一索引時才有用 慎重
5.delete操作的4種方法(刪除數據)
6.update操作的2種方法(修改數據)
7.find操作6種方法(查詢數據)
8.dropTable 刪除表
9.addColumn 添加一列
10.dropDb 刪除資料庫

㈦ android 中的資料庫存在在工程中的哪個目錄下

Android中有內置的資料庫SQLite,其默認存儲位置是在:標題欄中Window->show view->File Exporer->data/data/應用項目的包名,例如:假如有一個操作Android SQLite資料庫的應用包名為com.example.xutilsdemo,那麼其內置的資料庫的存儲位置即為:/data/data/com.example.xutilsdemo/databases/xxx.db

㈧ android平台的app 手機客戶端和後台伺服器怎麼進行數據交互的

首先不要管安卓端還是蘋果端,現在一般都是響應式的app,你放到安卓或者蘋果或者pc或者平板都是沒有問題的。一般採用的是http介面通訊,或者socket連接。具體你要去查資料找Demo了。而且現在主流是採用html5開發或者混合開發了。所以最好是伺服器提供appAPI介面,通過http訪問伺服器,獲取數據,數據一般是json,或者xml,拿到後解析數據就可以了,然後再用UI框架或者其他框架或者自定義的UI封裝下格式很漂亮了,至於cookie和session等,看你的習慣,網路驗證和簽名那些也自己看習慣,如果涉及到大數據,還需要引入第三方框架的,直接引入就可以了,不過推薦自己寫,防止侵權。都是很通用的。

㈨ android開發一般都使用什麼框架

目前框架使用的主要都是開源框架,都可以在github上找到:
1、volley
2、android-async-http
3、Afinal框架
4、xUtils框架
5、ThinkAndroid
6、LoonAndroid
主要有以下模塊:
(1) 自動注入框架(只需要繼承框架內的application既可)
(2)
圖片載入框架(多重緩存,自動回收,最大限度保證內存的安全性)
(3) 網路請求模塊(繼承了基本上現在所有的http請求)
(4)
eventbus(集成一個開源的框架)
(5) 驗證框架(集成開源框架)
(6) json解析(支持解析成集合或者對象)

(7) 資料庫(不知道是哪位寫的 忘記了)
(8) 多線程斷點下載(自動判斷是否支持多線程,判斷是否是重定向)
(9)
自動更新模塊
(10) 一系列工具類

㈩ android資料庫存儲,代碼創建資料庫、表,實現編輯框內輸入,點擊按鈕提交進行存入;從資料庫中提

常量類:ConstantUtil

publicclassConstantUtil{

//資料庫名稱
_NAME="user_manager.db";
//資料庫版本號
publicstaticfinalintDATABASE_VERSION=1;

//表名
publicstaticfinalStringTABLE_NAME="user_info";
//欄位名
publicstaticfinalStringUSER_ID="userId";
publicstaticfinalStringUSER_NAME="username";
publicstaticfinalStringUSER_PASSWORD="password";
publicstaticfinalStringUSER_ADDRESS="address";



}


自定義SQLiteOpenHelper:MySQLiteOpenHelper

{

//定義一個SQLiteDatabase對象,對表進行相應的操作
;

publicMySQLiteOpenHelper(Contextcontext){
super(context,ConstantUtil.DATABASE_NAME,null,
ConstantUtil.DATABASE_VERSION);
mDatabase=getWritableDatabase();
}

/*
*創建表
*/
@Override
publicvoidonCreate(SQLiteDatabasedb){
//TODOAuto-generatedmethodstub

//sql語句
Stringsql="createtable"+ConstantUtil.TABLE_NAME+"("
+ConstantUtil.USER_ID+"integerprimarykey,"
+ConstantUtil.USER_NAME+"textnotnull,"
+ConstantUtil.USER_PASSWORD+"textnotnull,"
+ConstantUtil.USER_ADDRESS+"textnotnull)";
db.execSQL(sql);
}

@Override
publicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion){
//TODOAuto-generatedmethodstub
onCreate(db);
}

/**
*添加數據
*@paramcv
*@return
*/
publicbooleaninsertData(ContentValuescv){
returnmDatabase.insert(ConstantUtil.TABLE_NAME,null,cv)>0;
}

/**
*查詢所有數據
*@return
*/
publicList<Userinfo>queryData(){

List<Userinfo>userinfos=newArrayList<Userinfo>();
//從資料庫里查詢數據
Cursorcursor=mDatabase.query(ConstantUtil.TABLE_NAME,null,null,null,null,null,null);

if(cursor!=null){
//取出數據
while(cursor.moveToNext()){
Userinfouserinfo=newUserinfo();
userinfo.setUserId(cursor.getInt(0));
userinfo.setUsername(cursor.getString(1));
userinfo.setPassword(cursor.getString(2));
userinfo.setAddress(cursor.getString(3));
userinfos.add(userinfo);
}

}
returnuserinfos;

}

}

主Activity

{
//控制項
privateTextViewtxtName,txtPwd,txtAddress;
privateEditTextedtName,edtPwd,edtAddress;
privateListViewmListView;
//資料庫對象
;

privateUserinfoAdapteradapter;
/**.*/
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

findView();
init();
}

privatevoidfindView(){
//TODOAuto-generatedmethodstub

edtName=(EditText)findViewById(R.id.id_edit1);
edtPwd=(EditText)findViewById(R.id.id_edit2);
edtAddress=(EditText)findViewById(R.id.id_edit3);
mListView=(ListView)findViewById(R.id.id_listview);

}

privatevoidinit(){
//TODOAuto-generatedmethodstub
mySQLiteOpenHelper=newMySQLiteOpenHelper(MainActivity.this);
}

publicvoidonAction(Viewv){

switch(v.getId()){
caseR.id.id_btn_add:
//添加數據
StringuserName=edtName.getText().toString();
StringuserPwd=edtPwd.getText().toString();
StringuserAdress=edtAddress.getText().toString();
//傳入參數
ContentValuescv=newContentValues();
//列名和值
cv.put(ConstantUtil.USER_NAME,userName);
cv.put(ConstantUtil.USER_PASSWORD,userPwd);
cv.put(ConstantUtil.USER_ADDRESS,userAdress);
//得到結果
booleanflag=mySQLiteOpenHelper.insertData(cv);

if(flag){

Toast.makeText(MainActivity.this,"添加記錄成功",Toast.LENGTH_SHORT).show();

}else{

Toast.makeText(MainActivity.this,"添加記錄失敗",Toast.LENGTH_SHORT).show();
}

break;
caseR.id.id_btn_query:
//查詢數據
List<Userinfo>userinfos=mySQLiteOpenHelper.queryData();
if(adapter!=null){
adapter=null;
}
adapter=newUserinfoAdapter(userinfos);
mListView.setAdapter(adapter);

break;
default:
break;
}

}

//數據適配器
{

List<Userinfo>userinfos;
publicUserinfoAdapter(List<Userinfo>_userinfos){
this.userinfos=_userinfos;
}

@Override
publicintgetCount(){
//TODOAuto-generatedmethodstub
returnuserinfos.size();
}

@Override
publicObjectgetItem(intposition){
//TODOAuto-generatedmethodstub
returnuserinfos.get(position);
}

@Override
publiclonggetItemId(intposition){
//TODOAuto-generatedmethodstub
returnposition;
}

@Override
publicViewgetView(intposition,ViewconvertView,ViewGroupparent){
//TODOAuto-generatedmethodstub
if(convertView==null){
convertView=LayoutInflater.from(MainActivity.this).inflate(R.layout.listview_item,null);

txtName=(TextView)convertView.findViewById(R.id.id_txt_name);
txtPwd=(TextView)convertView.findViewById(R.id.id_txt_pwd);
txtAddress=(TextView)convertView.findViewById(R.id.id_txt_address);

txtName.setText(userinfos.get(position).getUsername());
txtPwd.setText(userinfos.get(position).getPassword());
txtAddress.setText(userinfos.get(position).getAddress());
}


returnconvertView;
}

}
}


完整源碼下載地址(附資料庫文件查詢軟體+運行效果圖):