基于LitePal操作數(shù)據(jù)庫的學(xué)生管理系統(tǒng)的簡單實(shí)現(xiàn)

今天看了郭神的《第二行代碼》的第六章孽惰,才發(fā)現(xiàn)LitePal用起來是多么方便簡介,就花了下午的時(shí)間做了一個(gè)小Demo鸥印,界面功能都簡單勋功,請見諒


本文只是LitePal的簡單應(yīng)用,目的是快速入門LitePal库说。界面和功能都簡單狂鞋,若不滿,請自行添加潜的。

照例來波動(dòng)態(tài)圖


學(xué)生管理應(yīng)用.gif

主要功能就是: 數(shù)據(jù)的 增骚揍、刪、改啰挪、查信不。

主要知識點(diǎn): LitePal的配置和使用

界面我就不介紹了纤掸,用的是RecyclerView之前也講過 簡單粗暴----RecyclerView

首先添加依賴

compile'com.android.support:recyclerview-v7:24.0.0'
compile 'org.litepal.android:core:1.4.1'

1. LitePal簡介

LitePal是一款開源的Android數(shù)據(jù)庫框架,它采用了對象關(guān)系映射(ORM)的模式浑塞,并將我們平時(shí)開發(fā)最常用的一些數(shù)據(jù)庫功能進(jìn)行了封裝借跪,是的不用編寫一行SQL語句就可以完成各種建表和增刪改查的操作。

2. LitePal的配置

創(chuàng)建一個(gè) assets 目錄酌壕,在 assets 目錄下新建一個(gè) litepal.xml 文件掏愁,接著編寫文件內(nèi)容,如下:

<?xml version="1.0" encoding="utf-8" ?>
<litepal>
    <!-- 數(shù)據(jù)庫名 -->
    <dbname value="Student"></dbname>
    <!-- 版本號 -->
    <version value="1"></version>
    <!-- 創(chuàng)建表 -->
    <list>
        <mapping class="映射的javaBean的完整類名"></mapping>
    </list>
</litepal>

接下來修改清單文件代碼卵牍,配置Application

<application
    android:name="org.litepal.LitePalApplication"
    ...
</application>

最后代碼中創(chuàng)建數(shù)據(jù)庫

LitePal.getDatabase();

3. 創(chuàng)建表

a. 需要一個(gè)JavaBean對象果港,也就是數(shù)據(jù)庫的表


public class Student extends DataSupport{

    private int id;
    private String name;//姓名
    private int studentId;//學(xué)號
    private String sex;//性別

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getStudentId() {
        return studentId;
    }

    public void setStudentId(int studentId) {
        this.studentId = studentId;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }
}

b. 修改litepal.xml中的代碼


<list>
    <mapping class="com.xiaweizi.studentsystem.Student"></mapping>
</list>

運(yùn)行一下程序,然后你就可以在data/data/包名的文件下看到數(shù)據(jù)庫已經(jīng)創(chuàng)建了:

數(shù)據(jù)庫.PNG

然后把他導(dǎo)出來糊昙,借用工具打開辛掠,然后就是下面界面

表的創(chuàng)建.PNG

4. 增、刪释牺、改萝衩、查

1. 添加數(shù)據(jù)

    Student student = new Student();
    student.setName(name);
    student.setSex(sex);
    student.setStudentId(Integer.parseInt(studentId));
    student.save();

效果如下:


添加數(shù)據(jù).PNG

2. 刪除數(shù)據(jù)

DataSupport.deleteAll(Student.class, "id = ?", id +"");

一行代碼搞定,只要調(diào)用DataSupport.deleteAll()即可没咙,第一參數(shù)猩谊,是要?jiǎng)h除哪張表的數(shù)據(jù),后面則為約束條件祭刚,不難看懂牌捷。

3. 修改數(shù)據(jù)

    Student student = new Student();
    student.setName(name);
    student.setSex(sex);
    student.setStudentId(Integer.parseInt(studentId));
    student.updateAll("id = ?", id+"");

還是要new一個(gè)實(shí)例,然后要設(shè)置更新的數(shù)據(jù)涡驮,最后調(diào)用updateAll()方法執(zhí)行更新操作暗甥。參數(shù)跟刪除數(shù)據(jù)很像,也是約束條件捉捅,如果不傳參數(shù)撤防,則修改所有的數(shù)據(jù)。

