android studio SQLite数据库的简单使用

news/2024/9/22 17:39:46/

在Android Studio中使用数据库可以有多种方式,常见的几种方式包括使用SQLite数据库和使用

  1. SQLite数据库 SQLite是一款轻量级的关系型数据库管理系统,在Android中被广泛使用。要在Android Studio中使用SQLite数据库,需要先创建一个数据库帮助类,这个类继承自SQLiteOpenHelper类,用于创建和管理数据库。在数据库帮助类中,可以定义表结构和数据库操作方法。然后在需要使用数据库的地方,可以通过实例化数据库帮助类来获取数据库对象,并调用数据库操作方法。

创建一个数据库帮助类:

java">public class MyDatabaseHelper extends SQLiteOpenHelper {private static final String DATABASE_NAME = "mydatabase.db";private static final int DATABASE_VERSION = 1;public MyDatabaseHelper(Context context) {super(context, DATABASE_NAME, null, DATABASE_VERSION);}@Overridepublic void onCreate(SQLiteDatabase db) {// 创建数据库表String createTableQuery = "CREATE TABLE IF NOT EXISTS mytable (id INTEGER PRIMARY KEY, name TEXT)";db.execSQL(createTableQuery);}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {// 升级数据库String dropTableQuery = "DROP TABLE IF EXISTS mytable";db.execSQL(dropTableQuery);onCreate(db);}
}

然后在需要使用数据库的地方,可以通过实例化数据库帮助类来获取数据库对象,并调用数据库操作方法:

java">// 实例化数据库帮助类
MyDatabaseHelper dbHelper = new MyDatabaseHelper(context);
// 获取数据库对象
SQLiteDatabase db = dbHelper.getWritableDatabase();
// 执行数据库操作,例如插入数据
ContentValues values = new ContentValues();
values.put("name", "John");
db.insert("mytable", null, values);

  1. Room Persistence Library Room是Android Jetpack中的一个持久化库,它提供了一个简单的抽象层来访问SQLite数据库。使用Room可以更加方便地进行数据库操作,不需要手动编写SQL语句。要在Android Studio中使用Room,首先需要在build.gradle文件中添加Room依赖:
dependencies {implementation 'android.arch.persistence.room:runtime:1.1.1'annotationProcessor 'android.arch.persistence.room:compiler:1.1.1'
}

然后,在数据库中定义实体类和数据访问对象(DAO)。实体类对应数据库中的表,数据访问对象定义了对数据库的操作方法。

例如,定义一个实体类:

java">@Entity
public class User {@PrimaryKeypublic int id;public String name;
}

定义一个数据访问对象:

java">@Dao
public interface UserDao {@Insertvoid insert(User user);@Query("SELECT * FROM user")List<User> getAllUsers();
}

然后,创建一个数据库类,用于获取数据库对象和访问数据访问对象的方法:

java">@Database(entities = {User.class}, version = 1)
public abstract class MyDatabase extends RoomDatabase {public abstract UserDao userDao();private static MyDatabase INSTANCE;public static synchronized MyDatabase getInstance(Context context) {if (INSTANCE == null) {INSTANCE = Room.databaseBuilder(context.getApplicationContext(),MyDatabase.class, "mydatabase.db").build();}return INSTANCE;}
}

最后,在需要使用数据库的地方,可以通过调用数据库类的方法来获取数据库对象和访问数据访问对象的方法:

java">// 获取数据库对象
MyDatabase db = MyDatabase.getInstance(context);
// 获取数据访问对象
UserDao userDao = db.userDao();
// 执行数据库操作,例如插入数据
User user = new User();
user.id = 1;
user.name = "John";
userDao.insert(user);


http://www.ppmy.cn/news/1443797.html

相关文章

Pytorch 的数据处理 学习笔记

一. 数据集Dataset Dataset是一个抽象类&#xff0c;用于表示数据集。可以创建自定义的Dataset类来加载和准备好的数据&#xff0c;无论数据是存储在何处&#xff08;例如磁盘、内存或其他位置&#xff09;。PyTorch提供了一些内置的Dataset类&#xff0c;例如TensorDataset、…

软件物料清单(SBOM)生成指南 .pdf

如今软件安全攻击技术手段不断升级&#xff0c;攻击数量显著增长。尤其是针对软件供应链的安全攻击&#xff0c;具有高隐秘性、追溯难的特点&#xff0c;对企业软件安全威胁极大。 同时&#xff0c;软件本身也在不断地更新迭代&#xff0c;软件内部成分安全性在持续变化浮动。…

【1731】jsp 房租跟踪监控管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 房租跟踪监控管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysq…

缓存神器-JetCache

序言 今天和大家聊聊阿里的一款缓存神器 JetCache。 一、缓存在开发实践中的问题 1.1 缓存方案的可扩展性问题 谈及缓存&#xff0c;其实有许多方案可供选择。例如&#xff1a;Guava Cache、Caffine、Encache、Redis 等。 这些缓存技术都能满足我们的需求&#xff0c;但现…

图像哈希:DCT篇

Robust image hashing with dominant DCT coefficients 文章信息 作者&#xff1a;唐振军期刊&#xff1a;Optic&#xff08;Q2/3区&#xff09;题目&#xff1a;Robust image hashing with dominant DCT coefficients 目的、实验步骤及结论 目的&#xff1a;使用传统的DCT对…

医院挂号就诊|基于SprinBoot+vue医院挂号就诊系统(源码+数据库+文档)

医院挂号就诊目录 基于SprinBootvue医院挂号就诊系统 一、前言 二、系统设计 三、系统功能设计 1用户信息管理 2 医生信息管理 3公告类型管理 4公告信息管理 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主…

Swift字符串

在 Swift 中&#xff0c;Character 和 String 是用于处理文本数据的两个重要类型。 Character Character 是 Swift 中用于表示单个 Unicode 字符的类型。每个 Character 实例都代表一个可见的字符&#xff08;如字母、数字、标点符号等&#xff09;&#xff0c;或者一个不可见的…

IDEA主题美化【保姆级】

前言 一款好的 IDEA 主题虽然不能提高我们的开发效率&#xff0c;但一个舒适简单的主题可以使开发人员更舒适的开发&#xff0c;时常换一换主题可以带来不一样的体验&#xff0c;程序员的快乐就这么简单。话不多说&#xff0c;先上我自己认为好看的主题设置。 最终效果图: 原…