转载请注明出处:
更快捷操作数据库 LitePal_Mr_Leixiansheng的博客-CSDN博客
作用:LitePal使数据库操作更加快捷方便
步骤:
1、引入LitePal依赖 ,在Gradle(app)–>dependencies 中 引入依赖:implementation ‘org.litepal.android:java:3.0.0’
并在AndroidManifest.xml–>application 中添加 :android:name=”org.litepal.LitePalApplication”
2、AS app 下创建 assets 文件夹,新建 litepal.xml 文件。并配置好dbname、version、list
3、新建类:作为表格。设置好set、get。在1中list引入此类
4、在主活动中进行库创建和数据的增删改查
代码如下:
1、引入依赖、环境搭建
dependencies {
implementation 'org.litepal.android:java:3.0.0'
}
manifest下添加 或在 Application中初始化
<application
android:name="org.litepal.LitePalApplication">
</application>
LitePal.initialize(this);
2、package模式下,在app–>main下 创建 assets 文件夹,新建 litepal.xml 文件(litepal.xml需要手动移动到assets文件夹下)
<?xml version="1.0" encoding="utf-8"?>
<litepal>
<dbname value="bookstore" ></dbname>
<version value="1"></version>
<list>
<mapping class="com.leixiansheng.litepaltest.Book"></mapping>
<mapping class="com.leixiansheng.litepaltest.Category"></mapping>
</list>
</litepal>
3、创建表格类
package com.leixiansheng.litepaltest;
import org.litepal.crud.DataSupport;
/**
* Created by Leixiansheng on 2017/8/14.
*/
public class Book extends LitePalSupport {
private int id;
private String author;
private double price;
private int pages;
private String name;
private String press;
public String getPress() {
return press;
}
public void setPress(String press) {
this.press = press;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPages() {
return pages;
}
public void setPages(int pages) {
this.pages = pages;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
}
package com.leixiansheng.litepaltest;
import org.litepal.crud.DataSupport;
/**
* Created by Leixiansheng on 2017/8/14.
*/
public class Category extends LitePalSupport {
private int id;
private int categoryCode;
public int getCategoryCode() {
return categoryCode;
}
public void setCategoryCode(int categoryCode) {
this.categoryCode = categoryCode;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
3、主活动使用LitePal进行数据库操作
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.leixiansheng.litepaltest.MainActivity"
android:orientation="vertical">
<Button
android:id="@+id/create_db"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Create db"
android:textAllCaps="false"/>
<Button
android:id="@+id/add_db"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Add db"
android:textAllCaps="false"/>
<Button
android:id="@+id/update_db"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Update db"
android:textAllCaps="false"/>
<Button
android:id="@+id/update2_db"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Update2 db"
android:textAllCaps="false"/>
<Button
android:id="@+id/delete_db"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Delete db"
android:textAllCaps="false"/>
<Button
android:id="@+id/query_db"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Query db"
android:textAllCaps="false"/>
</LinearLayout>
package com.leixiansheng.litepaltest;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import org.litepal.crud.DataSupport;
import org.litepal.tablemanager.Connector;
import java.util.List;
/**
* LitePal:更快捷地操作数据库
*/
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
private final static String TAG = "MainActivity";
private Button btnCreateDB;
private Button btnAddBookData;
private Button btnUpdateBookData;
private Button btnUpdateBookData2;
private Button btnDeleteData;
private Button btnQueryData;
private Book book;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
setOnclick();
}
private void setOnclick() {
btnCreateDB.setOnClickListener(this);
btnAddBookData.setOnClickListener(this);
btnUpdateBookData.setOnClickListener(this);
btnUpdateBookData2.setOnClickListener(this);
btnDeleteData.setOnClickListener(this);
btnQueryData.setOnClickListener(this);
}
private void initView() {
btnCreateDB = (Button) findViewById(R.id.create_db);
btnAddBookData = (Button) findViewById(R.id.add_db);
btnUpdateBookData = (Button) findViewById(R.id.update_db);
btnUpdateBookData2 = (Button) findViewById(R.id.update2_db);
btnDeleteData = (Button) findViewById(R.id.delete_db);
btnQueryData = (Button) findViewById(R.id.query_db);
book = new Book();
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.create_db: //创建数据库
Connector.getDatabase();
// SQLiteDatabase sqLiteDatabase = Connector.getDatabase();
break;
case R.id.add_db: //添加数据
book = new Book();
book.setName("The Da Vinci Code");
book.setPages(454);
book.setAuthor("Dan Brown");
book.setPress("Unknow");
book.setPrice(16.96);
book.save();
toast("add ok");
break;
case R.id.update_db: //更新数据方式一
book.setName("New Name");
book.setAuthor("New Author");
book.save();
toast("update ok");
break;
case R.id.update2_db: //更新数据方式二(推荐)
book = new Book();
book.setPrice(14.95);
book.setPress("Anchor");
//更新条件筛选
//book.updateAll(); //将所有数据还原为初始值
book.updateAll("id = ? and author = ?", "1", "Dan Brown"); //id为1 且作者为author 会被更改
toast("update2 ok");
break;
case R.id.delete_db: //删除数据
//LitePal.deleteDatabase(Book.class); //删除所有数据
LitePal.deleteAll(Book.class, "price > ?", "15");
toast("delete ok");
break;
case R.id.query_db: //查询所有
List<Book> bookList = LitePal.findAll(Book.class);
for (Book book:bookList) {
Log.i(TAG, "book name:" + book.getName());
Log.i(TAG, "book author:" + book.getAuthor());
Log.i(TAG, "book pages:" + book.getPages());
Log.i(TAG, "book price:" + book.getPrice());
Log.i(TAG, "book press:" + book.getPress());
}
/* 其他查询方式
List<Book> bookList = DataSupport.findFirst(Book.class); //查询第一条
List<Book> bookList = DataSupport.findLast(Book.class); //查询最后一条
List<Book> bookList = DataSupport.where("pages > ?", "400"); //条件查询
List<Book> bookList = DataSupport.order("price desc"); //查询后排序 desc降序 asc升序
........
*/
}
}
private void toast(String str) {
Toast.makeText(this, str, Toast.LENGTH_SHORT).show();
}
}
版权声明:本文为Mr_Leixiansheng原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。