android SQLite
SQLite文件保存在/data/data/(packagename)/databases
SQLite中的基本数据类型有NULL(空值)、INTEGER(整型)、REAL(浮点型)、TEXT(字符串)、BLOB(二进制对象)。
当向数据库中插入记录时,它会判断所插入的数据类型和该列的类型是否一致,若不一致,则数据库会尝试将数据转化为该列的类型,若无法转化,则以其自身类型存储。
在android,SQLiteOpenHelper类使我们对数据库的操作变得简便。
import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.database.sqlite.SQLiteOpenHelper; public class DBHelper extends SQLiteOpenHelper{ private static final int VERSIONM=1; private final String CREATE_TABLE="create table if not exists tb_info"+ "(_id integer primary key autoincrement,name text not null)"; public DBHelper(Context context,String name){ this(context,name,null,VERSIONM); } public DBHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(CREATE_TABLE); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } }
onCreate方法在第一次创建的时候调用,onUpgrade在数据库版本更新时调用。
简单的增删查改操作:
SQLiteDatabase db = new DBHelper(this, "db_info").getWritableDatabase(); //添加记录 ContentValues values = new ContentValues(); values.put("name", "zhangsan"); db.insert("tb_info", null, values); //修改记录 values.put("name", "wangwu"); db.update("tb_info", values, "_id>=?", new String[]{"1"}); //删除记录 db.delete("tb_info", "_id>?", new String[]{"3"}); //查询 Cursor c = db.query("tb_info", new String[]{"_id", "name"}, null, null, null, null, null); if (c != null) { String[] cols = c.getColumnNames(); while (c.moveToNext()) { for (String ColumnName : cols) { Log.i("logInfo", ColumnName + ":" + c.getString(c.getColumnIndex(ColumnName))); } } c.close(); } //分页 Cursor cursor = db.rawQuery("SELECT * FROM person ORDER BY personid ASC LIMIT= ?,?", new String[]{String.valueOf(offset),String.valueOf(maxResult)}); while(cursor.moveToNext()){ } db.close();
SQLite事务:
为了确保某一组操作要么全部完成,否则回滚至初始状态,需用到此操作。
SQLiteDatabase db = new DBHelper(this, "db_info").getWritableDatabase(); db.beginTransaction(); try { db.…… db.setTransactionSuccessful(); } finally { db.endTransaction(); } db.close();

浙公网安备 33010602011771号