经过诸多网上查阅与实际操作后,总结如下使用jar包引入依赖及详细配置步骤
https://gitcode.net/mirrors/litepalframework/litepal/-/tree/master
下载完成后的.zip文件,复制litepal-master\downloads\路径下的litepal-x.x.x-src.jar文件,到Anroidstudio中的项目libs/文件夹下
添加完成后会在build.gradle.kt中自动生成,成功添加jar包依赖
在litepaltest/src/main/下右击新建assets文件夹
在assets/下右击新建litepal.xml文件
litepal.xml内容如下
<litepal>
<dbname value="BookStore">dbname>
<version value="1">version>
<list>
list>
litepal>
dbname:配置项目的数据库名称。
version:配置数据库的版本。每次要升级数据库时,加上这里的值。
list:配置映射类,其中mapping标签中声明的类为新建的java实体类,需要指定完整的包名称。
storage:配置应该存储数据库文件的位置。内部和外部是唯一有效的选择。
在AndroidManifest.xml添加红框代码,无报红情况
到此,LitePal开源库正式配置完成!
新建Book类
package com.example.litepaltest;
public class Book {
private int id;
private String author;
private double price;
private String pages;
private String name;
private String press;
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 String getPages() {
return pages;
}
public void setPages(String pages) {
this.pages = pages;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPress() {
return press;
}
public void setPress(String press) {
this.press = press;
}
}
修改litepal.xml为
<litepal>
<dbname value="BookStore">dbname>
<version value="1">version>
<list>
<mapping class="com.example.litepaltest.Book">mapping>
list>
litepal>
修改MainActivity.class代码
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 view) {
Connector.getDatabase();
}
});
}
}
Mainactivity.class布局文件MainActivity.xml代码
<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=".MainActivity"
android:orientation="vertical">
<Button
android:id="@+id/create_database"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Create_database" />
<Button
android:id="@+id/add_data"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Add data" />
<Button
android:id="@+id/update_data"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Update data" />
<Button
android:id="@+id/delete_data"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Delete data" />
<Button
android:id="@+id/query_data"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Query data" />
LinearLayout>
运行程序,使用adb命令查看文件位置,发现BookStore.db建立成功,且也存在Book表建立语句。
实体类Book继承DataSupport
MainActivity添加代码
Button addData = (Button) findViewById(R.id.add_data);
addData.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Book book = new Book();
book.setName("kq `s live");
book.setAuthor("kq");
book.setPages(454);
book.setPress("Unknow");
book.save();
}
});
MainActivity添加代码
Button updateData = (Button) findViewById(R.id.update_data);
updateData.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Book book = new Book() ;
book.setPrice(19.95);
book.setPress("Anchor");
book.updateAll("name = ? and author = ?", "The Lost Symbol", "Dan Brown");
}
});
运行程序,发现更新数据成功!
如果想要把数据都更新成默认值,可以在book.updateAll()前使用book.setToDefault(“pages”);将pages列全部设置为默认值。
Button updateData = (Button) findViewById(R.id.update_data);
updateData.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Book book = new Book() ;
book.setPrice(19.95);
book.setPress("Anchor");
book.setToDefault("pages");
book.updateAll("name = ? and author = ?", "The Lost Symbol", "Dan Brown");
}
});
MainActivity添加代码
Button deleteData = (Button) findViewById(R.id.delete_data);
deleteData.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
DataSupport.deleteAll(Book.class, "price< ? ", "15");
}
});
MainActivity添加代码
Button queryData = (Button) findViewById(R.id.query_data);
queryData.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
List<Book> books = DataSupport.findAll(Book.class);
for (Book book : books) {
Log.d(TAG, "name is " + book.getName());
Log.d(TAG, "author is " + book.getAuthor());
Log.d(TAG, "pages is " + book.getPages());
Log.d(TAG, "price is " + book.getPrice());
Log.d(TAG, "press is " + book.getPress());
}
}
});