Android中数据库的使用:

Android中数据库的使用:sql

1.建立一个类,继承SQLiteOpenHelper,实现该类的构造方法
public XXX(Context context, String name, CursorFactory factory, int version)

-->该构造方法能够只设置一个参数Context context,其他参数可在surper中肯定
	public XXX(Context context, String name, CursorFactory factory, int version){
		surper(context,name,factory,version);
	}
-->改进以后
	public XXXX(Context context){
		surper(context,"xxx.db",null,1);
	}
-->构造方法中参数的含义
	context---上下文
	name---数据库名称
	factory---游标对象,默认为空
	version---版本,从1开始的递增整数
	
2.建立好了类以后,重写onCreate()和onUpgrade()方法

	-->onCreate()方法,在数据库第一次建立时调用,该方法主要用于表结构的建立。
		因此,全部建表的sql语句,都在改方法中执行.
		db.execSQL("sql");
		
	-->onUpgrade()方法,数据库版本号改变/修改表结构(增/删一个字段)调用
	
3.实例化XXX类,调用静态方法getReadableDatabase/getWritableDatabase,获得SQLiteDatabase对象

	XXX xx = new XXX(context);
	SQLiteDatabase db = xx.getReadableDatabase();
	
	☆☆☆操做完db及时关闭数据库,减小内存消耗
			db.close();
	
4.进行增删改查操做

	-->增长
		
	long result = db.insert(String table, String nullColumnHack, ContentValues values);
	
		table:表名
		nullColumnHack:默认为null,为null时表示插入一个空行
		values:添加那条数据的值,底层由HashMap实现,values.put(key,value)实现数据的添加
		
		result:返回添加成功后那一行的ID,-1添加失败
	
	-->删除
	int result = db.delete(String table, String whereClause, String[] whereArgs);
	
		whereArgs:判断条件,如"name=?"
		whereClause:判断条件的占位符,String[]类型		new String[]{"小王"}
	
		result:删除的行数
		
	-->更新
		相似删除,多一个value
		
		update(String table, ContentValues values, String whereClause, String[] whereArgs)
			value:存放要更新的信息
	
	-->查询(Cursor游标对象)
		Cursor cursor = db.rawQuery(sql语句,查询条件)
		返回cursor结果集
		
		cursor.getCount()获取结果集的行数
		
		cursor.moveToNext()判断是否有下一行内容,有返回true,无返回false;
		
		☆☆☆cursor使用完后须要关闭,cursor.close();
	
5.优化
	避免每次操做数据库,都实例化一个XXX类,建立数据库的过程放在dao的构造函数中,
	☆☆☆☆其中,获取SQLiteDatabase对象的方法不能放在构造函数中。由于,在构造函数中
	只获取了一个SQLiteDatabase对象,而每次对数据进行不一样的操做后都关闭了数据库,在以
	后的操做中,就没法得到SQLiteDatabase对象,从而致使对数据操做失败!
	
	
	
	
-----------2016年10月14日22:10:07
相关文章
相关标签/搜索