日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

android 7使用litepal,android数据库litepal使用记录

發布時間:2023/12/10 数据库 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 7使用litepal,android数据库litepal使用记录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡介:

litepal是郭霖的一款開源的android數據庫框架,采用關系映射(ORM)的模式,這是github

地址,最新版本已經更新到1.6,支持eclipse,gridle使用如下:

compile 'org.litepal.android:core:1.6.0'

配置:

創建assets目錄,新建litepal.xml文件:

litepal初始化有兩種方式:

1.將你清單文件的Application換成LitePalApplication

android:name="org.litepal.LitePalApplication"

...

>

...

2.將你的Application繼承自Application,然后在onCreat(),進行litepal的初始化

public class MyOwnApplication extends Application {

@Override

public void onCreate() {

super.onCreate();

LitePal.initialize(this);

}

...

}

使用litepal

創建實體類

litepal需要用于映射的實體類需要繼承DataSupport,并生成get和set方法,關于這兩個方法,推薦一個庫:

lombok,gridle使用添加:

compile 'org.projectlombok:lombok:1.16.18'

添加之后你的get和set方法只用在類名上面添加注解@Data就可以了,如下

@Data

public class Man{

@Column(unique = true, defaultValue = "unknown")

private int age;

private String name;

}

實體類支持注解約束:

@Column(unique = true) //是否唯一

@Column(defaultValue = "unknown") //指定字段默認值

@Column(nullable = false) //是否可以為空

@Column(ignore = true) //是否可以忽略

修改litepal.xml

當你添加表或修改表結構,都要修改litepal.xml,首先版本號要+1,如果添加表,還要添加

添加數據

Album album = new Album();

album.setName("album");

album.setPrice(10.99f);

album.setCover(getCoverImageBytes());

album.save();

Song song1 = new Song();

song1.setName("song1");

song1.setDuration(320);

song1.setAlbum(album);

song1.save();

Song song2 = new Song();

song2.setName("song2");

song2.setDuration(356);

song2.setAlbum(album);

song2.save();

更新數據

1.指定id:

Album albumToUpdate = new Album();

albumToUpdate.setPrice(20.99f); // raise the price

albumToUpdate.update(2);

2.條件更新:

Album albumToUpdate = new Album();

albumToUpdate.setPrice(20.99f); // raise the price

albumToUpdate.updateAll("name = ?", "小明");

3.多個條件用and連接

Album album= new Album();

album.setTitle("第3次更新");

album.updateAll("title = ? and age> ?", "第2次更新", "12");

4.更新全部數據,將表所有數據名字修改:

Man values = new Man();

values.put("Name", "小化工");

DataSupport.updateAll(Man.class, values);

5.異步更新數據

Album album = new Album();

album.setName("album");

album.setPrice(10.99f);

album.setCover(getCoverImageBytes());

album.saveAsync().listen(new SaveCallback() {

@Override

public void onFinish(boolean success) {

}

});

刪除數據

1.指定ID

DataSupport.delete(Man.class, id);

2.條件刪除,多個條件用and連接

DataSupport.deleteAll(Man.class, "age > ?" , "15");

3.刪除全表數據

DataSupport.deleteAll(Man.class);

查詢數據

1.查詢第一條以及最后一條

News firstNews = DataSupport.findFirst(News.class);

News lastNews = DataSupport.findLast(News.class);

2.指定id

Song song = DataSupport.find(Song.class, id);

//指定多個id如下

//方式一:

List newsList = DataSupport.findAll(News.class, 1, 3, 5, 7);

//方式二:

long[] ids = new long[] { 1, 3, 5, 7 };

List newsList = DataSupport.findAll(News.class, ids);

3.查詢所有

List allSongs = DataSupport.findAll(Song.class);

4.條件查詢

查詢 Man表 中 年齡大于12 的 第5到20條 數據,以插入時間倒序 排序方式呈現,只取 “名字”和“性別”和“身高” 三列內容。

List list = DataSupport.select("name", "sex","height")//需要的條目

.where("age> ?", "12")//條件

.order("inputTime desc")//倒序字段

.offset(5)//開始查詢位置

.limit(15)//數據長度

.find(Man.class);//查詢表

5.異步查詢,用于代替findAll

DataSupport.findAllAsync(Song.class).listen(new FindMultiCallback() {

@Override

public void onFinish(List t) {

List allSongs = (List) t;

}

});

刪除數據庫

LitePal.deleteDatabase("數據庫名");

完結

總結

以上是生活随笔為你收集整理的android 7使用litepal,android数据库litepal使用记录的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。