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

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


咨詢
建站咨詢
