关于androidORMLite的一些总结

编程入门 行业动态 更新时间:2024-10-28 10:26:46

关于androidORMLite的一些总结

关于androidORMLite的一些总结

ORMLite是一种对象关系映射(Object-Relational Mapping, 简称ORM)工具,可用于读写数据。ORMLite是一个框架,更佳方便对多数据进行操作,特别是对于那些对SQL语句不熟悉的人

使用:

  1. 下载 ORMLite Jar
    首先去ORMLite官网下载jar包,对于Android为:ormlite-android-4.48.jar 和 ormlite-core-4.48.jar ;
  2. 创建Bean

User.java

/*
* 当定义表时,第一个建议便是使用final变量定义数据库表名和列名,
* 该方法可以简化代码的维护工作,不过本例并没用使用*/
@DatabaseTable(tableName = "tb_user") //@DatabaseTable:标明这是数据库的一张表
public class User {/*@DatabaseField:标明这是表中的字段columnName: 为该字段在数据中的列名generatedId:表示id为自增长*/@DatabaseField(generatedId = true)private int id;@DatabaseField(columnName = "name")private String name;@DatabaseField(columnName = "desc")private String desc;/*ORMLite需要用到无参构造方法* 当ORMLite需要创建User类时会使用到无参数的构造方法,* 并通过反射机制设置成员变量,也可以使用setter方法设置成员变量*/public User() {}public User(String name, String desc) {this.name = name;this.desc = desc;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getDesc() {return desc;}public void setDesc(String desc) {this.desc = desc;}
}
  1. 创建数据库
    原生的数据库操作,需要继承SQLiteOpenHelper,这里我们需要继承OrmLiteSqliteOpenHelper
  2. public class DatabaseHelper extends OrmLiteSqliteOpenHelper {//数据库文件的名称private static final String TABLE_NAME = "sqlit-test.db";/*userDao , 每张表对应一个*/private Dao<User, Integer> userDao;private DatabaseHelper(Context context) {super(context, TABLE_NAME, null, 2);}@Overridepublic void onCreate(SQLiteDatabase sqLiteDatabase,ConnectionSource connectionSource) {try{//创建表createTable(connectionSource, User.class);}catch (SQLException e){e.printStackTrace();}}@Overridepublic void onUpgrade(SQLiteDatabase sqLiteDatabase,ConnectionSource connectionSource, int i, int i1) {try{dropTable(connectionSource, User.class, true);onCreate(sqLiteDatabase, connectionSource);}catch (SQLException e){e.printStackTrace();}}private static DatabaseHelper instance;/** 单例获取该Helper*/public static synchronized DatabaseHelper getHelper(Context context) {if (instance == null){synchronized (DatabaseHelper.class){if (instance == null){instance = new DatabaseHelper(context);}}}return instance;}/** 获得userDao*/public Dao<User, Integer> getUserDao() throws SQLException {if (userDao == null){userDao = getDao(User.class);}return userDao;}/** 释放资源*/public void close(){super.close();userDao=null;}
    }

    这里我们需要继承OrmLiteSqliteOpenHelper,其实就是间接继承了SQLiteOpenHelper

    然后需要实现两个方法:

  • onCreate(SQLiteDatabase database,ConnectionSource connectionSource)

创建表,我们直接使用ORMLite提供的TableUtils.createTable(connectionSource, User.class);进行创建

  • onUpgrade(SQLiteDatabase database, ConnectionSource connectionSource, int oldVersion, int newVersion)

  • 数据库的增删改查

//增加数据public void testAddUser(){User u1 = new User("zhy", "2B青年");DatabaseHelper helper = DatabaseHelper.getHelper(getContext());try{helper.getUserDao().create(u1);u1 = new User("zhy2", "2B青年");helper.getUserDao().create(u1);u1 = new User("zhy3", "2B青年");helper.getUserDao().create(u1);u1 = new User("zhy4", "2B青年");helper.getUserDao().create(u1);u1 = new User("zhy5", "2B青年");helper.getUserDao().create(u1);u1 = new User("zhy6", "2B青年");helper.getUserDao().create(u1);testList();}catch (SQLException e){e.printStackTrace();}}//删除数据public void testDeleteUser(){DatabaseHelper helper = DatabaseHelper.getHelper(getContext());try{helper.getUserDao().deleteById(2);}catch (SQLException e){e.printStackTrace();}}//更新数据public void testUpdateUser(){DatabaseHelper helper = DatabaseHelper.getHelper(getContext());try{User u1 = new User("zhy-android", "2B青年");u1.setId(3);helper.getUserDao().update(u1);}catch (SQLException e){e.printStackTrace();}}//查询数据public void testList(){DatabaseHelper helper = DatabaseHelper.getHelper(getContext());try {User u1 = new User("zhy-android", "2B青年");u1.setId(2);List<User> users = helper.getUserDao().queryForAll();Log.e("TAG", users.toString());}catch (SQLException e){e.printStackTrace();}}

更多推荐

关于androidORMLite的一些总结

本文发布于:2023-12-07 03:16:54,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1669918.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:androidORMLite

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!