android面向数据库的的编程工具-OrmLite
阅读原文时间:2021年04月20日阅读:1

数据库操作框架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("错误");
        }
    }

结果: