999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Android開源數據庫框架LitePal的研究與應用

2016-07-04 03:53:40申圣兵
中國新通信 2016年10期
關鍵詞:數據庫

申圣兵

【摘要】 本文首先對Android傳統數據庫操作方式進行了描述,然后重點描述了Android開源數據庫框架LitePal的使用,通過對比,突出表現LitePal工作的簡潔、高效。

【關鍵詞】 Android 數據庫 LitePal ORM

LitePal是一款開源的Android數據庫框架,它采用了對象關系映射(ORM)的模式,并將我們平時開發時最常用到的一些數據庫功能進行了封裝,使得不用編寫一行SQL語句就可以完成各種建表、増刪改查的操作。并且LitePal很“輕”,jar包只有100k不到,而且近乎零配置,使用LitePal框架,可以將我們從繁瑣的數據庫操作中解放出來。

一、傳統的數據庫操作方式

在Android的應用開發中,傳統的數據庫操作方式是使用 Android操作系統中集成的一個嵌入式關系型數據庫SQLite來進行的,它要求開發人員熟練的掌握SQL語法,操作數據庫基本是通過SQL語句來實現的。為了方便我們對數據庫表進行管理,Android本身還提供了一個幫助類:SQLiteOpenHelper。這個類集創建和升級數據庫于一身,并且自動管理了數據庫版本,算是一個非常好用的工具了。

下面我們來看看SQLiteOpenHelper的用法吧。首先你要知道SQLiteOpenHelper是一個抽象類,這意味著如果我們想要使用它的話,就需要創建一個自己的幫助類去繼承它。SQLiteOpenHelper中有兩個抽象方法,分別是onCreate()和onUpgrade(),我們必須在自己的幫助類里面重寫這兩個方法,然后分別在這兩個方法中去實現創建、升級數據庫的邏輯。

新建一個SQLLiteHelperUtil,這樣一個最基本的數據庫幫助類的代碼如下:

Public class SQLLiteHelperUtil extends SQLLiteOpenHelper{

Public SQLLiteHelperUtil(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) {

}}

其中,當數據庫創建的時候會調用onCreate()方法,在這里去執行建表操作就可以了。比如說我們想新建一張課程表course表,其中有courseName,classRoom,teacher,dayOfWeek這幾列,分別代表課程名,教室,任課教師,周幾,那么代碼就可以這樣寫:

Public static final String CREATE_COURSE=”create table course(“

+ ?id integer primary key autoincrement, ?

+?courseName text,?

+?classRoom text,?

+?teacher text,?

+?dayOfWeek integer?);”

我們把建表語句定義成了一個常量,然后在上述SQLLiteHelperUtil類onCreate()方法中使用db.execSQL(CREATE_ COURSE )去執行了這條建表語句,course表也就創建成功了。現在,我們只要獲取SQLLiteDatabase的實例,數據庫表就會自動創建了,如下所示:

SQLLiteOpenHelper dbHelper=new SQLLiteHelperUtil(this,”spdb.db”,null,1);

SQLLiteDatabase db=dbHelper.getWritableDatabase();

二、LitePal的使用方法

2.1引入Jar包

首先,我們需要將LitePal的jar包引入到項目當中,下載好了jar包之后,把它復制到項目的libs目錄中就算是引入成功了,如下圖所示:

2.2配置litepal.xml

接著在項目的assets目錄下面新建一個litepal.xml文件,并將以下代碼輸入進去:

<?xml version=”1.0” encoding=”utf-8”?>

配置文件相當簡單,用于設定數據庫的名字,用于設定數據庫的版本號,用于設定所有的映射模型,我們稍后就會用到。

2.3配置LitePalApplication

由于操作數據庫時需要用到Context,而我們顯然不希望在每個接口中都去傳一遍這個參數,那樣操作數據庫就顯得太繁瑣了。因此,LitePal使用了一個方法來簡化掉Context這個參數,只需要在AndroidManifest.xml中配置一下LitePalApplication,所有的數據庫操作就都不用再傳Context了,如下圖所示:

僅僅三步,我們的配置就已經完成了。

LitePal采取的是對象關系映射(ORM)的模式,那么什么是對象關系映射呢?簡單點說,我們使用的編程語言是面向對象語言,而我們使用的數據庫則是關系型數據庫,那么將面向對象的語言和面向關系的數據庫之間建立一種映射關系,這就是對象關系映射了。

那么接下來我們就看一看LitePal中是如何建表的吧。根據對象關系映射模式的理念,每一張表都應該對應一個模型(Model),也就是說,如果我們想要建一張course表,就應該有一個對應的course模型類。新建一個course類,如下所示:

