To live is to function , that is all there is in living.
它能够实现的功能如下:
接下来开始在自己的工程里面配置litepal。
第一步:导入依赖包。
Litepal官方介绍https://github.com/LitePalFramework/LitePal#latest-downloads
直接在自己的项目的builde.gradle的denpendenceies下导入
// litepal依赖包导入 compile 'org.litepal.android:core:1.5.1'更加具体
第二步:创建application继承LitePalApplication
为什么要这么做尼,接下来请看,litapalApplication里面做了什么
public class LitePalApplication extends Application { /** * Global application context. */ static Context sContext; /** * Construct of LitePalApplication. Initialize application context. */ public LitePalApplication() { sContext = this; } /** * Deprecated. Use {@link LitePal#initialize(Context)} instead. * @param context * Application context. */ @Deprecated public static void initialize(Context context) { sContext = context; } /** * Get the global application context. * * @return Application context. * @throws org.litepal.exceptions.GlobalException */ public static Context getContext() { if (sContext == null) { throw new GlobalException(GlobalException.APPLICATION_CONTEXT_IS_NULL); } return sContext; } }可以发现他就做了一件事情获取上下文。
第三步,创建表
litepal创建表非常简单,和我们平时构造一个对象是一样的,只是这个对象需要继承DataSupport
为什么这么做尼,我复制下DataSupport这个类的介绍
* CREATE TABLE person ( * id integer primary key autoincrement, * age integer, * name text * ); ** * @author Tony Green * @since 1.1 */ public class DataSupport { 很显然,这个DataSupport在通过我们给对象的属性来映射成表的字段,而表的名称对应的是创建的这个类名(StudentBeanDB)
第四步,声明数据库名称关联表
首先我们创建assets数据文件,然后在这个文件夹下创建一个名为LitePal的xml文件
创建asset文件夹的方法如下
创建litepal.xml
value = "demoTest"/> value = "1"/>
class = "com.example.march_day18_litepal_simple_use.StudentBeanDB"/>
到此为止我们的数据库算是创建成功了,接下来我们运行一下看看
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //创建数据库 //LitePal.getDatabase(); Connector.getDataBase(); initDatas(); } private void initDatas() { StudentBeanDB bean; for (int i = 0; i < 30; i++) { bean = new StudentBeanDB(i,201703180+i,70+i,"胖娃娃"+i+"号","少女"); if(bean.save()){ Log.i("----->>", "保存成功 "); } } } }接下来看logcat
其实,这其中还是遇到了一个问题的,当时是由于在创建litepal.xml文件的时候多打了一个字母,致使litepal不能映射出数据库
ok,接下来对数据库进行增删查改操作。
public void touch(View v){ Listall = DataSupport.findAll(StudentBeanDB.class); switch (v.getId()){ case R.id.db_add: StudentBeanDB newBean = new StudentBeanDB(all.size(), 201703180 + all.size(),70, "新同学——胖娃娃" + all.size() + "号", "小处男"); newBean.save(); break; case R.id.db_delete: DataSupport.deleteAll(StudentBeanDB.class,"sName = ?","胖娃娃5号"); break; case R.id.db_find: mResult.setText(null); StringBuilder stringBuilder = new StringBuilder(); for (int i = 0; i < all.size(); i++) { StudentBeanDB beanDB = all.get(i); stringBuilder.append("姓名:"+beanDB.getsName()+"学号:"+beanDB.getsId()+"性别:"+ beanDB.getsSex()+"年级:"+beanDB.getsClass()+"成绩:"+ beanDB.getsGread()+"\n"); } mResult.setText(stringBuilder.toString()); break; case R.id.db_re: ContentValues contentValues = new ContentValues(); contentValues.put("sName","小明要开车"); DataSupport.updateAll(StudentBeanDB.class,contentValues," sName = ?","胖娃娃11号"); break; } }
DataSupport.findAll(StudentBeanDB.class)
StudentBeanDB newBean = new StudentBeanDB(all.size(), 201703180 + all.size(),70, "新同学——胖娃娃" + all.size() + "号", "小处男");
newBean.save();
DataSupport.deleteAll(StudentBeanDB.class,"sName = ?","胖娃娃5号");
在这部操作的时候其实使出了一个错的,错误日志如下:
为什么尼,我在查询某个固定的姓名时使用了“where sName = ? ",因为这个where出了错,这个是litepal提供的方便,但是太方便就会。。。
ContentValues contentValues = new ContentValues();
contentValues.put("sName","小明要开车");
DataSupport.updateAll(StudentBeanDB.class,contentValues," sName = ?","胖娃娃11号");
其中ContenValues只是系统提供的一个HashMap。
以上便是litepal的简单使用,至于多表连接,多表查询,将在以后介绍。
奉上郭霖的相关讲解传送门litepal郭郭
一家之言,有误望君扶正,多谢。