sqlite 是一款轻量级的嵌入式数据库,sqlite对资源的消耗非常低,在嵌入式设备中可能只要几百k的内存。相对于mysql、postgre而言速度也更加快。
需要注意的是sqlite不属于客户端-服务器模式的数据库,它的引擎会连接到程序中成为其中的一部分,所以不存在如mysql等DB一样,需要由一个通信协议和数据库实例交互。
对sqlite而言都是API执行。并且整个数据库,包括定义、表、索引、数据都存储在单一的文件中。
在这种设计下,支持事务的sqlite在执行事务时会锁定整个数据文件。下面是一个基本的程序实例:
db = openOrCreateDatabase(DB_NAME, this.MODE_PRIVATE, null); db.execSQL("DROP TABLE IF EXISTS users"); db.execSQL("CREATE TABLE IF NOT EXISTS users (_id INTEGER PRIMARY KEY AUTOINCREMENT, username VARCHAR, password VARCHAR)"); db.execSQL("INSERT INTO users VALUES (NULL,‘fredric‘,‘fredricpassword‘)"); ContentValues cv = new ContentValues(); cv.put("username", "sinny"); cv.put("password", "sinnypassword"); db.insert("users", null, cv); Cursor cursor = db.rawQuery("SELECT * FROM users", null); while (cursor.moveToNext()) { Log.i(TAG_ACTIVITY, cursor.getString(cursor.getColumnIndex("username"))); Log.i(TAG_ACTIVITY, cursor.getString(cursor.getColumnIndex("password"))); } cursor.close();
打印输出:fredric、fredricpassword、sinny、sinnypassword
时间: 2024-10-12 19:36:56