Public class Course extends DataSupport{

Private int id;

Private String courseName;

Private String classroom;

Private String teacher;

Private int dayOfWeek;

//自動生成的Get和Set方法

}

現在模型類已經建好了,我們還差最后一步,就是將它配置到映射列表當中。編輯assets目錄下的litepal.xml文件,在標簽中加入course模型類的聲明:

<?xml version=”1.0” encoding=”utf-8”?>

OK,這樣所有的工作就都已經完成了,現在只要你對數據庫有任何的操作,course表就會被自動創建出來。比如說LitePal提供了一個便捷的方法來獲取到SQLiteDatabase的實例,如下所示:

SQLiteDatabase db = Connector.getDatabase();

我們在操作Course表時只需要調用對象course.save或者course.find或者course.findAll()即可實現表格的保存和查詢操作。

由于大多數的程序員都很擅長面向對象編程,只有少部分的人才比較精通關系型數據庫。而且數據庫的SQL語言晦澀難懂,就算你很精通它,恐怕也不喜歡經常在代碼中去寫它吧?有了litePal,你就可以從繁瑣的數據庫操作中解放出來,專心處理事物邏輯了。

參 考 文 獻

[1]馬獲蕾. Android系統中SQLite數據庫的研究.電腦知識與技術,2013年,28期

[2]王紹祥.手機與數據庫的一種數據交互方法.鄭州輕工業學院學報(自然科學版),2011年,06期

[3]權重民.利用JSON實現Android高效、安全訪問遠程數據庫的一種方式.韶關學院學報,2011年,12期

猜你喜歡
數據庫
數據庫
財經(2017年15期)2017-07-03 22:40:49
數據庫
財經(2017年2期)2017-03-10 14:35:35
兩種新的非確定數據庫上的Top-K查詢
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
數據庫
財經(2015年3期)2015-06-09 17:41:31
數據庫
財經(2014年21期)2014-08-18 01:50:18
數據庫
財經(2014年6期)2014-03-12 08:28:19
數據庫
財經(2013年6期)2013-04-29 17:59:30
主站蜘蛛池模板: 国内精品视频区在线2021| 亚洲成a人片77777在线播放| 97超碰精品成人国产| 日韩a级毛片| 亚洲,国产,日韩,综合一区| 亚洲第一成年网| 欧美亚洲一区二区三区导航 | 亚洲欧美一区二区三区图片| 亚洲香蕉在线| 亚洲人成影院在线观看| 原味小视频在线www国产| 精品国产免费观看| 国产精品网曝门免费视频| 成年午夜精品久久精品| 麻豆国产原创视频在线播放| 久久国产精品夜色| 欧美成人A视频| 免费女人18毛片a级毛片视频| 久久综合色视频| 免费一级毛片在线观看| 熟妇无码人妻| 97se亚洲综合在线| 国产精品一区不卡| 欧美人人干| 国产在线98福利播放视频免费| 国产午夜一级淫片| www.日韩三级| 日韩精品专区免费无码aⅴ| 九九这里只有精品视频| 88av在线| 国产精品露脸视频| 欧美精品成人一区二区视频一| 亚洲国产成人精品一二区| 高清久久精品亚洲日韩Av| 国产尤物视频在线| 国产极品美女在线| 色老二精品视频在线观看| 麻豆AV网站免费进入| 国产成人无码久久久久毛片| 国产成熟女人性满足视频| 久久精品电影| 亚洲国产日韩欧美在线| 亚洲欧洲日韩久久狠狠爱| 欧美一级大片在线观看| 欧美第二区| 欧美国产日本高清不卡| 亚洲品质国产精品无码| 狂欢视频在线观看不卡| 久久伊人色| 日韩福利视频导航| 免费AV在线播放观看18禁强制| 亚洲成年网站在线观看| 成年人免费国产视频| 91精品国产无线乱码在线| 欧美日韩国产系列在线观看| 国产精品理论片| 精品国产91爱| 日韩色图区| 日韩成人免费网站| 亚洲电影天堂在线国语对白| 国产在线自乱拍播放| 白浆免费视频国产精品视频| 99re在线视频观看| 国产情侣一区二区三区| 亚洲无码高清免费视频亚洲| 亚洲香蕉在线| 欧美精品成人一区二区视频一| 鲁鲁鲁爽爽爽在线视频观看| 亚洲精品视频免费| 久久免费视频6| 青青草国产在线视频| 欧美精品另类| 一本大道香蕉中文日本不卡高清二区 | 亚洲天堂.com| 国产精品福利导航| 亚洲精品天堂在线观看| 福利视频一区| 99这里精品| 在线观看国产小视频| 国产在线精彩视频二区| 无码日韩视频| 久久伊伊香蕉综合精品|