android数据库中数据不存在就插入,存在就更新操作方法

有时候,我们需要将在数据库中不存在数据的时候,就插入数据。存在的时候就更新数据。mqsql里面提供了相应的操作方法,但是sqlite3没有提供相应的方法。

就只能,先找;如果存在就更新,不存在就插入了;

上代码

public boolean insertOrUpdateBook(UserBookInfo userBookInfo){
    	
    	SQLiteDatabase database = openDatabase();
    	
    	Cursor cursor = database.query(
    			BookInfo.TABLE_NAME, 
    			new String[]{BookInfo.COLUMN_NAME_BOOK_ID}, 
    			BookInfo.COLUMN_NAME_BOOK_ID + " = ?", 
    			new String[]{userBookInfo.getBookId() + ""}, 
    			null, 
    			null, 
    			null);
    	
    	ContentValues initialValues = new ContentValues();
    	initialValues.put(UserBook.COLUMN_NAME_BOOK_ID, userBookInfo.getBookId());
    	initialValues.put(UserBook.COLUMN_NAME_USER_ID, userBookInfo.getUserId());
    	initialValues.put(UserBook.COLUMN_NAME_READABLE, userBookInfo.getReadable());
    	initialValues.put(UserBook.COLUMN_NAME_STARS_COUNT, userBookInfo.getStarsCount());
    	initialValues.put(UserBook.COLUMN_NAME_TIME_LENGTH, userBookInfo.getTimeLength());
    	long result = 0;
    	try {
    		if (cursor != null && cursor.getCount() > 0) {
    			//更新操作
    			result = database.update(UserBook.TABLE_NAME, initialValues, UserBook.COLUMN_NAME_BOOK_ID + " = ?", new String[]{userBookInfo.getBookId() + ""});
    		}else{
    			//插入操作
    			result = database.insert(UserBook.TABLE_NAME, null, initialValues);
    		}
		} catch (Exception e) {
			
		} finally{
			if (null != cursor) {
				cursor.close();
			}
	    	closeDatabase();
		}
    	
    	return result > 0;
    	
    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值