DB

안드로이드 SQLite 데이터 변경 방법(UPDATE문)

SQLite를 사용시 등록한 데이터에 대한 수정(변경)을 위해 update문을 사용한다. 입력한 정보중에 잘 못 입력하였거나 변경이 필요한 경우 사용하게 된다. 여러개의 칼럼을 동시에 업데이트 할수 있으며, 하나의 칼럼만 업데이트 할 수 도 있다. update set where를 기억하자.

 

[샘플 스크립트1]

    public static void updateTable(SQLiteDatabase database, int gubunType, int eventID) {
        if (database != null) {
            try {

                database.execSQL("UPDATE TB_FINEDUST_RECORD "
                        + "SET "
                        + " _event_type =" + gubunType
                        + " WHERE event_id =" + eventID
                );
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

[샘플 스크립트2] 변경일시를 등록하기위해 Calendar 클래스에서 날짜와시간을 가져와 원하는 날짜 타입으로 포맷팅하였다.

    public static void updateTbSisterAccountBook(SQLiteDatabase database, int gubunType, String sDate, int money,  String content, int eventID){
        if(database != null){
            try {
                String currentDateString = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
                SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                Calendar calendar = Calendar.getInstance();
                calendar.setTime(simpleDateFormat.parse(currentDateString));
                Log.e("hour", ""+calendar.get(Calendar.HOUR));
                Log.e("minutes", ""+calendar.get(Calendar.MINUTE));
                Log.e("seconds", ""+calendar.get(Calendar.SECOND));

                sDate = sDate + " " + calendar.get(Calendar.HOUR) + ":" + calendar.get(Calendar.MINUTE) + ":" + calendar.get(Calendar.SECOND);
                DateFormat df1 = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
                Date dt = df1.parse(sDate);

                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                String eventDate = sdf.format(dt);
                database.execSQL("UPDATE TB_SISTER_ACCOUNT_BOOK "
                        + "SET "
                        + " _event_type =" + gubunType + ","
                        + " _event_date =" + "'" + eventDate + "',"
                        + " _event_money =" + money + ","
                        + " _contents =" + "'" + content + "'"
                        //+ "'" + DateUtil.getCurrentDate("yyyy-MM-dd HH:mm:ss") + "',"
                        + " WHERE event_id =" + eventID
                        );
            }catch(Exception e) {
                e.printStackTrace();
            }
        }
    }

[샘플 스크립트3] 10개만 삭제하고자 limit를 사용하였다.

    //삭제 데이터 제한을 두기 위한 limit 사용
    public static void updateTable(SQLiteDatabase database, int gubunType) {
        if (database != null) {
            try {
                database.execSQL("UPDATE TB_FINEDUST_RECORD "
                        + "SET "
                        + " _event_type =" + gubunType
                        + " WHERE _event_type = 2 " 
                        + " LIMIT 10"
                );
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

[샘플 스크립트4] 

    public static void updateFixedAmount(SQLiteDatabase database, int eventID, String nDay, int money,  String content){
        Log.d("jinsu", "updateFixedAmount() ");
        if(database != null){
            try {
                String eventDay =  DateUtil.getDay( Integer.parseInt(nDay));
                database.execSQL("UPDATE TB_FIXED_ACCOUNT_AMT "
                        + "SET "
//                        + " _event_type =" + gubunType + ","
                        + " _event_day =" + "'" + eventDay + "',"
                        + " _event_money =" + money + ","
                        + " _contents =" + "'" + content + "'"
                        //+ "'" + DateUtil.getCurrentDate("yyyy-MM-dd HH:mm:ss") + "',"
                        + " WHERE event_id =" + eventID
                );
            }catch(Exception e) {
                e.printStackTrace();
            }
        }
    }

◆데이터베이스 초기화 방법은 아래 링크를 참고
1. 안드로이드 SQLite 사용을 위한 SQLiteOpenHelper 커스터마이징

2. 안드로이드 SQLite 테이블 생성 방법(CREATE TABLE)

3. 안드로이드 SQLite 데이터 추가 방법(INSERT문)

4. 안드로이드 SQLite 데이터 삭제 방법(DELETE 문)

 

 

Leave a Reply

error: Content is protected !!