新聞中心
LitePal是一款用于A(yíng)ndroid平臺(tái)的數(shù)據(jù)庫(kù)創(chuàng)建工具,它提供了簡(jiǎn)單易用的API,使得開(kāi)發(fā)者可以更快、更簡(jiǎn)便地創(chuàng)建和管理數(shù)據(jù)庫(kù)。LitePal的特點(diǎn)在于其簡(jiǎn)化了SQL語(yǔ)句的編寫(xiě)過(guò)程,同時(shí)也提供了一個(gè)輕量級(jí)的ORM框架,以便于管理數(shù)據(jù)庫(kù)中的數(shù)據(jù)對(duì)象。

創(chuàng)新互聯(lián)公司長(zhǎng)期為上千家客戶(hù)提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏(yíng)平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為集寧企業(yè)提供專(zhuān)業(yè)的網(wǎng)站制作、成都網(wǎng)站制作,集寧網(wǎng)站改版等技術(shù)服務(wù)。擁有十多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。
SQLite作為Android系統(tǒng)自帶的數(shù)據(jù)庫(kù),其使用簡(jiǎn)單、輕量、運(yùn)行速度快等優(yōu)點(diǎn)被廣泛地應(yīng)用于開(kāi)發(fā)過(guò)程中。而LitePal的目的就是簡(jiǎn)化SQLite的使用,在這一點(diǎn)上,LitePal的表現(xiàn)無(wú)疑是十分優(yōu)秀的。具有以下幾個(gè)特點(diǎn):
1.簡(jiǎn)單易用
LitePal提供了非常簡(jiǎn)單易用的API,使得開(kāi)發(fā)者可以通過(guò)少量的代碼快速創(chuàng)建和管理數(shù)據(jù)庫(kù)。然而,LitePal并不會(huì)破壞SQLite原生API的邏輯,它只是簡(jiǎn)化了這些API的使用方式,使得這些API更加易于理解和應(yīng)用。
比如,開(kāi)發(fā)者只需要使用以下類(lèi)似的代碼就可以創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)。
“`
LitePal.initialize(context);
“`
或者創(chuàng)建一個(gè)數(shù)據(jù)表,只需要在實(shí)體類(lèi)中添加注解,如下所示:
“`
public class Book extends LitePalSupport {
@Column(unique = true)
private String title;
@Column
private String author;
@Column
private double price;
// getters and setters
}
“`
如上所示,只需在實(shí)體類(lèi)中添加注解即可將實(shí)體類(lèi)映射到數(shù)據(jù)庫(kù)表中。從而簡(jiǎn)單易用的API使得開(kāi)發(fā)者的工作變得更加方便。
2.簡(jiǎn)化SQL語(yǔ)句
使用原生SQLite API開(kāi)發(fā),需要手動(dòng)編寫(xiě)復(fù)雜的SQL語(yǔ)句,而這些語(yǔ)句對(duì)于開(kāi)發(fā)者而言是相當(dāng)繁瑣和易錯(cuò)的。使用LitePal后,開(kāi)發(fā)者就可以完全避免使用SQL語(yǔ)句,而是采用更為直觀(guān)的對(duì)象調(diào)用方式,比如:
“`
// 插入一條數(shù)據(jù)
Book book = new Book();
book.setTitle(“Android Programming”);
book.setAuthor(“Bill Gates”);
book.setPrice(79.9);
book.save();
“`
實(shí)際上,LitePal會(huì)自動(dòng)轉(zhuǎn)換成SQL語(yǔ)句執(zhí)行相應(yīng)的數(shù)據(jù)操作,這就讓開(kāi)發(fā)者的工作變得輕松了很多。
3.提供ORM框架
LitePal提供了輕量級(jí)的ORM框架,使得開(kāi)發(fā)者可以更好地管理數(shù)據(jù)庫(kù)中數(shù)據(jù)對(duì)象。ORM框架可以將數(shù)據(jù)對(duì)象轉(zhuǎn)換為Java對(duì)象,從而使得開(kāi)發(fā)者可以更方便地操作這些數(shù)據(jù)對(duì)象,并且框架還提供了多種操作方法,比如查詢(xún)、刪除等等,從而讓開(kāi)發(fā)者的工作變得更加高效和方便。
例如,開(kāi)發(fā)者可以使用以下代碼查詢(xún)數(shù)據(jù)庫(kù)中的所有數(shù)據(jù)對(duì)象:
“`
List books = LitePal.findAll(Book.class);
“`
如上所示,LitePal提供了一個(gè)簡(jiǎn)單的方法,只需通過(guò)傳入相應(yīng)的數(shù)據(jù)對(duì)象類(lèi)型即可查詢(xún)數(shù)據(jù)庫(kù)中的所有數(shù)據(jù)對(duì)象。這樣的操作體驗(yàn)讓開(kāi)發(fā)者的工作變得更加簡(jiǎn)單。
:
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián),建站經(jīng)驗(yàn)豐富以策略為先導(dǎo)10多年以來(lái)專(zhuān)注數(shù)字化網(wǎng)站建設(shè),提供企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),響應(yīng)式網(wǎng)站制作,設(shè)計(jì)師量身打造品牌風(fēng)格,熱線(xiàn):028-86922220android開(kāi)發(fā)一般都使用什么框架
開(kāi)源框架推薦:
網(wǎng)絡(luò)
* (square/okhttp · GitHub)
* (loopj/android-async-http · GitHub)
事件總線(xiàn)
* (square/otto · GitHub)
* (greenrobot/EventBus · GitHub)
依賴(lài)注入
* (square/dagger · GitHub)
* (roboguice/roboguice · GitHub)
* (JakeWharton/butterknife · GitHub)
圖片
* (facebook/fresco · GitHub)
* (bumptech/glide · GitHub)
* (square/picasso · GitHub)
數(shù)據(jù)庫(kù)
* (greenrobot/greenDAO · GitHub)
* (j256/ormlite-android · GitHub)
* (LitePalFramework/陸擾毀LitePal · GitHub)
響應(yīng)式編程
* (ReactiveX/RxJava · GitHub)
* (ReactiveX/RxAndroid: RxJava bindings for An…)
日志輸出
* (orhanobut/logger: Simple, pretty and powerf…)
* (liaohuqiu/android-CLog)
* (ZhaoKaiQiang/KLog · GitHub)
* (pengwei1024/LogUtils · GitHub)
崩潰統(tǒng)計(jì)李睜平臺(tái)
* (騰訊Bugly – Android Crash(崩潰)_iOS Crash(崩潰)_ANR_卡頓)
* (Critterci – Developer Home)
* (The most powerful, yet lightest weight crash reporting solution for iOS and Android
developers.)
架構(gòu)設(shè)計(jì)
這個(gè)肯定得了解下MVC,MVP,MVVM還有設(shè)計(jì)模式這些,這里有幾個(gè)開(kāi)源項(xiàng)目推薦下
philm
Movie collection and information app for Android.
Github Movie collection and info…
SimpleNews
基于Material Design和MVP的新聞客戶(hù)端
Github地址:GitHub – liuling07/SimpleNews: 基于Material Design和MVP的新聞客戶(hù)端
GankDaily
A application show technical information every working days, use MVP pattern.
Github
SimplifyReader
Github地址:GitHub – SkillCollege/SimplifyReader: 一款基于Google Material Design設(shè)計(jì)開(kāi)發(fā)的Android客戶(hù)端,包括新聞簡(jiǎn)讀,圖片瀏覽,視頻爽看 ,音樂(lè)輕聽(tīng)以及二維碼掃描五個(gè)子模塊。
NBAPlus
Github · GitHub
PhotoNoter
Github
Meizhi
Github地址早備:drakeet/Meizhi: gank.io unofficial client, RxJava & Retrofit
DebugDrawer
Android Debug Drawer for faster development
Github · GitHub
ViewServer
Local server for Android’s HierarchyViewer
Github · GitHub
AndroidWiFiADB
IntelliJ/AndroidStudio plugin which provides a button to connect your Android device over WiFi to install, run and debug your applications without a USB connected.
Android開(kāi)發(fā)框架介紹
編輯文檔
學(xué)分 +2
開(kāi)發(fā)框架方面包含基本的應(yīng)用功能開(kāi)發(fā)、數(shù)據(jù)存儲(chǔ)、網(wǎng)絡(luò)訪(fǎng)問(wèn)這三大塊:
一、應(yīng)用方面
一般而言一個(gè)標(biāo)準(zhǔn)的Android程序由如下4部分組成即Activity、Broadcast Intent Receiver、Service、Content Provider: 1. Activity是最頻繁、最基本的模塊,在A(yíng)ndroid中,一個(gè)Activity就是手機(jī)上一屏,相當(dāng)于一個(gè)網(wǎng)頁(yè)一樣,所不同的是,每個(gè)Activity運(yùn)行結(jié)束了,有個(gè)返回值,類(lèi)似一個(gè)函數(shù)一樣。Android系統(tǒng)會(huì)自動(dòng)記錄從首頁(yè)到其他頁(yè)面的所有跳轉(zhuǎn)記錄并且自動(dòng)將以前的Activity壓入系統(tǒng)堆棧,用戶(hù)可以通過(guò)編程的方式刪除歷史堆棧中的Activity Instance。
Activity類(lèi)中主要是跟界面資源文件關(guān)聯(lián)起來(lái)(res/layout目錄下的xml資源,也可以不含任何界面資源),內(nèi)部包含控件的顯示設(shè)計(jì)、界面交互設(shè)計(jì)、事件的響應(yīng)設(shè)計(jì)以及數(shù)據(jù)處理設(shè)計(jì)、導(dǎo)航設(shè)計(jì)等application設(shè)計(jì)的方方面面。 2. Broadcast Intent Receiver
Intent提供了各種不同Activity進(jìn)行跳轉(zhuǎn)的機(jī)制,譬如如果從A activity跳轉(zhuǎn)到B activity,使用Intent來(lái)實(shí)現(xiàn)如下: Intent in = new Intent(A.this, B.class); startActivity(in);
BroadcastReceiver提供了各種不同的Android應(yīng)用程序進(jìn)行進(jìn)行進(jìn)程間通訊的機(jī)制,譬如當(dāng)呼叫來(lái)臨時(shí),可以通過(guò)BroadcastReceiver發(fā)布廣播消息。對(duì)于用戶(hù)而言,BroadcastReceiver是不透明的,用戶(hù)無(wú)法看到這個(gè)事件,BroadcastReceiver通過(guò)NotificationManager來(lái)通知用戶(hù)這些事件發(fā)生了,它既可以在資源AndroidManifest.xml中注冊(cè),也可以在代碼中通過(guò)Context.registerReceiver()進(jìn)行注冊(cè),只要是注冊(cè)了,當(dāng)事件來(lái)臨的時(shí)候,即時(shí)程序沒(méi)有啟動(dòng),系統(tǒng)也在需要的時(shí)候會(huì)自動(dòng)啟動(dòng)此應(yīng)用程序;另外各應(yīng)用程序很方便地通過(guò)Context.sendBroadcast()將自己的事情廣播給其他應(yīng)用程序;
3. Service,跟Windows當(dāng)中的Service完全是一個(gè)概念,用戶(hù)可以通過(guò)startService(Intent service)啟動(dòng)一個(gè)Service,也可通過(guò)Context.bindService來(lái)綁定一個(gè)Service.
4. Content Provider,由于A(yíng)ndroid應(yīng)用程序內(nèi)部的數(shù)據(jù)都是私有的,Content Provider提供了應(yīng)用程序之間數(shù)據(jù)交換的機(jī)制,一個(gè)程序可以通過(guò)實(shí)現(xiàn)一個(gè)ContentProvider的抽象接口將自己埋顫肆的數(shù)據(jù)暴露出去,并且隱蔽了具體的數(shù)據(jù)存儲(chǔ)實(shí)現(xiàn),標(biāo)準(zhǔn)的ContentProvider提供了基本的CRUD(Create,Read,Update,Delete)的接口,并且實(shí)現(xiàn)了權(quán)限機(jī)制,保護(hù)了數(shù)據(jù)交互的安全性; 一個(gè)標(biāo)準(zhǔn)的Android應(yīng)用程序的工程文件包含如下幾大部分: -> Java源代碼部分(包含Activity),都在src目錄當(dāng)中;洞散
-> R.java文件,這個(gè)文件是Eclipse自動(dòng)生成與維護(hù)的,開(kāi)發(fā)者不需要修改,提供了Android對(duì)的資源全局索引; -> Android Library,這個(gè)是應(yīng)用運(yùn)行的Android庫(kù);
-> assets目錄,這個(gè)目錄里面主要用與放置多媒體等一些文件;
-> res目錄,放置的彎轎是資源文件,跟VC中的資源目錄基本類(lèi)似,其中的drawable包含的是圖片文件,layout里面包含的是布局文件,values目錄里面主要包含的是字符串(strings.xml)、顏色(colors.xml)以及數(shù)組(arrays.xml)資源;
-> AndroidManifest.xml,這個(gè)文件異常重要,是整個(gè)應(yīng)用的配置文件,在這個(gè)文件中,需要聲明所有用到的Activity、Service、Receiver等。
開(kāi)源框架推薦:
網(wǎng)絡(luò)
* (square/okhttp · GitHub)
* (loopj/android-async-http · GitHub)
事件總線(xiàn)
* (square/otto · GitHub)
* (greenrobot/EventBus · GitHub)
依賴(lài)注入
* (square/dagger · GitHub)
* (roboguice/roboguice · GitHub)
* (JakeWharton/butterknife · GitHub)
圖片
* (facebook/fresco · GitHub)
* (bumptech/glide · GitHub)
* (square/picasso · GitHub)
數(shù)據(jù)庫(kù)
* (greenrobot/greenDAO · GitHub)
* (j256/ormlite-android · GitHub)
* (LitePalFramework/陸擾毀LitePal · GitHub)
響應(yīng)式編程
* (ReactiveX/RxJava · GitHub)
* (ReactiveX/RxAndroid: RxJava bindings for An…)
日志輸出
* (orhanobut/logger: Simple, pretty and powerf…)
* (liaohuqiu/android-CLog)
* (ZhaoKaiQiang/KLog · GitHub)
* (pengwei1024/LogUtils · GitHub)
崩潰統(tǒng)計(jì)早備平臺(tái)
* (騰訊Bugly – Android Crash(崩潰)_iOS Crash(崩潰)_ANR_卡頓)
* (Critterci – Developer Home)
* (The most powerful, yet lightest weight crash reporting solution for iOS and Android
developers.)
架構(gòu)設(shè)計(jì)
這個(gè)肯定得了解下MVC,MVP,MVVM還有設(shè)計(jì)模式這些,這里有幾個(gè)開(kāi)源項(xiàng)目推薦下
philm
Movie collection and information app for Android.
Github Movie collection and info…
SimpleNews
基于Material Design和MVP的新聞客戶(hù)端
Github地址:GitHub – liuling07/SimpleNews: 基于Material Design和MVP的新聞客戶(hù)端
GankDaily
A application show technical information every working days, use MVP pattern.
Github
SimplifyReader
Github地址:GitHub – SkillCollege/SimplifyReader: 一款基于Google Material Design設(shè)計(jì)開(kāi)發(fā)的Android客戶(hù)端,包括新聞簡(jiǎn)讀,圖片瀏覽,視李睜頻爽看 ,音樂(lè)輕聽(tīng)以及二維碼掃描五個(gè)子模塊。
NBAPlus
Github · GitHub
PhotoNoter
Github
Meizhi
Github gank.io unofficial client, RxJava & Retrofit
DebugDrawer
Android Debug Drawer for faster development
Github · GitHub
ViewServer
Local server for Android’s HierarchyViewer
Github · GitHub
AndroidWiFiADB
IntelliJ/AndroidStudio plugin which provides a button to connect your Android device over WiFi to install, run and debug your applications without a USB connected.
目前框架使用的主要都是開(kāi)源框羨尺沖笑架,都可以在github上找到:
1、volley
2、android-async-http
3、Afinal框架
4、xUtils框架
5、ThinkAndroid
6、LoonAndroid
主要有以下模塊:
(1) 自動(dòng)注入框架(只需要繼承框架內(nèi)的application既可)
(2)
圖片加載框架(多重緩存,自動(dòng)回收,更大限度保證內(nèi)存的安全性)
(3) 網(wǎng)絡(luò)請(qǐng)求模塊(繼承了基本上現(xiàn)在所有的http請(qǐng)求)
(4)
eventbus(集兄判高成一個(gè)開(kāi)源的框架)
(5) 驗(yàn)證框架(集成開(kāi)源框架)
(6) json解析(支持解析成或者對(duì)象)
(7) 數(shù)據(jù)庫(kù)(不知道是哪位寫(xiě)的 忘記了)
(8) 多線(xiàn)程斷點(diǎn)下載(自動(dòng)判斷是否支持多線(xiàn)程,判斷是否是重定向)
(9)
自動(dòng)更新模塊
(10) 一系列工具類(lèi)
有什么好的支持多種數(shù)據(jù)庫(kù)的ORM框架
1、傳統(tǒng)的建表方式
其實(shí)為了方便我們對(duì)數(shù)據(jù)庫(kù)表進(jìn)行管理,Android本身就提供了一個(gè)幫助類(lèi):SQLiteOpenHelper。這個(gè)類(lèi)集創(chuàng)建和升級(jí)數(shù)據(jù)庫(kù)于一身,并且自動(dòng)管理了數(shù)據(jù)庫(kù)版本,算是一個(gè)非常好用的工具。
那我們現(xiàn)在就來(lái)試試SQLiteOpenHelper的用法吧。首先你要知道SQLiteOpenHelper是一個(gè)抽象類(lèi),這意味著如果我們想要使用它的話(huà),就需要?jiǎng)?chuàng)建一個(gè)自己的幫助類(lèi)去繼承它。SQLiteOpenHelper中有兩個(gè)抽象方法,分別是onCreate()和onUpgrade(),我們必須在自己的幫助類(lèi)里面重寫(xiě)這兩個(gè)方法,然后分別在這兩個(gè)方法中去實(shí)現(xiàn)創(chuàng)建、升級(jí)數(shù)據(jù)庫(kù)的邏輯。本篇文章只需要把注意力放空纖在創(chuàng)建數(shù)據(jù)庫(kù)這里就行了,升級(jí)數(shù)據(jù)庫(kù)我們會(huì)在下一篇文章中去討論。
新建一個(gè)MySQLiteHelper類(lèi)并讓它繼承SQLiteOpenHelper,這樣一個(gè)最基本的數(shù)據(jù)庫(kù)幫助類(lèi)的代碼如下所示:
view plain copy
public class MySQLiteHelper extends SQLiteOpenHelper {
public MySQLiteHelper(Context context, String name, CursorFactory factory,
int version) {
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
其中簡(jiǎn)晌,當(dāng)數(shù)據(jù)庫(kù)創(chuàng)建的時(shí)候會(huì)調(diào)用onCreate()方法,在這里去執(zhí)行建表操作就可以了。比如說(shuō)我們想新建一張news表,其中有title,content,publishdate,commentcount這幾列,分別代表著新聞標(biāo)題、新聞內(nèi)容、發(fā)布時(shí)間和評(píng)論數(shù),那么代碼就可以這樣寫(xiě):
view plain copy
public class MySQLiteHelper extends SQLiteOpenHelper {
public static final String CREATE_NEWS = “create table news (”
+ “id integer primary key autoincrement, ”
+ “title text, ”
+ “content text, ”
+ “publishdate integer,”
+ “commentcount integer)”;
public MySQLiteHelper(Context context, String name, CursorFactory factory,
int version) {
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_NEWS);
}
…
}
可以看到,我們把建表語(yǔ)句定義成了一個(gè)常量,然后在onCreate()方法中去執(zhí)行了這條建表語(yǔ)句,news表也就創(chuàng)建成功了。這條建表語(yǔ)句雖然簡(jiǎn)單,斗咐仿但是里面還是包含了一些小的細(xì)節(jié),我來(lái)解釋一下。首先,根據(jù)數(shù)據(jù)庫(kù)的范式要求,任何一張表都應(yīng)該是有主鍵的,所以這里我們添加了一個(gè)自增長(zhǎng)的id列,并把它設(shè)為主鍵。然后title列和content列都是字符串類(lèi)型的,commentcount列是整型的,這都很好理解,但是publishdate列該怎么設(shè)計(jì)呢?由于SQLite中并不支持存儲(chǔ)日期這種數(shù)據(jù)類(lèi)型,因此我們需要將日期先轉(zhuǎn)換成UTC時(shí)間(自1970年1月1號(hào)零點(diǎn))的毫秒數(shù),然后再存儲(chǔ)到數(shù)據(jù)庫(kù)中,因此publishdate列也應(yīng)該是整型的。
現(xiàn)在,我們只需要獲取到SQLiteDatabase的實(shí)例,數(shù)據(jù)庫(kù)表就會(huì)自動(dòng)創(chuàng)建了,如下所示:
view plain copy
SQLiteOpenHelper dbHelper = new MySQLiteHelper(this, “demo.db”, null, 1);
SQLiteDatabase db = dbHelper.getWritableDatabase();
LitePal的基本用法
雖說(shuō)LitePal宣稱(chēng)是近乎零配置,但也只是“近乎”而已,它還是需要進(jìn)行一些簡(jiǎn)單配置才可以使用的,那么我們之一步就先快速學(xué)習(xí)一下LitePal的配置方法。
快速配置
1. 引入Jar包或源碼
首先我們需要將LitePal的jar包引入到項(xiàng)目當(dāng)中,可以點(diǎn)擊這里查看LitePal的最新版本,選擇你需要的下載即可。下載好了jar包之后,把它復(fù)制到項(xiàng)目的libs目錄中就算是引入成功了,如下圖所示:
如果你不想用jar包的話(huà),也可以把LitePal的源碼下載下來(lái),然后作為一個(gè)library庫(kù)導(dǎo)入到Eclipse當(dāng)中,再讓我們的項(xiàng)目去引用這個(gè)library庫(kù)就可以了。
2. 配置litepal.xml
接著在項(xiàng)目的assets目錄下面新建一個(gè)litepal.xml文件,并將以下代碼拷貝進(jìn)去:
view plain copy
配置文件相當(dāng)簡(jiǎn)單,用于設(shè)定數(shù)據(jù)庫(kù)的名字,用于設(shè)定數(shù)據(jù)庫(kù)的版本號(hào),用于設(shè)定所有的映射模型,我們稍后就會(huì)用到。
3. 配置LitePalApplication
由于操作數(shù)據(jù)庫(kù)時(shí)需要用到Context,而我們顯然不希望在每個(gè)接口中都去傳一遍這個(gè)參數(shù),那樣操作數(shù)據(jù)庫(kù)就顯得太繁瑣了。因此,LitePal使用了一個(gè)方法來(lái)簡(jiǎn)化掉Context這個(gè)參數(shù),只需要在A(yíng)ndroidManifest.xml中配置一下LitePalApplication,所有的數(shù)據(jù)庫(kù)操作就都不用再傳Context了,如下所示:
view plain copy
…
當(dāng)然,有些程序可能會(huì)有自己的Application,并在這里配置過(guò)了。比如說(shuō)有一個(gè)MyApplication,如下所示:
view plain copy
…
沒(méi)有關(guān)系,這時(shí)只需要修改一下MyApplication的繼承結(jié)構(gòu),讓它不要直接繼承Application類(lèi),而是繼承LitePalApplication類(lèi),就可以使用一切都能正常工作了,代碼如下所示:
view plain copy
public class MyApplication extends LitePalApplication {
…
}
但是,有些程序可能會(huì)遇到一些更加極端的情況,比如說(shuō)MyApplication需要繼承另外一個(gè)AnotherApplication,并且這個(gè)AnotherApplication還是在jar包當(dāng)中的,不能修改它的代碼。這種情況應(yīng)該算是比較少見(jiàn)了,但是如果你遇到了的話(huà)也不用急,仍然是有解釋方案的。你可以把LitePal的源碼下載下來(lái),然后把src目錄下的所有代碼直接拷貝到你項(xiàng)目的src目錄下面,接著打開(kāi)LitePalApplication類(lèi),將它的繼承結(jié)構(gòu)改成繼承自AnotherApplication,再讓MyApplication繼承自L(fǎng)itePalApplication,這樣所有的Application就都可以在一起正常工作了。
僅僅三步,我們就將所有的配置工作全部完成了,并且這是一件一本萬(wàn)利的事情,自此以后,你就可以開(kāi)心地體驗(yàn)LitePal提供的各種便利了,就讓我們從建表開(kāi)始吧。
開(kāi)始建表
前面在介紹的時(shí)候已經(jīng)說(shuō)了,LitePal采取的是對(duì)象關(guān)系映射(ORM)的模式,那么什么是對(duì)象關(guān)系映射呢?簡(jiǎn)單點(diǎn)說(shuō),我們使用的編程語(yǔ)言是面向?qū)ο笳Z(yǔ)言,而我們使用的數(shù)據(jù)庫(kù)則是關(guān)系型數(shù)據(jù)庫(kù),那么將面向?qū)ο蟮恼Z(yǔ)言和面向關(guān)系的數(shù)據(jù)庫(kù)之間建立一種映射關(guān)系,這就是對(duì)象關(guān)系映射了。
但是我們?yōu)槭裁匆褂脤?duì)象關(guān)系映射模式呢?這主要是因?yàn)榇蠖鄶?shù)的程序員都很擅長(zhǎng)面向?qū)ο缶幊?,但其中只有少部分的人才比較精通關(guān)系型數(shù)據(jù)庫(kù)。而且數(shù)據(jù)庫(kù)的SQL語(yǔ)言晦澀難懂,就算你很精通它,恐怕也不喜歡經(jīng)常在代碼中去寫(xiě)它吧?而對(duì)象關(guān)系映射模式則很好地解決了這個(gè)問(wèn)題,它允許我們使用面向?qū)ο蟮姆绞絹?lái)操作數(shù)據(jù)庫(kù),從而可以從晦澀難懂的SQL語(yǔ)言中解脫出來(lái)。
那么接下來(lái)我們就看一看LitePal中是如何建表的吧。根據(jù)對(duì)象關(guān)系映射模式的理念,每一張表都應(yīng)該對(duì)應(yīng)一個(gè)模型(Model),也就是說(shuō),如果我們想要建一張news表,就應(yīng)該有一個(gè)對(duì)應(yīng)的News模型類(lèi)。新建一個(gè)News類(lèi),如下所示:
view plain copy
package com.example.databasetest.model;
public class News {
}
然后,表中的每一列其實(shí)就是對(duì)應(yīng)了模型類(lèi)中的一個(gè)字段,比如news表中有id、title、content、publishdate、commentcount這幾個(gè)列,那么在News類(lèi)中就也應(yīng)該有這幾個(gè)字段,代碼如下所示:
view plaincopy
view plain copy
public class News {
private int id;
private String title;
private String content;
private Date publishDate;
private int commentCount;
// 自動(dòng)生成get、set方法
…
}
其中id這個(gè)字段可寫(xiě)可不寫(xiě),因?yàn)榧词共粚?xiě)這個(gè)字段,LitePal也會(huì)在表中自動(dòng)生成一個(gè)id列,畢竟每張表都一定要有主鍵的嘛。
這里我要特別說(shuō)明一下,LitePal的映射規(guī)則是非常輕量級(jí)的,不像一些其它的數(shù)據(jù)庫(kù)框架,需要為每個(gè)模型類(lèi)單獨(dú)配置一個(gè)映射關(guān)系的XML,LitePal的所有映射都是自動(dòng)完成的。根據(jù)LitePal的數(shù)據(jù)類(lèi)型支持,可以進(jìn)行對(duì)象關(guān)系映射的數(shù)據(jù)類(lèi)型一共有8種,int、short、long、float、double、boolean、String和Date。只要是聲明成這8種數(shù)據(jù)類(lèi)型的字段都會(huì)被自動(dòng)映射到數(shù)據(jù)庫(kù)表中,并不需要進(jìn)行任何額外的配置。
那么有的朋友可能會(huì)問(wèn)了,既然是自動(dòng)映射的話(huà),如果News類(lèi)中有一個(gè)字符串字段我并不想讓它映射到數(shù)據(jù)庫(kù)表中,這該怎么辦呢?對(duì)此,LitePal同樣采用了一種極為輕量的解決方案,只有聲明成private修飾符的字段才會(huì)被映射到數(shù)據(jù)庫(kù)表中,如果你有某一個(gè)字段不想映射的話(huà),只需要將它改成public、protected或default修飾符就可以了。
現(xiàn)在模型類(lèi)已經(jīng)建好了,我們還差最后一步,就是將它配置到映射列表當(dāng)中。編輯assets目錄下的litepal.xml文件,在標(biāo)簽中加入News模型類(lèi)的聲明:
view plain copy
注意這里一定要填入News類(lèi)的完整類(lèi)名。
OK,這樣所有的工作就都已經(jīng)完成了,現(xiàn)在只要你對(duì)數(shù)據(jù)庫(kù)有任何的操作,news表就會(huì)被自動(dòng)創(chuàng)建出來(lái)。比如說(shuō)LitePal提供了一個(gè)便捷的方法來(lái)獲取到SQLiteDatabase的實(shí)例,如下所示:
view plain copy
SQLiteDatabase db = Connector.getDatabase();
關(guān)于litepal 創(chuàng)建數(shù)據(jù)庫(kù)的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
成都創(chuàng)新互聯(lián)科技公司主營(yíng):網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、小程序制作、成都軟件開(kāi)發(fā)、網(wǎng)頁(yè)設(shè)計(jì)、微信開(kāi)發(fā)、成都小程序開(kāi)發(fā)、網(wǎng)站制作、網(wǎng)站開(kāi)發(fā)等業(yè)務(wù),是專(zhuān)業(yè)的成都做小程序公司、成都網(wǎng)站建設(shè)公司、成都做網(wǎng)站的公司。創(chuàng)新互聯(lián)公司集小程序制作創(chuàng)意,網(wǎng)站制作策劃,畫(huà)冊(cè)、網(wǎng)頁(yè)、VI設(shè)計(jì),網(wǎng)站、軟件、微信、小程序開(kāi)發(fā)于一體。
分享題目:LitePal:簡(jiǎn)單易用的數(shù)據(jù)庫(kù)創(chuàng)建工具(litepal創(chuàng)建數(shù)據(jù)庫(kù))
瀏覽地址:http://www.fisionsoft.com.cn/article/djhcjcs.html


咨詢(xún)
建站咨詢(xún)
