ITPub博客

首页 > 移动开发 > ANDROID > Android中使用LitePal操作数据库

Android中使用LitePal操作数据库

原创 ANDROID 作者:山有木xi 时间:2020-03-13 15:33:44 0 删除 编辑

在Android中,SQLiteDatabase是一个很方便的操作数据库方法,但是现在Android环境中有许多人做了许多的开源库,这些开源库能够快速方便的实现我们想要实现的东西,就像LitePal一样

首先在app/build.grade文件中编辑

dependencies{
...
conmpile'org.litepal.android:core:1.5'
..
}

随后创建一个assets目录,创建一个litepal.xml

<?xml version="1.0" encoding="utf-8"?>    
<litepal>    
    <dbname value="AbcStore" ></dbname>    
    <version value="2" ></version>    
    <list>    
        <mapping class="com.example.litepaltest.Book"></mapping>    
    </list>    
</litepal>

然后在AndroidManifest.xml中添加代码

android:name="org.litepal.litePalApplication"

LitePal时对象关系映像(ORM)的模式,简单来说,就是将面向对象的语言和面向对象的数据库中建立一种映射关系,也就是说可以用面向对象的思维来操作数据库而不是再用SQLiteOpenHelper繁琐的步骤

创建一个Abc类

public class Abc extends DataSupport {    
private int id;      
private double price;    
private int pages;    
private String name;       
public int getId() {    
return id;    
}    
public void setId(int id) {    
this.id = id;    
}    
public int getPages() {    
return pages;    
}    
public void setPages(int pages) {    
this.pages = pages;    
}    
public String getName() {    
return name;    
}    
public void setName(String name) {    
this.name = name;    
}    
}

然后在litepal.xml中添加

<?xml version="1.0" encoding="utf-8"?>    
<litepal>    
    <dbname value="AbcStore" ></dbname>    
    <version value="1" ></version>    
    <list>    
        <mapping class="com.example.litepaltest.Abc"></mapping>    
    </list>    
</litepal>

然后来说说SQLiteOpenHelper的升级数据库机制,每次执行时都会drop掉数据库,然后重新创建,drop数据库的同时,里面的数据也丢失了,而在LitePal中升级数据库只需要修改所需要的内容,然后版本号加一,也就是

<?xml version="1.0" encoding="utf-8"?>    
<litepal>    
    <dbname value="AbcStore" ></dbname>    
    <version value="2" ></version>    
    <list>    
        <mapping class="com.example.litepaltest.Abc"></mapping>    
    </list>    
</litepal>

添加更新数据只需要,new一个Abc然后调用set就可以

public class MainActivity extends AppCompatActivity {    
    @Override    
    protected void onCreate(Bundle savedInstanceState) {    
        super.onCreate(savedInstanceState);    
        setContentView(R.layout.activity_main);    
        Button createDatabase = (Button) findViewById(R.id.create_database);    
        createDatabase.setOnClickListener(new View.OnClickListener() {    
            @Override    
            public void onClick(View v) {    
               Abc abc=new Abc();
               abc.setname("litepal");  
            }    
        });    
  }}

删除数据则使用

DataSupport.deleteAll(Abc.class,"name=?","litepal")

查询数据

list<Abc> abc=DateSupport.findAll(Abc.class);


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69917874/viewspace-2680054/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: Android中SQLite
请登录后发表评论 登录
全部评论
Oracle OCA(Java),IBM高级工程师认证,中国软件行业人才(高级c语言),高级Android工程师,对数据库并发与性能调优也有一定了解

注册时间:2019-04-25

  • 博文量
    147
  • 访问量
    390779