对象与表的关系与ORM概述
类与表对应:成员变量与列对应
对象与行:将一个对象的成员变量存成一行
映射关系:对象关系映射(Object Relational Mapping,简称ORM)是通过使用描述对象和数据库之间映射的元数据,将面向对象语言程序中的对象自动持久化到关系数据库中。本质上就是将数据从一种形式转换到另外—种形式
Ormlite依赖与设置对应关系
- 使用简单的注解来标注需要持久化的 JAVA 对象;
- 提供了一个功能强大的 Database Access Object (DAO) com.j256.ormlite.dao.Dao<T, ID> 及其实现类 com.j256.ormlite.dao.BaseDaoImpl<T, ID>,使用这两个类就基本可以满足我们对数据库的 CRUD 操作了;
- 灵活的 QueryBuilder 让你可以构造简单或复杂的查询;
- 处理编译好的重复的查询 SQL statements ;
- 支持外键;
- 支持数据库事务;
导入ormlite依赖
implementation 'com.j256.ormlite:ormlite-android:6.1'
定义person类
public class Person {
public Integer id;
public String name;
public Integer age;
//必须要用到的无参构造方法
public Person() {
}
//为了方便赋值
public Person(Integer id, String name, Integer age) {
this.id = id;
this.name = name;
this.age = age;
}
//方便打印对象的成员变量
@Override
public String toString() {
return "Person{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
'}';
}
}
定义对象
定义person表
映射
将person类与person表对应起来
将成员变量与表的列对应起来
定义表与对象的对应关系(映射关系)
表必须在数据库,表必须创建才能使用
这时数据库就创建好了
用Ormlite实现增删改查
查
现在添加查找功能
//获得一个具有增删改查方法的对象,叫做Dao对象
try {//<第一个:类,id类型>
Dao<Person, Integer> dao = myHelper.getDao(Person.class);
List<Person> persons = dao.queryForAll();
System.out.println("查询结果:" + persons);
} catch (SQLException e) {
e.printStackTrace();
}
但是我还没有添加任何记录
所以这个时候查出来是空的
增
现在增加两条记录【就是我刚刚的person1、person2】
现在重新运行再次查询
删
注意这里要将前面的增加的语句注释掉,不然会再多增加记录
改
现在重新运行再次查询
关于Ormlite的增删改查就结束了
重点注意映射关系