Android实现本地手机数据库存储数据最简单的方法:LitePal

1、前言

很多做android开发的肯定都知道android有几个数据存储方式,这里就不细说其它的了,今天跟大家讲的是android使用本地数据库存储数据,不过提到手机本地数据库存储,很多人都知道使用SQLiteDataase来操作SQLite数据库,很多人也都有用过,不过要自己写的出来这些sql语句,还是需要懂一些数据库的增删查改的语句的,我相信不少程序员应该不会sql的增删改查的一些语句。当然不绝对,毕竟好学的人还是大有人在的!不会当你在android端去写哪些sql语句的时候,你会觉得好用吗?每个人的回答可能不一样,不会今天看完本篇内容后,相信你将再也不想去碰SQLiteDatabase了!

2、今天介绍的是使用开源库 --- LitePal

    1):LitePal 是一款开源的android数据库框架,它采用了对象关系映射(ORM)的模式,将我们平时用的数据库功能进行了封装,使大家不用编写一句sql语句就可以完成各种建表和增删查改的操作。

    正式使用:

3、配置LitePal

    1): 首先在app/build.gradle文件下的dependencies闭包中添加依赖:

 
implementation'org.litepal.android:core:1.6.1'
 

这样我们就算是吧LitePal成功引入到当前项目中了,接下来需要配置 litepal.xml 文件。我们右击app/src/main 目录---> New----> Directory,
创建一个 assets 目录,然后在assets 目录下再新建一个litepal.xml文件,接着编辑 litepal.xml 文件中的内容,如下:

<?xml version="1.0" encoding="utf-8"?>
<litepal>
    <dbname value="User"></dbname>
    <version value="1"></version>
    <list>
        
    </list>
</litepal>

其中,<dbname> 标签是用于指定数据库名,<version> 标签用于指定数据库版本号,<list> 标签用于指定所有的映射模型,

稍候会用到。

最后我们还需要配置一下 LitePalApplication ,修改AndroidManifest.xml 中的代码,在 <application> 标签中把android:name=""中的内容改为org.litepal.LitePalApplication,注意:有的人会说我项目中已经有别的application了,也不用担心,可以直接修改我们自己的MyApplication 的类,让它集成LitePalApplication 即可,不影响的,在AndroidManifest.xml中就不用修改了,因为我们需要在开始启动项目时让LitePal的所有功能都能正常工作,好了,下面就可以直接使用它了。

4、创建数据库和升级数据库

    1)之前创建数据库需要自定义类集成SQLiteOpenHelper等等,这里就完全不用那么麻烦了,这里是使用对象关系映射模型,,不过不要小看这个对象关系映射模型,它就是可以用面向对象的思维来操作数据库,不需要sql语句了,做法如下:

        2)首先我们为了创建一张UserInfo表,先看表中有哪些字段,也就是哪些列,然后用最简单的最常用的方法就是定义一个UserInfo实体类,如下:

class UserInfo{
    private int id;
    private String userName;
    private int age;
    private String sex;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }
}

这是一个典型的Javabean,在UserInfo 类中定义了几个字段,并生产相应的getter和setter方法,而UserInfo类就会对应数据库中的UserInfo表,而类中的每一个字段分别对应了表中的每一列,这就是对象关系映射最直观的体验,

3)

接下来我们需要将UserInfo类添加到映射模型列表中,修改litepal.xml 中的代码,如下:

<?xml version="1.0" encoding="utf-8"?>
<litepal>
    <dbname value="User"></dbname>
    <version value="1"></version>
    <list>
        <mapping class="com.ydys.goods.model.UserInfo"></mapping>
    </list>
</litepal>

这里使用<mapping> 标签来声明我们需要配置映射的映射模型类,注意需要使用完整的类名。不管有多少模型类都需要映射,都使用同样的方式配置在<list>标签下面即可。

4)

