}
在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");
新闻热点
疑难解答