数据库操作框架OrmLite
- ORMlite是类似hibernate的对象映射框架,主要面向java语言,同时,是时下最流行的android面向数据库的的编程工具。
- 对象关系映射(Object Relational Mapping,简称ORM)是通过使用描述对象和数据库之间映射的元数据,将面向对象语言程序中的对象自动持久化到关系数据库中。本质上就是将数据从一种形式转换到另外一种形式
对象与表的关系
具体使用
1.导入OrmLite依赖
implementation ‘com.j256.ormlite:ormlite-android:5.0’
2.设置网络权限
3.创建Person对象,定义Person类与表的关系
import com.j256.ormlite.field.DatabaseField;
import com.j256.ormlite.table.DatabaseTable;
//将person类与表对应,映射
@DatabaseTable(tableName = "person")
public class Person {
//将成员变量与表的列对应
@DatabaseField(columnName = "id",generatedId = true)
public Integer id;
@DatabaseField(columnName = "name")
public String name;
@DatabaseField(columnName = "age")
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 +
'}';
}
}
4.根据映射关系创建数据库和表
public class MainActivity extends AppCompatActivity {
//根据映射关系创建数据库和表
public class MyHelper extends OrmLiteSqliteOpenHelper{
public MyHelper(Context context) {
super(context, "person", null, 1);//参数1:上下文,参数2:数据库名
}
@Override
public void onCreate(SQLiteDatabase database, ConnectionSource connectionSource) {
try {
//根据映射关系创建表
TableUtils.createTable(connectionSource,Person.class);
} catch (SQLException e) {
e.printStackTrace();
}
}
@Override
public void onUpgrade(SQLiteDatabase database, ConnectionSource connectionSource, int oldVersion, int newVersion) {
}
}
5.增删改查操作
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//定义一个Person对象
Person person1 = new Person(null,"张三",20);
Person person2 = new Person(null,"李四",22);
//创建myHelper对象,创建数据库和表
MyHelper myHelper = new MyHelper(this);
try {
//获得一个具有增删改查的对象,叫做Dao对象
//<类,id类型>
Dao<Person, Integer> dao = myHelper.getDao(Person.class);
//增
// dao.create(person1);
// dao.create(person2);
//dao.createIfNotExists() 如果不存在则创建
//删
// dao.deleteById(5);
//改,先查再改再更新
Person p = dao.queryForId(6);
p.name = "赵五";
dao.update(p);
//查
List<Person> person = dao.queryForAll();
System.out.println("结果"+person);
} catch (SQLException e) {
System.out.println("错误");
}
}
结果: