Android数据存储之LitePal

Android数据存储之LitePal

LitePal: 这是github上的开源库,稳定性强,操作简单,效率高等等

运用:

1.在build.gradle(app)添加依赖:

compile 'org.litepal.android:core:1.5.1'

2.app/src/main下新建一个路径命名:assets,然后在该目录下创建xml文件litepal.xml,内容如下:

<?xml version="1.0" encoding="utf-8" ?>
<litepal>
 
<!--数据库名字.db-->
<dbname value = "BookStore"/>
 
<!--数据库版本,更新时改动版本-->
<version value = "1"/>
 
<!--这是自己新建的用于数据库存放表数据类型-->
<list>
    <mapping class = "testsdcard.cai.maiyu.mdaima06_01.bean.Book"/>
</list>
</litepal>

无疑是指定数据库名字,版本,还有一个后面你自己创建的数据表类型(可以先不添加)

3.在manifest中去配置:

在<application   

android:name="org.litepal.LitePalApplication"
.....
>
......

</application>

若是用自己的application也一样,记得在自己定义的application的onCreate方法中初始化:LitePal
。初始化(this);

4.创建数据表类:继承DataSupport

public class Book extends DataSupport{
    private int id;     //id
    private String name;    //书名
    private String author;  //作者
    private int pages;      //页数
    private double price;   //价格
  //  private String press; //出版社
 
//    public String getPress() {
//        return press;
//    }
//
//    public void setPress(String press) {
//        this.press = press;
//    }
 
    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 String getAuthor() {
        return author;
    }
 
    public void setAuthor(String author) {
        this.author = author;
    }
 
    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;
    }
}

5.Activity中使用:

public class TestLitePalActivity extends AppCompatActivity {
 
    //创建数据库
    @ViewInject(R.id.create_database)
    private Button mBtnCreate;
 
    //增加数据
    @ViewInject(R.id.add)
    private Button mBtnAdd;
 
    //更新数据
    @ViewInject(R.id.update)
    private Button mBtnUpdate;
 
    //删除数据
    @ViewInject(R.id.delete)
    private Button mBtnDelete;
 
    //查询数据
    @ViewInject(R.id.retrieve)
    private Button mBtnRetrieve;
 
    private static final String TAG = "TestLitePalActivity";
 
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_database);
 
        ViewUtils.inject(this);
 
    }
 
    //创建数据库
    @OnClick(R.id.create_database)
    public void createDatabase(View view){
 
 
        //获取数据库
        LitePal.getDatabase();
    }
 
    /**
     * 添加数据
     * @param view
     */
    @OnClick(R.id.add)
    public void addData(View view){
 
        Book book = new Book();
        book.setName("大话数据结构");
        book.setAuthor("程杰");
        book.setPages(516);
        book.setPrice(43.00);
        //book.setPress("Unknow");//增加出版社
        book.save();
    }
 
 
    /**
     * 删除数据
     * @param view
     */
    @OnClick(R.id.delete)
    public void deleteData(View view){
 
        DataSupport.deleteAll(Book.class , "price < ?" , "60");
    }
    /**
     * 更新数据
     * @param view
     */
    @OnClick(R.id.update)
    public void updateData(View view){
        Book book = new Book();
        book.setPrice(38.50);
        book.updateAll("name = ? and author = ?" , "大话数据结构" , "程杰");
//更新数据为默认值
//        book.setToDefault("pages");
//        book.updateAll();
    }
    /**
     * 查询数据
     * @param view
     */
    @OnClick(R.id.retrieve)
    public void retrieveData(View view){
        List<Book> books = DataSupport.findAll(Book.class);
        for(Book book : books){
            Log.d(TAG , "book name is " + book.getName());
            Log.d(TAG , "book author is " + book.getAuthor());
            Log.d(TAG , "book pages is " + book.getPages());
            Log.d(TAG , "book price is " + book.getPrice());
        }
        //(2)添加限制:select--选定哪几列
        //where--约束条件,   order--结果排序 ,limit---结果的数量
        //offset---查询结果的便宜了offset(1)代表查询表中的从第2条开始
//        List<Book> books = DataSupport.select("name" , "author" ,"pages")
//                .where("pages > ?" , "600")
//                .order("pages")
//                .limit(10)
//                .offset(10)
//                .find(Book.class);
        //(3)用原生数据库语句查询
//        Cursor cursor = DataSupport.findBySQL("select * from Book where pages > ?" +
//                " and price < ?" ,"700" ,"60");
    }
}

注意:

(1)版本更新,只需要在litepal.xml中改版本号
(2)现在可利用DataSupport.findXXX就可以了
(3)记得创建数据表类要继承DataSupport类
(4)查询还支持多种查询,原生SQL语句查询,

如有侵权,请联系删除!

如果对您有帮助,麻烦点个赞。您的鼓励就是我的动力!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android数据存储是一种将数据存储在设备上的技术,以便应用程序可以使用它们,无论它们是否在运行时。这使得应用程序可以使用一些简单且安全的存储方法,而无需直接与设备存储硬件进行交互。Android提供了几种不同的数据存储选项,包括: 1. **Shared Preferences**:这是最基本的数据存储方式,它允许应用程序存储和检索键值对数据。这对于小型数据存储需求非常有用,因为它们是本地存储并且对其他应用程序不可见。 2. **Files**:应用程序可以使用文件系统来存储和检索数据。这可以包括文本文件、图像、音频和视频文件等。文件系统存储数据可以在应用程序关闭后保持持久性。 3. **SQLite**:SQLite是一个轻量级的关系型数据库,它可以在设备上作为嵌入式数据库使用。SQLite提供了对数据的结构化查询支持,因此更适合存储大量数据。 4. **Content Providers**:Content Providers允许应用程序之间共享数据。它们使得跨应用程序访问和共享数据成为可能,这对于构建大型应用程序的跨应用程序功能非常有用。 5. **外部存储(如SD卡)**:Android允许应用程序访问设备的外部存储(如SD卡)。这可以用于存储大文件或大型数据集,但需要注意的是,访问外部存储可能需要额外的权限。 在选择适当的存储选项时,需要考虑数据的类型、大小、持久性和安全性。例如,如果数据只需要在应用程序运行时可用,Shared Preferences可能是一个合适的选择。然而,如果需要存储大量结构化数据或大型文件,那么SQLite或外部存储可能更适合。 此外,对于敏感数据(如用户密码或个人信息),建议使用加密来保护这些数据。在Android中,可以使用AES或其他加密算法来实现这一点。 最后,记住在处理存储数据时遵循最佳实践,例如使用适当的错误处理和日志记录,以确保数据的安全性和完整性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值