LitePal学习笔记
来源:互联网 发布:淘宝cvr 编辑:程序博客网 时间:2024/05/02 06:44
一、配置LitePal
1.引入dependencies闭包
编辑app/build.gradle文件,在dependencies闭包中添加
dependencies { compile 'org.litepal.android:core:1.3.0'}
2.配置litepal.xml文件
在app/src/main目录新建assets目录,然后新建litepal.xml,编辑内容
<?xml version="1.0" encoding="utf-8"?><litepal> <dbname value="BookStore"></dbname> <version value="1"></version> <list> </list></litepal>
<dbname>标签为数据库名,<version>标签为版本号,<list>标签用于数据库表。
3.配置AndroidManifest.xml
添加 android:name="org.litepal.LitePalApplication"
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.luckychuan.litepaldemo"> <application android:name="org.litepal.LitePalApplication" android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> </application></manifest>
二、创建和升级数据库
1.创建模型类Book类
public class Book extends DataSupport { 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; }}
必须继承DataSupport类才能进行CRUD操作。Book类就会对应数据库中的Book表,在Book类中定义的id,author,price,pages,name即为表中的每一列。
2.修改litepal.xml代码
<list> <mapping class="com.example.luckychuan.litepaldemo.Book"></mapping> </list>
使用<mapping>标签配置数据库表(使用完整的类名)。
3.在java代码中创建数据库
在MainActivity代码中调用Connector.getDatabase()方法完成数据库的创建。
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //创建数据库的按钮 ((Button)findViewById(R.id.create_db_btn)).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Connector.getDatabase(); } }); }
三、添加数据
((Button) findViewById(R.id.insert_btn)).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Book book = new Book(); book.setName("The Da Vinci Code"); book.setAuthor("Dan Brown"); book.setPages(123); book.setPrice(10.00); book.save(); } });
四、更新数据
((Button) findViewById(R.id.update_btn)).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Book book = new Book(); book.setPages(233); book.updateAll("name = ? and author = ?", "The Da Vinci Code", "Dan Brown"); } });
五、删除数据
((Button) findViewById(R.id.delete_btn)).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //删除所有数据 DataSupport.deleteAll(Book.class); //满足条件的删除 DataSupport.deleteAll(Book.class, "price < ?", "100"); } });
六、查询数据
1.查询所有数据
((Button) findViewById(R.id.query_all_btn)).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { List<Book> books = DataSupport.findAll(Book.class); for (Book book : books) { Log.d(TAG, "onClick: " + book.getId()); Log.d(TAG, "onClick: " + book.getName()); Log.d(TAG, "onClick: " + book.getAuthor()); Log.d(TAG, "onClick: " + book.getPages()); Log.d(TAG, "onClick: " + book.getPrice()); } } });
2.带条件的查询
((Button) findViewById(R.id.query_btn)).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //查询第一条数据 Book firstBook = DataSupport.findFirst(Book.class); Log.d(TAG, "onClick: " + firstBook.getId()); Log.d(TAG, "onClick: " + firstBook.getName()); Log.d(TAG, "onClick: " + firstBook.getAuthor()); Log.d(TAG, "onClick: " + firstBook.getPages()); Log.d(TAG, "onClick: " + firstBook.getPrice()); //查询最后一条数据 Book lastBook = DataSupport.findLast(Book.class); Log.d(TAG, "onClick: " + lastBook.getId()); Log.d(TAG, "onClick: " + lastBook.getName()); Log.d(TAG, "onClick: " + lastBook.getAuthor()); Log.d(TAG, "onClick: " + lastBook.getPages()); Log.d(TAG, "onClick: " + lastBook.getPrice()); //select()方法用于查询哪几列 List<Book> selectBooks = DataSupport.select("name","author").find(Book.class); for (Book book : selectBooks) { Log.d(TAG, "onClick: " + book.getName()); Log.d(TAG, "onClick: " + book.getAuthor()); } List<Book> whereBooks = DataSupport.where("name = ?","The Da Vinci Code").find(Book.class); for (Book book : whereBooks) { Log.d(TAG, "onClick: " + book.getId()); Log.d(TAG, "onClick: " + book.getName()); Log.d(TAG, "onClick: " + book.getAuthor()); Log.d(TAG, "onClick: " + book.getPages()); Log.d(TAG, "onClick: " + book.getPrice()); } //order()方法用于对查询结果的排列方式 List<Book> orderBooks = DataSupport.order("price desc").find(Book.class); for (Book book : orderBooks) { Log.d(TAG, "onClick: " + book.getId()); Log.d(TAG, "onClick: " + book.getName()); Log.d(TAG, "onClick: " + book.getAuthor()); Log.d(TAG, "onClick: " + book.getPages()); Log.d(TAG, "onClick: " + book.getPrice()); } //limit()方法用于对查询结果的限制,如limit(3)表示只查询前三条数据 List<Book> limitBooks = DataSupport.limit(2).find(Book.class); for (Book book : limitBooks) { Log.d(TAG, "onClick: " + book.getId()); Log.d(TAG, "onClick: " + book.getName()); Log.d(TAG, "onClick: " + book.getAuthor()); Log.d(TAG, "onClick: " + book.getPages()); Log.d(TAG, "onClick: " + book.getPrice()); } //offset()方法用于查询结果的偏移量,如offset(1)表示偏移1条数据,从第2条数据开始查询 //offset()方法和limit()方法连用,共同组成了SQL当中的limit关键字 List<Book> offsetBooks = DataSupport.limit(2).offset(1).find(Book.class); for (Book book : offsetBooks) { Log.d(TAG, "onClick: " + book.getId()); Log.d(TAG, "onClick: " + book.getName()); Log.d(TAG, "onClick: " + book.getAuthor()); Log.d(TAG, "onClick: " + book.getPages()); Log.d(TAG, "onClick: " + book.getPrice()); } } });
源代码:https://github.com/Luckychuan/LitePalDemo.git
1 0
- LitePal学习笔记
- LitePal学习笔记
- LitePal学习笔记
- Litepal (数据库框架) 学习笔记
- [Android新手学习笔记36]-Storage-LitePal
- Android学习笔记——LitePal
- LitePal学习
- LitePal 学习
- Android数据库LitePal框架学习笔记(1)---数据库的adb操作以及LitePal使用入门
- LitePal学习小结 (一)
- LitePal学习小结 (二)
- LitePal学习总结 (三)
- LitePal学习总结 (四)
- LitePal学习总结 (五)
- LitePal学习总结 (六)
- LitePal学习总结 (七)
- LitePal学习总结 (八)
- LitePal源码学习开篇
- eclipse创建maven web项目时,index.jsp报错
- 安卓学习笔记:让自己显示在地图上(使用百度地图API)
- 与堆栈地址有关的计算题
- 进程调度(一)——FIFO算法
- Java之Integer内部缓存
- LitePal学习笔记
- python字典与数据库的灵活使用
- 《艺术家眼中的新三峡》之奉节——三峡的变化美的让艺术家落泪
- HashMap(1): 基本存取原理
- 389. Find the Difference
- 延云YDB基于spark进行数据分析的一种新方式
- 利用java.nio.charset.CharsetDecoder自动识别字符集
- Unity插件
- 《艺术家眼中的新三峡》之巫山——新三峡最浪漫的传说