好了,这样就已经把所有的工作完成了,现在我们只需要进行任意一次数据库的操作,User.db 数据库就会自动创建出来,现在我们来完成MainActivity中的代码:

MainActivity中的具体代码就不写了,很简单,就是在对应布局下面顶一个Button按钮,在activity中给它监听事件,在点击事件中写上下面一句代码: 

LitePal.getDatabase(); 这样一句代码就直接把数据库创建出来了,一句代码搞定。是不是很牛叉???到目前为止你觉得
和之前的那种方式比哪种方便?大家心里很清楚了吧?

不过现在数据库是创建好了,但是没法通过控制台查看已创建好的数据库,因为现在的手机查看需要root权限,不过不用管它,因为在手机里面确实已经创建好了,后面可以一步一步验证,那就是通过创建好的数据库把我们添加的数据取出来,后面慢慢来说。

5)增加字段: 如果在写好后发现字段少了,怎么办?很简单,直接在创建好的Javabean中在加一个字段,写上get和set方法,然后在 litepal.xml文件中把 <version>标签的value值改为 2 即可,只需要在原来的版本基础上加1即可;然后重新运行程序,在点击一下按钮数据库的升级添加字段的功能就完成了。

    如果想在创建一个表,同样的方法,在新建一个Javabean,然后在litepal.xml中配置上映射就行了,然后运行点击ok,记得改版本号。

5、添加数据

    1)向表中添加数据其实也很简单,如下:

    *** 说明在添加数据之前先重点说明一下,要想通过实体类添加数据,必须要让你的实体类,也就是Javabean 继承 DataSupport ,必须要继承,在此声明,不要忘记

    下面开始添加数据:

UserInfo userInfo = new UserInfo();
userInfo.setUserName("张三");
userInfo.setAge(25);
userInfo.setSex("男");
userInfo.save(); 

好了,添加数据就完成了,看到有什么不同了吗?就是通过实体类set数据即可,然后最后一步用对象调用  .save() 方法,就可以了。有人会问,不是有一个id吗?其实我们不用管它,id也就是表的主键,如果我们不给定这个id字段的话,数据库创建会自动给生成这样一个id字段,如果给了就按照这个id最为表的主键,而且这个主键id是自增长的,所以不用管,后面如果想对标进行查改删等,通过id就可以实现了,所以我觉得id我们给出来好一些,后面好拿这个id操作数据库。

6、使用LitePal查询数据

    使用LitePal查询数据也是非常大的方便,一行代码搞定:

    List<UserInfo> lists = DataSupport.findAll(UserInfo.class);

 这样就拿到了刚才添加的一条数据,通过DataSupport的findAll方法通过传入的参数为即可查询指定表的数据,返回值为一个UserInfo类型集合,是不是很方便啊?

   它还可以单独查第一条数据:UserInfo firstInfo = DataSupport.findFirst(UserInfo.class);

它还有其它方法,大家可以去试试,

7、删除数据

    删除数据通过:DataSupport.deleteAll(UserInfo.class,"id<?","5");  这句代码是通过约束条件来删除的,删除id < 5的数据,这里就举这一个例子,其它的大家通过DataSupport的delete其它方法根据参数去处理即可,

8、LitePal还有修改数据,这个和增加增加数据有些相似,比如:

    UserInfo  info = new UserInfo();

    info.setSex("女");

    info.updateAll("id=?","1");

    即可做到修改id为1的数据,性别改为“女”等等,

总结:到这里为止,LitePal的介绍就算基本结束了,大家只要认真看到,照着敲一遍,很容易的,比之前的那种方式是不是简单粗暴?关于DataSupport中海油一些其它的方法操作数据库的,大家可以自己去试试,这里就对它的基本使用先介绍到这里了!希望对所有android开发者有帮助,,,

如果大家觉得对你帮助,一定要把好东西分享出去哦,,,

***** 转载请标明出处,谢谢! ****

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值