這里需要注意一點(diǎn)锯梁,如果想讓數(shù)據(jù)恢復(fù)成默認(rèn)值即碗,是不能直接設(shè)置默認(rèn)值的焰情。

比如陌凳,如果讓學(xué)號為0,是不能 student.setStudentId(0); 這是錯(cuò)誤的D谥邸:隙亍!那么如果想恢復(fù)成默認(rèn)值該怎么辦呢验游,LitePal提供了setToDefault() 方法充岛。

Student student = new Student();
student.setToDefault("studentId");
student.updateAll();

4. 查詢數(shù)據(jù)

mList = DataSupport.findAll(Student.class);

一行代碼搞定保檐,直接就可以查詢數(shù)據(jù)庫中Student表的所有數(shù)據(jù),返回這個(gè)對象的集合崔梗。
借用工具可以查看我們的所有數(shù)據(jù):


所有數(shù)據(jù).PNG

到此一個(gè)簡單的學(xué)生管理系統(tǒng)已經(jīng)結(jié)束了夜只,主要目的就是快速入門LitePal!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蒜魄,一起剝皮案震驚了整個(gè)濱河市扔亥,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌谈为,老刑警劉巖旅挤,帶你破解...
    沈念sama閱讀 212,029評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異伞鲫,居然都是意外死亡粘茄,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,395評論 3 385
  • 文/潘曉璐 我一進(jìn)店門秕脓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來柒瓣,“玉大人,你說我怎么就攤上這事吠架∴诶剩” “怎么了?”我有些...
    開封第一講書人閱讀 157,570評論 0 348
  • 文/不壞的土叔 我叫張陵诵肛,是天一觀的道長屹培。 經(jīng)常有香客問我,道長怔檩,這世上最難降的妖魔是什么褪秀? 我笑而不...
    開封第一講書人閱讀 56,535評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮薛训,結(jié)果婚禮上媒吗,老公的妹妹穿的比我還像新娘。我一直安慰自己乙埃,他們只是感情好闸英,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,650評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著介袜,像睡著了一般甫何。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上遇伞,一...
    開封第一講書人閱讀 49,850評論 1 290
  • 那天辙喂,我揣著相機(jī)與錄音,去河邊找鬼。 笑死巍耗,一個(gè)胖子當(dāng)著我的面吹牛秋麸,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播炬太,決...
    沈念sama閱讀 39,006評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼灸蟆,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了亲族?” 一聲冷哼從身側(cè)響起次乓,我...
    開封第一講書人閱讀 37,747評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎孽水,沒想到半個(gè)月后票腰,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,207評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡女气,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,536評論 2 327
  • 正文 我和宋清朗相戀三年杏慰,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片炼鞠。...
    茶點(diǎn)故事閱讀 38,683評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡缘滥,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出谒主,到底是詐尸還是另有隱情朝扼,我是刑警寧澤,帶...
    沈念sama閱讀 34,342評論 4 330
  • 正文 年R本政府宣布霎肯,位于F島的核電站擎颖,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏观游。R本人自食惡果不足惜搂捧,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,964評論 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望懂缕。 院中可真熱鬧允跑,春花似錦、人聲如沸搪柑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,772評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽工碾。三九已至弱睦,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間倚喂,已是汗流浹背每篷。 一陣腳步聲響...
    開封第一講書人閱讀 32,004評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留端圈,地道東北人焦读。 一個(gè)月前我還...
    沈念sama閱讀 46,401評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像舱权,于是被迫代替她去往敵國和親矗晃。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,566評論 2 349

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,799評論 25 707
  • 內(nèi)容抽屜菜單ListViewWebViewSwitchButton按鈕點(diǎn)贊按鈕進(jìn)度條TabLayout圖標(biāo)下拉刷新...
    皇小弟閱讀 46,729評論 22 665
  • 原文鏈接:https://github.com/opendigg/awesome-github-android-u...
    IM魂影閱讀 32,912評論 6 472
  • 7-9(1)遇見 遇見宴倍、偶遇张症,在上億人海中遇見、偶遇是件多么美妙的事情鸵贬。有時(shí)候很是疑惑俗他,為什么會(huì)和A相遇而不是B,...
    x123閱讀 261評論 0 0
  • 這是一道很經(jīng)典的題目阔逼,相信很多程序員都知道兆衅。 其實(shí)解題的思路很簡單,就是在每行枚舉選擇每個(gè)位置嗜浮,判斷選則的位置是否...
    ShutLove閱讀 351評論 0 0