国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

LitePal 開源數據庫框架學習(跟隨郭霖老師的學習)

2019-11-09 15:51:17
字體:
來源:轉載
供稿:網友
在android studio中添加dependdencies{compile‘org.litepal.android:core:1.3.2’

}

在app/src/main中添加assets文件夾,添加文件litepal.xml

<?xml version="1.0" encoding="utf-8"?><litepal>    <dbname value="BookStore"></dbname>    <version value="1"></version>    <list>        <mapping class="test.ban.com.test_litepal.Book"></mapping>    </list></litepal>添加Book類
public class Book {    PRivate int id;    private String author;    private double price;    private int pages;    private String name;    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getAuthor() {        return author;    }    public void setAuthor(String author) {        this.author = author;    }    public double getPrice() {        return price;    }    public void setPrice(double price) {        this.price = price;    }    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;    }}記錄類路徑test.ban.com.test_litepal.Book

在Manifast中的application添加android:name="org.litepal.LitePalApplication"配置完成,編寫主代碼

 Button createDatabase = (Button) findViewById(R.id.btn_create_table);        createDatabase.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Connector.getDatabase();            }        });即可使用創建完成升級數據庫,添加表單等,只需要增加版本號<version value="2"></version>,然后修改類中的字段即可
 private String press;    public String getPress() {        return press;    }    public void setPress(String press) {        this.press = press;    }添加表:
public class Category {    private int id;    private String categoryName;    private int categoryCode;    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getCategoryName() {        return categoryName;    }    public void setCategoryName(String categoryName) {        this.categoryName = categoryName;    }    public int getCategoryCode() {        return categoryCode;    }    public void setCategoryCode(int categoryCode) {        this.categoryCode = categoryCode;    }}在litepal中添加即可:
<?xml version="1.0" encoding="utf-8"?><litepal>    <dbname value="BookStore"></dbname>    <version value="3"></version>    <list>        <mapping class="test.ban.com.test_litepal.Book"></mapping>        <mapping class="test.ban.com.test_litepal.Category"></mapping>    </list></litepal>插入數據也較為簡單
Button addDate= (Button) findViewById(R.id.btn_insert_table);        addDate.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Book book=new Book();                book.setName("壁紙碧水");                book.setAuthor("ban");                book.setPages(520);                book.setPress("yy");                book.setPrice(1314);                book.save();            }        });更新數據也較為簡單,直接使用DateSupport接口中的方法即可
 //更新數據        Button updateDate= (Button) findViewById(R.id.btn_update_table);        updateDate.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Book book=new Book();//                book.setName("小河在流血");//                book.setAuthor("ban");//                book.setPages(123);//                book.setPress("標簽");//                book.setPrice(50);//                book.save();//                book.setPrice(20);//                book.save();                book.setPrice(15.66);                book.setPress("快樂時");                book.updateAll("name=? and author=?","小河在流血","ban");            }        });但需要注意的是,此框架中是直接設置了默認值的,使用updateAll()方法(所有的數據更新),是不可以使用上面的方式來set的,就是不能講數據設置為默認值,比如int類型的為0,所以Litepal提供了另一個setToDefault()方法,傳入列名就可以實現了
Book book=new Book();book.setToDefault("pages");book.updateAll();刪除數據也較為簡單,直接電筒DataSupport中的deleteAll()方法即可,再加上判斷語句
Button deleteDate = (Button) findViewById(R.id.btn_delete_table);        deleteDate.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                DataSupport.deleteAll(Book.class, "price<?", "16");            }        });直接執行deleteAll()方法不指定約束條件,則是將整個表的數據刪除查詢,都是最麻煩的,使用Litepal就可以簡化這一部分的內容查詢所有數據:
List<Book> books = DataSupport.findAll(Book.class);                for (Book book : books) {                    Log.i(TAG, "name: " + book.getName());                    Log.i(TAG, "price: " + book.getPrice());                    Log.i(TAG, "author: " + book.getAuthor());                    Log.i(TAG, "press: " + book.getPress());                    Log.i(TAG, "pages: " + book.getPages());                }還有一些其他的方法
 //查詢第一行                Book firstBook = DataSupport.findFirst(Book.class);                //查詢最后一行                Book lastBook = DataSupport.findLast(Book.class);                List<Book> books = DataSupport.select("name", "author").find(Book.class);//                for (Book book : books) {//沒有查詢出的值為空(默認值)//                    Log.i(TAG, "name: " + book.getName());//                    Log.i(TAG, "price: " + book.getPrice());//                    Log.i(TAG, "author: " + book.getAuthor());//                    Log.i(TAG, "press: " + book.getPress());//                    Log.i(TAG, "pages: " + book.getPages());//                }                //倒序排列                List<Book> books2 = DataSupport.order("price desc").find(Book.class);                //限制                List<Book> books3 = DataSupport.limit(3).offset(1).find(Book.class);                //where 子句                List<Book> books4 = DataSupport.where("pages>?", "10").find(Book.class);若是想用原省的sql語句,也可以使用Cursor c=DataSupport.findBySQL("select * from Book where pages > ? and price < ?","400","20");


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 吴川市| 濉溪县| 奉新县| 西乌珠穆沁旗| 钟祥市| 东港市| 金湖县| 中超| 内黄县| 沿河| 灵石县| 休宁县| 吴桥县| 潢川县| 青神县| 顺平县| 抚顺市| 中宁县| 石嘴山市| 始兴县| 珲春市| 娱乐| 如皋市| 崇礼县| 林甸县| 德阳市| 永修县| 太白县| 固阳县| 禹城市| 深圳市| 远安县| 盈江县| 红河县| 罗江县| 邢台市| 广州市| 荔浦县| 湟中县| 文水县| 玉龙|