LitePal使用UUID作为主键

LitePal只是封装了SQLite的操作,底层调用的还是SQLite的接口。

LitePal默认提供了一个long id作为主键。我想要使用UUID作为主键,l例如表名为Book,那么在表中新建String mID。

public class Book  extends DataSupport{
    private UUID mId;
    
需要在其构造函数中

public   Book()
{
    super();
    mId =   UUID.randomUUID().toString();
}

这样在查询的时候就可以直接以UUID作为主键查询。

  List books;
  Book bookTest = new Book();
bookTest.setPress("a");
bookTest.setPrice(10.0);
bookTest.setPages(50);
bookTest.setAuthor("fu");
bookTest.save();
  books = DataSupport.where("mId=?",bookTest.getId().toString()).find(Book.class);

SQLite 数据类型

SQLite 数据类型是一个用来指定任何对象的数据类型的属性。SQLite 中的每一列,每个变量和表达式都有相关的数据类型。

您可以在创建表的同时使用这些数据类型。SQLite 使用一个更普遍的动态类型系统。在 SQLite 中,值的数据类型与值本身是相关的,而不是与它的容器相关。

SQLite 存储类

每个存储在 SQLite 数据库中的值都具有以下存储类之一:

存储类 描述
NULL 值是一个 NULL 值。
INTEGER 值是一个带符号的整数,根据值的大小存储在 1、2、3、4、6 或 8 字节中。
REAL 值是一个浮点值,存储为 8 字节的 IEEE 浮点数字。
TEXT 值是一个文本字符串,使用数据库编码(UTF-8、UTF-16BE 或 UTF-16LE)存储。
BLOB 值是一个 blob 数据,完全根据它的输入存储。

SQLite 的存储类稍微比数据类型更普遍。INTEGER 存储类,例如,包含 6 种不同的不同长度的整数数据类型。


你可能感兴趣的:(LitePal使用UUID作为主键)