安卓之SQLite知识
来源:互联网 发布:超星网络选修课怎么刷 编辑:程序博客网 时间:2024/05/18 23:55
1.SQLite介绍
SQLite是一款轻量级的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持 Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl、PHP、Java、C++、.Net等,还有ODBC接口,同样比起 Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。
2.SQLite的有点
SQLite 只需要带一个动态库,就可以享受它的全部功能,而且那个动态库的尺寸想当小。
SQLite 数据库的核心引擎不需要依赖第三方软件,也不需要所谓的“安装”。
SQLite 数据库中所有的信息(比如表、视图、触发器等)都包含在一个文件夹内,方便管理和维护。
SQLite 目前支持大部分操作系统,不至电脑操作系统更在众多的手机系统也是能够运行,比如:Android。
SQLite 数据库支持多语言编程接口。
SQLite 数据库通过数据库级上的独占性和共享锁来实现独立事务处理。这意味着多个进程可以在同一时间从同一数据库读取数据,但只能有一个可以写入数据。
3.SQLite的使用
先写一个数据库的类
public class DatabaseHelper extends SQLiteOpenHelper { private static final String DATABASE_NAME = "test.db"; private static final int DATABASE_VERSION = 1; public DatabaseHelper(Context context) { //CursorFactory设置为null,使用默认值 super(context, DATABASE_NAME, null, DATABASE_VERSION); } //数据库第一次被创建时onCreate会被调用 @Override public void onCreate(SQLiteDatabase db) { db.execSQL("CREATE TABLE IF NOT EXISTS person" + "(_id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR, age INTEGER, info TEXT)"); } //如果DATABASE_VERSION值被改为2,系统发现现有数据库版本不同,即会调用onUpgrade @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("ALTER TABLE person ADD COLUMN other STRING"); }}在然后写一个数据库的管理类,管理数据库的增删改查
public class DbManager { private DatabaseHelper databaseHelper; private SQLiteDatabase db; public DbManager(Context context) { databaseHelper = new DatabaseHelper(context); //因为getWritableDatabase内部调用了mContext.openOrCreateDatabase(mName, 0, mFactory); //所以要确保context已初始化,我们可以把实例化DBManager的步骤放在Activity的onCreate里 db = databaseHelper.getWritableDatabase(); } //添加 public void add(List<Person> persons) { db.beginTransaction(); //开始事务 try { for (Person person : persons) { db.execSQL("INSERT INTO person VALUES(null, ?, ?, ?)", new Object[]{person.name, person.age, person.info}); } db.setTransactionSuccessful(); //设置事务成功完成 } finally { db.endTransaction(); //结束事务 } } //查询 public List<Person> query() { ArrayList<Person> persons = new ArrayList<Person>(); Cursor c = queryTheCursor(); while (c.moveToNext()) { Person person = new Person(); person._id = c.getInt(c.getColumnIndex("_id")); person.name = c.getString(c.getColumnIndex("name")); person.age = c.getInt(c.getColumnIndex("age")); person.info = c.getString(c.getColumnIndex("info")); Log.e("msg", person.name+" "+person.age+person.info); persons.add(person); } c.close(); return persons; } public Cursor queryTheCursor() { Cursor c = db.rawQuery("SELECT * FROM person", null); return c; } //改 public void updateAge(Person person) { ContentValues cv = new ContentValues(); cv.put("age", person.age); cv.put("info", person.info); db.update("person", cv, "name = ?", new String[]{person.name}); } //删 public void deleteOldPerson(Person person) { db.delete("person", "age >= ?", new String[]{String.valueOf(person.age)}); }}
实体类public class Person { public int _id; public String name; public int age; public String info; public Person() { } public Person(String name, int age, String info) { this.name = name; this.age = age; this.info = info; }}
0 0
- 安卓之SQLite知识
- My安卓知识1--SQLite数据库
- 安卓学习之SQLite相关学习指南
- 安卓学习笔记之SQLite数据库
- 安卓开发之SQLite数据库用法
- 安卓数据库编程之Sqlite
- 安卓数据存储方式之SQLite
- 安卓数据存储方式之SQLite
- 安卓Sqlite
- 安卓 SQlite事务
- 安卓SQLite数据库
- 安卓SQLite
- 安卓 SQLite数据库
- 安卓存储基本用法之SQLite存储
- 安卓学习之路_20140505_EditText、SQLite语法
- 安卓sqlite之增删改查(一)
- 【Android】安卓学习笔记之操作SQLite数据库基础
- 安卓实战开发之SQLite从简单使用crud
- 删除所有独特的元素
- javascript实现动画的联动
- Android iw 使用方法
- js获取时间戳以及对时间的简单操作
- 网站收藏
- 安卓之SQLite知识
- asp.net电子表格导出功能
- android书籍推荐
- BRIEF特征描述子
- Eclipse非正常关闭后无法启动
- 看七月与安生后的感觉
- MySQL的主从使用 Master/Slave
- sql server 大批量写入的一次尝试
- java设计模式之单列