網站首頁 編程語言 正文
前言
SQLite是一個進程內的庫,實現了自給自足的、無服務器的、零配置的、事務性的 SQL 數據庫引擎。它是一個零配置的數據庫,這意味著與其他數據庫不一樣,您不需要在系統中配置。就像其他數據庫,SQLite 引擎不是一個獨立的進程,可以按應用程序需求進行靜態或動態連接。SQLite 直接訪問其存儲文件。
為什么要使用SQLite
- 不需要一個單獨的服務器進程或操作的系統(無服務器的)。
- SQLite 不需要配置,這意味著不需要安裝或管理。
- 一個完整的 SQLite 數據庫是存儲在一個單一的跨平臺的磁盤文件。
- SQLite 是非常小的,是輕量級的,完全配置時小于 400KiB,省略可選功能配置時小于250KiB。
- SQLite 是自給自足的,這意味著不需要任何外部的依賴。
- SQLite 事務是完全兼容 ACID 的,允許從多個進程或線程安全訪問。
- SQLite 支持 SQL92(SQL2)標準的大多數查詢語言的功能。
- SQLite 使用 ANSI-C 編寫的,并提供了簡單和易于使用的 API。
- SQLite 可在 UNIX(Linux, Mac OS-X, Android, iOS)和 Windows(Win32, WinCE, WinRT)中運行。
綜合來看,即輕量
兼容
多端
無需配置
無外部依賴
擁有簡單易懂的API
安全
在Android中如何使用
Android 提供的 SQLiteOpenHelper.java 是一個抽象類。那么在Eclipse中創建Class類時,選擇此抽象類模板即可,而在Android Studio中,必須自己寫一個類來繼承它,根據平時類名稱簡潔易懂的習慣上,我們創建的都是MyDataBaseHelper.java或DataBaseHelper.java簡寫DBHelper.java。
數據庫如何創建
Android Studio中
右鍵需要創建數據庫.java文件的包,選擇new
,選擇新建Class
在彈出框中選擇輸入類名稱
這一行規定死了,只能是這樣的:
public class DBHelper extends SQLiteOpenHelper{ }
需要寫一個帶全部參數的DBHelper類的構造函數以便于生成數據庫對象:
//帶有全部參數的構造函數,此構造函數是必須需要的。Eclipse和Android Studio均有自動填充功能 public DatabaseHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); }
繼承的抽象類SQLiteOpenHelper中的兩個抽象方法:
@Override public void onCreate(SQLiteDatabase db) { //創建數據庫sql語句 String sql = "create table user(name varchar(20))"; //執行sql語句 db.execSQL(sql); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { }
Eclipse中
右鍵需要創建數據庫.java文件的包,選擇new
,選擇新建Class
在彈出框中選擇SQLiteOpenHelper
點擊Finish
即創建成功
數據庫如何生成
第一句代碼中,創建Activity時會自動生成。在Activity中創建數據庫,這里我們給數據庫起名為“info.db”,數據庫版本號為1,代碼如下:
//依靠DatabaseHelper帶全部參數的構造函數創建數據庫 DBHelper dbHelper = new DBHelper(MainActivity.this, "info.db",null,1); SQLiteDatabase db = dbHelper.getWritableDatabase();
數據庫的增刪改查
增
db.insert();
刪
db.delete();
改
db.update();
查
Cursor cursor = db.rawQuery("select * from info.db", null); if (cursor.getCount() != 0) { }
原文鏈接:https://blog.csdn.net/weixin_43017921/article/details/109399096
相關推薦
- 2022-07-13 Android 動態獲取 Resource ID
- 2022-05-24 Flutter滾動組件之SingleChildScrollView使用詳解_Android
- 2022-06-07 C語言非遞歸算法解決快速排序與歸并排序產生的棧溢出_C 語言
- 2022-04-17 python中lambda匿名函數詳解_python
- 2023-01-15 PyQt5+QtChart實現繪制極坐標圖_python
- 2023-11-17 深度學習中分布式訓練的現狀及未來
- 2022-02-28 docker安裝17.03.0版本報錯 ->軟件包 docker-ce-selinux 已經被 do
- 2022-12-12 Android?Binder進程間通信工具AIDL使用示例深入分析_Android
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支