Android sqlite是一个非常强大的数据库引擎,可以用于创建安卓应用程序的本地数据库。在安卓开发中,我们经常使用Json来序列化和反序列化数据。在本文中,我们将探讨如何在安卓应用程序中使用sqlite和Json。
首先,我们需要在build.gradle文件中引入Json库:
implementation 'com.google.code.gson:gson:2.8.5'
我们可以使用Gson库将Json数据转换为Java对象。在使用sqlite之前,我们需要创建一个Java对象,该对象将与sqlite表相对应。例如,我们可以创建一个Person对象:
public class Person { private int id; private String name; private int age; public void setId(int id) { this.id = id; } public void setName(String name) { this.name = name; } public void setAge(int age) { this.age = age; } public int getId() { return id; } public String getName() { return name; } public int getAge() { return age; } }
接下来,我们将使用sqliteOpenHelper类来创建sqlite表。例如,我们可以创建一个Person表:
public class PersonDbHelper extends sqliteOpenHelper { private static final String DATABASE_NAME = "person.db"; private static final int DATABASE_VERSION = 1; private static final String TABLE_NAME = "person"; private static final String ID_COLUMN = "id"; private static final String NAME_COLUMN = "name"; private static final String AGE_COLUMN = "age"; public PersonDbHelper(Context context) { super(context,DATABASE_NAME,null,DATABASE_VERSION); } @Override public void onCreate(sqliteDatabase db) { String query = "CREATE TABLE " + TABLE_NAME + " (" + ID_COLUMN + " INTEGER PRIMARY KEY AUTOINCREMENT," + NAME_COLUMN + " TEXT," + AGE_COLUMN + " INTEGER" + ")"; db.execsql(query); } @Override public void onUpgrade(sqliteDatabase db,int oldVersion,int newVersion) { String query = "DROP TABLE IF EXISTS " + TABLE_NAME; db.execsql(query); onCreate(db); } }
在我们有了sqlite表之后,我们就可以将Json数据存储到sqlite表中。我们将使用insert()方法将Person对象存储到表中:
public void addPerson(Person person) { sqliteDatabase db = this.getWritableDatabase(); ContentValues values = new ContentValues(); values.put(NAME_COLUMN,person.getName()); values.put(AGE_COLUMN,person.getAge()); db.insert(TABLE_NAME,values); db.close(); }
我们可以使用以下代码将Json字符串转换为Person对象并插入到sqlite表中:
String json = "{ \"name\": \"Tom\",\"age\": 18 }"; Gson gson = new Gson(); Person person = gson.fromJson(json,Person.class); PersonDbHelper dbHelper = new PersonDbHelper(this); dbHelper.addPerson(person);
我们也可以使用以下代码从sqlite表中获取所有Person对象:
public ListgetAllPersons() { List persons = new ArrayList(); String query = "SELECT * FROM " + TABLE_NAME; sqliteDatabase db = this.getWritableDatabase(); Cursor cursor = db.rawQuery(query,null); if (cursor.movetoFirst()) { do { Person person = new Person(); person.setId(Integer.parseInt(cursor.getString(0))); person.setName(cursor.getString(1)); person.setAge(Integer.parseInt(cursor.getString(2))); persons.add(person); } while (cursor.movetoNext()); } return persons; }
我们可以将所有Person对象转换为Json字符串并显示在UI中:
Listpersons = dbHelper.getAllPersons(); Gson gson = new GsonBuilder().setPrettyPrinting().create(); String json = gson.toJson(persons); textView.setText(json);
在本文中,我们探讨了如何在安卓应用程序中使用sqlite和Json。我们使用Gson库将Json数据转换为Java对象,并使用sqliteOpenHelper类创建sqlite表。我们还演示了如何将Person对象存储到sqlite表中,并从sqlite表中获取所有Person对象并将其转换为Json字符串。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。