복붙노트

[SQL] 안드로이드 SQLite는 : UPDATE 문

SQL

안드로이드 SQLite는 : UPDATE 문

난 내 응용 프로그램에서 SQLite는 구현해야합니다. 나는이 튜토리얼을 따라 .. 만들기 및 안드로이드 하나의 데이터베이스를 사용하여

모든 것이 잘 작동한다. 나는 5 열이 1 행을 삽입했다. 지금은 단지 1 열의 값을 업데이트 할 등은 동일하게 유지됩니다.

이 튜토리얼에서 하나의 업데이트 방법이지만 모든 매개 변수, 그러나 나는 단지 하나의 열을 업데이트 할 필요가있다.

해결법

  1. ==============================

    1.당신은 아래의 코드를 사용할 수 있습니다.

    당신은 아래의 코드를 사용할 수 있습니다.

    String strFilter = "_id=" + Id;
    ContentValues args = new ContentValues();
    args.put(KEY_TITLE, title);
    myDB.update("titles", args, strFilter, null);
    
  2. ==============================

    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. ==============================

    3.그것은 어떻게 할 수있는 튜토리얼의 모든입니다 :

    그것은 어떻게 할 수있는 튜토리얼의 모든입니다 :

        ContentValues args = new ContentValues();
        args.put(columnName, newValue);
        db.update(DATABASE_TABLE, args, KEY_ROWID + "=" + rowId, null);
    

    사용 ContentValues ​​업데이트 된 열을 설정하고로 명시를해야하는 업데이트 () 메소드보다는 테이블과 기준은 업데이트 할 행을 업데이트 할 수 있습니다.

  4. ==============================

    4.당신은 항상 SQL을 실행할 수 있습니다.

    당신은 항상 SQL을 실행할 수 있습니다.

    update [your table] set [your column]=value
    

    예를 들면

    update Foo set Bar=125
    
  5. ==============================

    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. ==============================

    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);
    
       }
    
  7. from https://stackoverflow.com/questions/5987863/android-sqlite-update-statement by cc-by-sa and MIT license