标签:
1 public class MySqliteOpenHelper extends SQLiteOpenHelper { 2 3 /** 4 * 数据库名称 5 */ 6 private static final String name = "database.db"; 7 8 /** 9 * 数据库版本号 10 */ 11 private static final int version = 1; 12 13 public MySqliteOpenHelper(Context context) { 14 super(context, name, null, version); 15 } 16 17 /** 18 * 数据库创建时调用 19 */ 20 @Override 21 public void onCreate(SQLiteDatabase db) { 22 // 创建表database 23 String sql = "create table database (_id integer primary key autoincrement,name varchar(20),age varchar(20))"; 24 db.execSQL(sql); 25 } 26 27 /** 28 * 数据库更新时调用 29 */ 30 @Override 31 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 32 // TODO Auto-generated method stub 33 34 } 35 36 }
SQLiteOpenHelper是SQLiteDatabase的一个帮助类,用来管理数据库的创建和版本的更新。一般是建立一个类继承它,并实现它的onCreate和onUpgrade方法
方法名 | 方法描述 |
public MySqliteOpenHelper(Context context, String name, |
构造方法,一般传递一些参数 |
onCreate(SQLiteDatabase db) | 创建数据库时调用 |
onUpgrade(SQLiteDatabase db,int oldVersion , int newVersion) | 版本更新时调用 |
getReadableDatabase() | 获取可读的SqliteDatabase |
getWritableDatabase() | 获取可写的SqliteDatabase |
创建数据库:
1 /** 2 * 数据库帮助类 3 */ 4 private MySqliteOpenHelper helper; 5 6 public DatabaseUtils(Context context){ 7 helper = new MySqliteOpenHelper(context); 8 }
数据库的增删改查:
1 /** 2 * 将数据插入数据库 3 */ 4 public void insert(){ 5 SQLiteDatabase db = null; 6 try { 7 db = helper.getWritableDatabase(); // 获得可写的SQliteDatabase 8 db.beginTransaction(); // 开启事务 9 String sql = "insert into database values(null,‘zhangsan‘,‘20‘)"; 10 db.execSQL(sql); // 执行语句 11 db.setTransactionSuccessful(); // 调用此方法会在执行到endTransaction()方法时提交当前事务,如果不调用此方法会回滚事务 12 }finally{ 13 if(db != null){ 14 db.endTransaction(); // 事务的结束的标志,决定是提交事务还是回滚事务 15 } 16 } 17 db.close(); 18 } 19 20 /** 21 * 更新数据库中的数据 22 */ 23 public void update(){ 24 SQLiteDatabase db = helper.getWritableDatabase(); // 获得可写的SQliteDatabase 25 ContentValues values = new ContentValues(); 26 values.put("name", "lisi"); 27 db.update("database", values, "name = ?", new String []{"zhangsan"}); 28 db.close(); 29 } 30 31 /** 32 * 查询数据库 33 */ 34 public void query(){ 35 SQLiteDatabase db = helper.getReadableDatabase(); // 获得可读的SQliteDatabase 36 String sql = "select name,age from database"; 37 38 Cursor cursor = db.rawQuery(sql, null); 39 while(cursor != null && cursor.moveToNext()){ // cursor 不为null 防止出现空指针异常 moveToNext ()移动到下一行 40 String name = cursor.getString(0); // 获得第一列的值,第一列的索引从0开始 41 int age = cursor.getInt(1); // 获得第二列的值 42 System.out.println("name : " + name + "," + "age :" + age); 43 } 44 45 cursor.close(); 46 db.close(); 47 48 } 49 50 /** 51 * 删除数据库中的数据 52 */ 53 public void delete(){ 54 SQLiteDatabase db = helper.getWritableDatabase(); // 获得可写的SQliteDatabase 55 db.delete("database", null, null); 56 db.close(); 57 }
Cursor是结果集游标,用于对结果集进行随机访问,与jdbc中的ResultSet作用很相似。使用moveToNext()方法可以将游标从当前行移动到下一行,如果已经移到了最后吧一行,返回结果为false,否则为true。另外Cursor还用常用的moveToPrevious()方法(用于将游标从当前行移动到上一行,如果已经移动到了结果集的第一行,返回值为false,否则为true)、moveToFirst()方法(用于将游标移动到结果集的第一行,如果结果集为空,返回值为false,否则为true)和moveToLast()方法(用于将游标移动到结果集的最后一行,如果结果集为空,返回值为false,否则为true);
标签:
原文地址:http://www.cnblogs.com/android-ljwBlobs/p/4512160.html