前言
其实这个litepal,官网已经讲的很详细了,这里只是做个笔记,我感觉,醒目中,使用litepal,真的很方便,想想以前使用原生的写法,真是累啊
目录
- 如何使用
- 引入
- 2.配置环境
-
- 开始使用
- (1)创建表格
- (2)升级表
- (3) 数据操作
官网
LitePal
如何使用
1. 引入
compile 'org.litepal.android:core:1.6.1'
2.配置环境
(1)在项目的assets文件夹中创建一个文件,并将其命名为litepal.xml。然后将以下代码复制到它
<?xml version="1.0" encoding="utf-8"?>
<litepal>
<!-- 数据库名字 -->
<dbname value="demo" />
<!-- 数据库版本 -->
<version value="1" />
<!-- 数据库对象 -->
<list>
<mapping class="com.allens.litepaldemo.User"></mapping>
</list>
</litepal>
(2)配置LitePalApplication
public class MyApp extends Application {
@Override
public void onCreate() {
super.onCreate();
LitePal.initialize(this);
}
}
3. 开始使用
(1)创建表格
public class User extends DataSupport {
private String name;
private int age;
//get set
}
补充说明: 使用注解对字段进行约束
@Column(unique = true) //是否唯一
@Column(defaultValue = "default") //指定字段默认值
@Column(nullable = false) //是否可以为空
@Column(ignore = true) //是否可以忽略
然后将这些模型添加到litepal.xml中的映射列表中:
<list>
<mapping class="com.allens.litepaldemo.User"></mapping>
</list>
好!这些表格将在您下次操作数据库时生成。例如,使用以下代码获取SQLiteDatabase:
SQLiteDatabase db = LitePal 。getDatabase();
(2)升级表
在litepal.xml中增加版本号
< version value = “ 2 ” > </ version >
(3) 数据操作
package com.allens.litepaldemo;
import android.content.ContentValues;
import android.database.sqlite.SQLiteDatabase;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import com.apkfuns.logutils.LogUtils;
import org.litepal.crud.DataSupport;
import org.litepal.crud.callback.FindMultiCallback;
import org.litepal.tablemanager.Connector;
import org.litepal.util.LogUtil;
import java.util.List;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SQLiteDatabase db = Connector.getDatabase();
findViewById(R.id.btn_insert).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//第一种 不推荐
// ContentValues cv = new ContentValues();
// cv.put("name", "江海洋");
// cv.put("age", 25);
// db.insert("User", null, cv);
//第二种 推荐
User user = new User();
user.setAge(19);
user.setName("Allens");
user.save();
}
});
findViewById(R.id.btn_query).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// List<User> list = DataSupport.findAll(User.class);
// LogUtils.e(list);
//异步查询
DataSupport.findAllAsync(User.class).listen(new FindMultiCallback() {
@Override
public <T> void onFinish(List<T> t) {
List<User> allSongs = (List<User>) t;
LogUtils.e(allSongs);
LogUtils.e(allSongs.size());
}
});
}
});
findViewById(R.id.btn_update).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
User user = DataSupport.find(User.class, 1);
user.setName("Allens");
user.setAge(18);
user.save();
}
});
findViewById(R.id.btn_delete).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//删除某个数据
// int delete = DataSupport.delete(User.class, 1);
// LogUtils.e("delete--->" + delete);
//删除全部数据
int i = DataSupport.deleteAll(User.class);
LogUtils.e("delete--->" + i);
}
});
}
}