[SQL] 안드로이드 SQLite는 : UPDATE 문
SQL안드로이드 SQLite는 : UPDATE 문
난 내 응용 프로그램에서 SQLite는 구현해야합니다. 나는이 튜토리얼을 따라 .. 만들기 및 안드로이드 하나의 데이터베이스를 사용하여
모든 것이 잘 작동한다. 나는 5 열이 1 행을 삽입했다. 지금은 단지 1 열의 값을 업데이트 할 등은 동일하게 유지됩니다.
이 튜토리얼에서 하나의 업데이트 방법이지만 모든 매개 변수, 그러나 나는 단지 하나의 열을 업데이트 할 필요가있다.
해결법
-
==============================
1.당신은 아래의 코드를 사용할 수 있습니다.
당신은 아래의 코드를 사용할 수 있습니다.
String strFilter = "_id=" + Id; ContentValues args = new ContentValues(); args.put(KEY_TITLE, title); myDB.update("titles", args, strFilter, null);
-
==============================
2.당신은 시도 할 수 있습니다:
당신은 시도 할 수 있습니다:
db.execSQL("UPDATE DB_TABLE SET YOUR_COLUMN='newValue' WHERE id=6 ");
또는
ContentValues newValues = new ContentValues(); newValues.put("YOUR_COLUMN", "newValue"); db.update("YOUR_TABLE", newValues, "id=6", null);
또는
ContentValues newValues = new ContentValues(); newValues.put("YOUR_COLUMN", "newValue"); String[] args = new String[]{"user1", "user2"}; db.update("YOUR_TABLE", newValues, "name=? OR name=?", args);
-
==============================
3.그것은 어떻게 할 수있는 튜토리얼의 모든입니다 :
그것은 어떻게 할 수있는 튜토리얼의 모든입니다 :
ContentValues args = new ContentValues(); args.put(columnName, newValue); db.update(DATABASE_TABLE, args, KEY_ROWID + "=" + rowId, null);
사용 ContentValues 업데이트 된 열을 설정하고로 명시를해야하는 업데이트 () 메소드보다는 테이블과 기준은 업데이트 할 행을 업데이트 할 수 있습니다.
-
==============================
4.당신은 항상 SQL을 실행할 수 있습니다.
당신은 항상 SQL을 실행할 수 있습니다.
update [your table] set [your column]=value
예를 들면
update Foo set Bar=125
-
==============================
5.의 SQLiteDatabase 객체는 데이터베이스 작업의 유형에 따라 달라집니다.
의 SQLiteDatabase 객체는 데이터베이스 작업의 유형에 따라 달라집니다.
자세한 내용은 공식 웹 사이트를 방문하십시오 :
https://developer.android.com/training/basics/data-storage/databases.html#UpdateDbRow
그것은 SQLite 데이터베이스에 대한 협의를 조작하는 방법을 설명합니다.
쓰기 모드에서 데이터 저장소를 가져옵니다
SQLiteDatabase db = mDbHelper.getWritableDatabase();
값의 새지도 만들기, 열 이름은 키는 어디에
ContentValues values = new ContentValues(); values.put(FeedEntry.COLUMN_NAME_ENTRY_ID, id); values.put(FeedEntry.COLUMN_NAME_TITLE, title); values.put(FeedEntry.COLUMN_NAME_CONTENT, content);
새 행의 기본 키 값을 반환, 새 행을 삽입
long newRowId; newRowId = db.insert( FeedEntry.TABLE_NAME, FeedEntry.COLUMN_NAME_NULLABLE, values);
쿼리의 '어디에'부분을 정의합니다.
String selection = FeedEntry.COLUMN_NAME_ENTRY_ID + " LIKE ?";
자리 표시 자 순서로 인수를 지정합니다.
String[] selectionArgs = { String.valueOf(rowId) }; SQLiteDatabase db = mDbHelper.getReadableDatabase();
하나의 열을위한 새로운 가치
ContentValues values = new ContentValues(); values.put(FeedEntry.COLUMN_NAME_TITLE, title);
ID를 기반으로 갱신되는 행
String selection = FeedEntry.COLUMN_NAME_ENTRY_ID + " LIKE ?"; String[] selectionArgs = { String.valueOf(rowId) }; int count = db.update( FeedReaderDbHelper.FeedEntry.TABLE_NAME, values, selection, selectionArgs);
-
==============================
6.나는 database.I 그것은 미래의 어떤 일을 도움이되기를 바랍니다 처리하기 위해이 클래스를 사용합니다.
나는 database.I 그것은 미래의 어떤 일을 도움이되기를 바랍니다 처리하기 위해이 클래스를 사용합니다.
해피 코딩.
public class Database { private static class DBHelper extends SQLiteOpenHelper { /** * Database name */ private static final String DB_NAME = "db_name"; /** * Table Names */ public static final String TABLE_CART = "DB_CART"; /** * Cart Table Columns */ public static final String CART_ID_PK = "_id";// Primary key public static final String CART_DISH_NAME = "dish_name"; public static final String CART_DISH_ID = "menu_item_id"; public static final String CART_DISH_QTY = "dish_qty"; public static final String CART_DISH_PRICE = "dish_price"; /** * String to create reservation tabs table */ private final String CREATE_TABLE_CART = "CREATE TABLE IF NOT EXISTS " + TABLE_CART + " ( " + CART_ID_PK + " INTEGER PRIMARY KEY, " + CART_DISH_NAME + " TEXT , " + CART_DISH_ID + " TEXT , " + CART_DISH_QTY + " TEXT , " + CART_DISH_PRICE + " TEXT);"; public DBHelper(Context context) { super(context, DB_NAME, null, 2); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(CREATE_TABLE_CART); } @Override public void onUpgrade(SQLiteDatabase db, int arg1, int arg2) { db.execSQL("DROP TABLE IF EXISTS " + CREATE_TABLE_CART); onCreate(db); } } /** * CART handler */ public static class Cart { /** * Check if Cart is available or not * * @param context * @return */ public static boolean isCartAvailable(Context context) { DBHelper dbHelper = new DBHelper(context); SQLiteDatabase db = dbHelper.getReadableDatabase(); boolean exists = false; try { String query = "SELECT * FROM " + DBHelper.TABLE_CART; Cursor cursor = db.rawQuery(query, null); exists = (cursor.getCount() > 0); cursor.close(); db.close(); } catch (SQLiteException e) { db.close(); } return exists; } /** * Insert values in cart table * * @param context * @param dishName * @param dishPrice * @param dishQty * @return */ public static boolean insertItem(Context context, String itemId, String dishName, String dishPrice, String dishQty) { DBHelper dbHelper = new DBHelper(context); SQLiteDatabase db = dbHelper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put(DBHelper.CART_DISH_ID, "" + itemId); values.put(DBHelper.CART_DISH_NAME, "" + dishName); values.put(DBHelper.CART_DISH_PRICE, "" + dishPrice); values.put(DBHelper.CART_DISH_QTY, "" + dishQty); try { db.insert(DBHelper.TABLE_CART, null, values); db.close(); return true; } catch (SQLiteException e) { db.close(); return false; } } /** * Check for specific record by name * * @param context * @param dishName * @return */ public static boolean isItemAvailable(Context context, String dishName) { DBHelper dbHelper = new DBHelper(context); SQLiteDatabase db = dbHelper.getReadableDatabase(); boolean exists = false; String query = "SELECT * FROM " + DBHelper.TABLE_CART + " WHERE " + DBHelper.CART_DISH_NAME + " = '" + String.valueOf(dishName) + "'"; try { Cursor cursor = db.rawQuery(query, null); exists = (cursor.getCount() > 0); cursor.close(); } catch (SQLiteException e) { e.printStackTrace(); db.close(); } return exists; } /** * Update cart item by item name * * @param context * @param dishName * @param dishPrice * @param dishQty * @return */ public static boolean updateItem(Context context, String itemId, String dishName, String dishPrice, String dishQty) { DBHelper dbHelper = new DBHelper(context); SQLiteDatabase db = dbHelper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put(DBHelper.CART_DISH_ID, itemId); values.put(DBHelper.CART_DISH_NAME, dishName); values.put(DBHelper.CART_DISH_PRICE, dishPrice); values.put(DBHelper.CART_DISH_QTY, dishQty); try { String[] args = new String[]{dishName}; db.update(DBHelper.TABLE_CART, values, DBHelper.CART_DISH_NAME + "=?", args); db.close(); return true; } catch (SQLiteException e) { db.close(); return false; } } /** * Get cart list * * @param context * @return */ public static ArrayList<CartModel> getCartList(Context context) { DBHelper dbHelper = new DBHelper(context); SQLiteDatabase db = dbHelper.getReadableDatabase(); ArrayList<CartModel> cartList = new ArrayList<>(); try { String query = "SELECT * FROM " + DBHelper.TABLE_CART + ";"; Cursor cursor = db.rawQuery(query, null); for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) { cartList.add(new CartModel( cursor.getString(cursor.getColumnIndex(DBHelper.CART_DISH_ID)), cursor.getString(cursor.getColumnIndex(DBHelper.CART_DISH_NAME)), cursor.getString(cursor.getColumnIndex(DBHelper.CART_DISH_QTY)), Integer.parseInt(cursor.getString(cursor.getColumnIndex(DBHelper.CART_DISH_PRICE))) )); } db.close(); } catch (SQLiteException e) { db.close(); } return cartList; } /** * Get total amount of cart items * * @param context * @return */ public static String getTotalAmount(Context context) { DBHelper dbHelper = new DBHelper(context); SQLiteDatabase db = dbHelper.getReadableDatabase(); double totalAmount = 0.0; try { String query = "SELECT * FROM " + DBHelper.TABLE_CART + ";"; Cursor cursor = db.rawQuery(query, null); for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) { totalAmount = totalAmount + Double.parseDouble(cursor.getString(cursor.getColumnIndex(DBHelper.CART_DISH_PRICE))) * Double.parseDouble(cursor.getString(cursor.getColumnIndex(DBHelper.CART_DISH_QTY))); } db.close(); } catch (SQLiteException e) { db.close(); } if (totalAmount == 0.0) return ""; else return "" + totalAmount; } /** * Get item quantity * * @param context * @param dishName * @return */ public static String getItemQty(Context context, String dishName) { DBHelper dbHelper = new DBHelper(context); SQLiteDatabase db = dbHelper.getReadableDatabase(); Cursor cursor = null; String query = "SELECT * FROM " + DBHelper.TABLE_CART + " WHERE " + DBHelper.CART_DISH_NAME + " = '" + dishName + "';"; String quantity = "0"; try { cursor = db.rawQuery(query, null); if (cursor.getCount() > 0) { cursor.moveToFirst(); quantity = cursor.getString(cursor .getColumnIndex(DBHelper.CART_DISH_QTY)); return quantity; } } catch (SQLiteException e) { e.printStackTrace(); } return quantity; } /** * Delete cart item by name * * @param context * @param dishName */ public static void deleteCartItem(Context context, String dishName) { DBHelper dbHelper = new DBHelper(context); SQLiteDatabase db = dbHelper.getReadableDatabase(); try { String[] args = new String[]{dishName}; db.delete(DBHelper.TABLE_CART, DBHelper.CART_DISH_NAME + "=?", args); db.close(); } catch (SQLiteException e) { db.close(); e.printStackTrace(); } } }//End of cart class /** * Delete database table * * @param context */ public static void deleteCart(Context context) { DBHelper dbHelper = new DBHelper(context); SQLiteDatabase db = dbHelper.getReadableDatabase(); try { db.execSQL("DELETE FROM " + DBHelper.TABLE_CART); } catch (SQLiteException e) { e.printStackTrace(); } }
}
용법:
if(Database.Cart.isCartAvailable(context)){ Database.deleteCart(context); }
from https://stackoverflow.com/questions/5987863/android-sqlite-update-statement by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 나는 오라클 SQL에서 BLOB에서 텍스트 내용을 얻는 방법 (0) | 2020.04.23 |
---|---|
[SQL] MySQL의에서이 연산자는 <=> 무엇입니까? (0) | 2020.04.23 |
[SQL] 어떻게 Oracle 데이터베이스에 허용되는 최대 연결 수를 확인하려면? (0) | 2020.04.23 |
[SQL] ALTER 테이블은 복합 기본 키를 추가하는 (0) | 2020.04.23 |
[SQL] SQLite는 데이터베이스 기본 시간 값 '지금' (0) | 2020.04.23 |