zoukankan      html  css  js  c++  java
  • Android:日常学习笔记(10)———使用LitePal操作数据库

    Android:日常学习笔记(10)———使用LitePal操作数据库

    引入LitePal

    什么是LitePal

      LitePal是一款开源的Android数据库框架,采用了对象关系映射(ORM)的模式,将平时开发时最常用的一些数据库功能进行了封装,使得开发者不用编写一行SQL语句就可以完成各种建表、増删改查的操作。并且LitePal很“轻”,jar包大小不到100k,而且近乎零配置,这一点和Hibernate这类的框架有很大区别。目前LitePal的源码已经托管到了GitHub上。

    关于对象关系映射:

      我们使用的对象语言是面向对象语言,而使用的数据库则是关系型数据库,将面向对象的语言与面向关系的数据库之间建立一种映射关系,这就是对象关系映射。我们可以不用编写任何SQL语句,而用面向对象的设计思想操作数据库

    配置LitePal

      1.添加依赖

      

      2.编写XML配置文件 

    <?xml version="1.0" encoding="utf-8" ?>
    <litepal>
        <dbname value="BookStore"></dbname>  //数据库名称
        <version value="1"></version>     //数据库版本
        <list></list>
    </litepal> 

     说明:

    <dbname>是数据库的名字
    <version>是数据库的版本号
    <list>是数据库的映射模型(数据库表)
    <mapping>是数据库的映射模型的地址(数据库表结构)

      3.配置LitePalApplication

        <application
            android:name="org.litepad.LitePalApplication"
            .....>
        ....
        </application>

    创建和升级数据库

    创建数据库及Book表

    1.定义JavaBean

    public class Book {
        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;
        }
    
       .....          
    }

    2.将Book类添加到映射模型列表中

    <?xml version="1.0" encoding="utf-8" ?>
    <litepal>
    <dbname value="BookStore"></dbname>
    <version value="1"></version>
    <list>
        <mapping class="com.example.zy.dealhelper.database.Book"></mapping>
    </list>
    </litepal>

    3.调用命令创建数据库

    public void onClick(View v) {
        Connector.getDatabase();
    }

    4.litePal会自动创建数据库和Mapping对象类的数据表

     

    升级数据库

      LitePal升级数据库非常简单,你完全不需要思考任何的逻辑,只需要修改你想改的任何内容,然后将版本后递增即可。比如我们要往Book表中添加一列,如press(出版社),直接在JavaBean中添加即可。

    public class Book {
        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;
        }
       ......    
    }

    或者想多创建一张表,你也只需要再写一个JavaBean类就好。

    public class Catagory {
        private int id;
        private String categoryName;
    
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
      ......
    }

    别忘了最后再LitePal的配置文件中,加入mapping和更新版本号

    增删改查

    添加数据

    使用LitePal添加数据异常简单:

       我们只需要创建出模型类并将数据设置好,调用save()方法即可。

    前提:

      要执行CURD操作的数据表必须继承自DataSupport

      

     实例:

                public void onClick(View v) {
                    Book book =new Book();
                    book.setName("The Da Vinci Code");
                    book.setAuthor("Dan Brown");
                    book.setPages(454);
                    book.setPrice(16.96);
                    book.setPress("Unknow");
                    book.save(); //只需要调用继承方法,save()即可
                }

    更新数据

    对已存储对象重新设值:

      

    条件匹配:

      

      切记如果不指定条件会更新所有记录的

    删除数据

    DataSupport.deleteAll(Book.class,"price < ?","15")

    查询数据

    简单查询:

    //查找某表的所有数据
    List<Book> books =DataSupport.findAll(Book.class);
    //第一条数据
    Book first =DataSupport.findFirst(Book.class);
    //最后一条数据
    Book last =DataSupport.findLast(Book.class);

    连缀查询:

    关于ADB启动错误的解决方案:

    1、CMD命令窗口输入:adb nodaemon server 。然后就会提示你哪个端口被占用了。

    2、输入netstat -ano | findstr "5037" 。然后会弹出提示告诉你哪些进程占用了该端口,记住非0地址的后面的数字

    3、打开任务管理器,点击“进程“,“查看”-“选择列”,勾选PID

    4、查找第2步中看到的数字PID,然后结束相关进程,即可

      

  • 相关阅读:
    C++学习之路:纯虚函数
    C++学习之路:虚函数与多态
    C++学习之路: 虚继承的内存的模型
    grep命令与正则表达式
    C++学习:lambda表达式入门
    wxWidgets在LINUX下的安装和demos的编译
    C++学习之路: STL探索之 reverse_iterator 的一个小陷阱
    JAVA入门:http基础
    sql入门
    C++学习之路: 构造函数详解与初始化列表
  • 原文地址:https://www.cnblogs.com/MrSaver/p/6906436.html
Copyright © 2011-2022 走看看