Android中使用LitePal運算元據庫

山有木xi發表於2020-03-13

在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部落格 ” ,連結:http://blog.itpub.net/69917874/viewspace-2680054/,如需轉載,請註明出處,否則將追究法律責任。

相關文章