温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

SQLiteOpenHelper的一些用法,关增、删、改、查参数的说明

发布时间:2020-07-07 22:24:49 来源:网络 阅读:9352 作者:自若 栏目:移动开发

    今天要用到sqlite数据库来保存用户登陆信息,都快把数据库知识忘记了,又做了一份有关增、删、改、查的参数的详细说明。后来想想做好这个不保存下来实在太可惜了,所以就写了文章记录下,以免以后忘了再整理。

public class AccountDB extends SQLiteOpenHelper {

	private static final String DB_NAME = "message.db";
	private static final int DB_VERSION = 1;
	
	
	public AccountDB(Context context) {
		
		super(context, DB_NAME, null, DB_VERSION);
		
	}

	@Override
	public void onCreate(SQLiteDatabase db) {
		
		String sql = "CREATE TABLE IF NOT EXISTS " + "gd_account" +
				"(" + "_id" + " INTEGER PRIMARY KEY NOT NULL," +
				"username" + " VARCHAR(50)," +
				"password" + " VARCHAR(50)," +
				"remember" + " BYTE," +
				"automate" + " BYTE" +
				")";
		
		db.execSQL(sql);
	}

	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
		// TODO Auto-generated method stub
	        // 版本更新会调用这个方法
	}
	
	/**
	 * 添加数据
	 * @param nullColumnHack 空列的默认值
	 * @param values ContentValues类型的一个封装了列名称和列值的Map
	 * @return
	 */
	public long insert(String nullColumnHack, ContentValues values) {
	
		SQLiteDatabase wdb = getWritableDatabase();
		return wdb.insert("gd_account", nullColumnHack, values);
	}
	
	/**
	 * 更新数据
	 * @param values 更行列ContentValues类型的键值对(Map)
	 * @param whereClause 更新条件(where字句)
	 * @param whereArgs 更新条件数组
	 * @return
	 */
	public int update(ContentValues values, String whereClause, String[] whereArgs)
	{
		SQLiteDatabase wdb = getWritableDatabase();
		return wdb.update("gd_account", values, whereClause, whereArgs);
	}
	
	/**
	 * 删除数据
	 * @param whereClause 删除条件
	 * @param whereArgs	删除条件值数组
	 * @return 
	 */
	public int delete(String whereClause, String[] whereArgs) {
	
		SQLiteDatabase wdb = getWritableDatabase();
		return wdb.delete("gd_account", whereClause, whereArgs);
	}
	
	/**
	 * 查询数据
	 * @param columns 要查询的字段
	 * @param selection 要查询的条件
	 * @param selectionArgs 要查询的条件中占位符的值
	 * @param groupBy 对查询的结果进行分组 
	 * @param having 对分组的结果进行限制,分组条件
	 * @param orderBy 对查询的结果进行排序(“id desc”表示根据id倒序)
	 * @param limit 分页查询限制(如”1,3”表示获取第1到第3的数据共3条,
	 *                            如“2”表示获取两条数据)
	 * @return
	 */
	public Cursor query(String[] columns, String selection, String[] selectionArgs,
	        String groupBy, String having, String orderBy, String limit) {
	        
		SQLiteDatabase rdb = getReadableDatabase();
		return rdb.query("gd_account", columns, selection, selectionArgs, groupBy,
		           having, orderBy, limit);
	}
	
	/**
	 * Cursor游标接口常用方法:
	 * getCount()   总记录条数
	 * isFirst()     判断是否第一条记录
	 * isLast()      判断是否最后一条记录
	 * moveToFirst()    移动到第一条记录 
	 * moveToLast()    移动到最后一条记录
	 * move(int offset)   移动到指定记录
	 * moveToNext()    移动到下一条记录
	 * moveToPrevious()    移动到上一条记录
	 * getColumnIndex(String columnName) 根据列名得到列位置id
	 * getColumnIndexOrThrow(String columnName)  根据列名称获得列索引
	 * getInt(int columnIndex)   获得指定列索引的int类型值
	 * getString(int columnIndex)   获得指定列索引的String类型值
	 */
}


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI