SQLite实例入门
Posted ihrthk
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQLite实例入门相关的知识,希望对你有一定的参考价值。
SQLite简介:
Google为Andriod的较大的数据处理提供了SQLite,他在数据存储、管理、维护等各方面都相当出色,功能也非常的强大。SQLite具备下列特点:
1.轻量级
使用 SQLite 只需要带一个动态库,就可以享受它的全部功能,而且那个动态库的尺寸想当小。
2.独立性
SQLite 数据库的核心引擎不需要依赖第三方软件,也不需要所谓的“安装”。
3.隔离性
SQLite 数据库中所有的信息(比如表、视图、触发器等)都包含在一个文件夹内,方便管理和维护。
4.跨平台
SQLite 目前支持大部分操作系统,不至电脑操作系统更在众多的手机系统也是能够运行,比如:android。
5.多语言接口
SQLite 数据库支持多语言编程接口。
6.安全性
SQLite 数据库通过数据库级上的独占性和共享锁来实现独立事务处理。这意味着多个进程可以在同一时间从同一数据库读取数据,但只能有一个可以写入数据。
SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。
1. ACID事务 2. 零配置 – 无需安装和管理配置 3. 储存在单一磁盘文件中的一个完整的数据库 4. 数据库文件可以在不同字节顺序的机器间自由的共享 5. 支持数据库大小至2TB 6. 足够小, 大致3万行C代码, 250K 7. 比一些流行的数据库在大部分普通数据库操作要快 8. 简单, 轻松的API(转自百度百科)
SQLiteOpenHelper介绍:
在android平台上要操作SQLite数据库就必须要使用SQLiteOpenHelper类。
一个帮助类管理数据库创建和管理,你创建一个子类去实现onCreate(SQLiteDatabase)
,onUpgrade(SQLiteDatabase, int, int)
方法,onOpen(SQLiteDatabase)
可选择性实现.
SQLiteOpenHelper作为一个访问SQLite的帮助类,提供两方面的功能
1.getReadableDatabase(),getWritableDatabase()可以获得SQLiteDatatbase对象,/对这个对象进行相关操作
2.提供了onCreate()和onUpgrade()两个回调函数,允许我们在创建和升级数据库时进行操作
//mysqliteOpenHelper作为一个访问SQLite的帮助类,提供两方面的功能
//1.getReadableDatabase(),getWritableDatabase()可以获得SQLiteDatatbase对象,
//对这个对象进行相关操作
//2.提供了onCreate()和onUpgrade()两个回调函数,允许我们在创建和升级数据库时进行操作
public class MySQLiteOpenHelper extends SQLiteOpenHelper
public static final String DATABASE_NAME = "test.db";
public static final String TAG = "MySQLiteOpenHelper";
public MySQLiteOpenHelper(Context context)
this(context, DATABASE_NAME, null, 1);
public MySQLiteOpenHelper(Context context, int version)
this(context, DATABASE_NAME, null, version);
// 必须要有这一个构造方法
public MySQLiteOpenHelper(Context context, String name,
CursorFactory factory, int version)
super(context, name, factory, version);
// TODO Auto-generated constructor stub
// 当数据库第一次创建的时候被调用,
// 当调用getReadableDatabase ()或getWritableDatabase 的时候
@Override
public void onCreate(SQLiteDatabase db)
// TODO Auto-generated method stub
Log.d(TAG, "onCreate");
String sql = "create table user(id int,name varchar(20))";
db.execSQL(sql);
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
// TODO Auto-generated method stub
Log.d(TAG, "onUpgrade");
主界面上的功能:
public class MainActivity extends Activity
public static final String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
@Override
public boolean onCreateOptionsMenu(Menu menu)
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
public void createDatabase(View view)
MySQLiteOpenHelper dbHelper = new MySQLiteOpenHelper(MainActivity.this);
// 这一步才会创建数据库,即回调MySQLiteOpenHelper的onCreate方法
dbHelper.getWritableDatabase();
public void upgradeDatabase(View view)
MySQLiteOpenHelper dbHelper = new MySQLiteOpenHelper(MainActivity.this,
2);
// 这一步才会创建数据库
dbHelper.getWritableDatabase();
public void insert(View view)
ContentValues cv = new ContentValues();
cv.put("id", 1);
cv.put("name", "zhangsan");
MySQLiteOpenHelper dbHelper = new MySQLiteOpenHelper(MainActivity.this,
2);
// 得到数据库对象
SQLiteDatabase db = dbHelper.getWritableDatabase();
db.insert("user", null, cv);
public void delete(View view)
MySQLiteOpenHelper dbHelper = new MySQLiteOpenHelper(MainActivity.this);
// 得到数据库对象
SQLiteDatabase db = dbHelper.getWritableDatabase();
db.delete("user", "id=?", new String[] "1" );
public void update(View view)
MySQLiteOpenHelper dbHelper = new MySQLiteOpenHelper(MainActivity.this);
// 得到数据库对象
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put("name", "zhangsanfeng");
// 第一个参数是要更新的表名
// 第二个参数是一个ContentValues对象
// 第三个参数是where子句
db.update("user", cv, "id=?", new String[] "1" );
public void query(View view)
MySQLiteOpenHelper dbHelper = new MySQLiteOpenHelper(MainActivity.this);
// 得到数据库对象
SQLiteDatabase db = dbHelper.getWritableDatabase();
Cursor cursor = db.query("user", new String[] "id", "name" , "id=?",
new String[] "1" , null, null, null);
while (cursor.moveToNext())
int id = cursor.getInt(cursor.getColumnIndex("id"));
String name = cursor.getString(cursor.getColumnIndex("name"));
Log.d(TAG, "id:" + id);
Log.d(TAG, "name:" + name);
以上是关于SQLite实例入门的主要内容,如果未能解决你的问题,请参考以下文章