Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

맨땅에 코딩

[안드로이드] DB insert, select, delete 문 사용법 (간단한 예제 공유) 본문

앱 개발/Java

[안드로이드] DB insert, select, delete 문 사용법 (간단한 예제 공유)

맨땅 2022. 3. 25. 13:29

목차

    반응형

     

     

     

    1. 안드로이드 내부 DB에 반려동물의 이름, 나이, 몸무게, 성별을 저장(insert)

    2. DB 데이터를 읽어와서 표출 (select)

    3. DB 데이터 초기화 (delete)

     

     


    [아래 코드를 보실때 이해를 돕기위해 따로 적어놨습니다]

    DATABASE_NAME = "data.db";

    TABLE_NAME = "animal" 

    칼럼들 = {_id, name, age, weight, gender}

    넣은 데이터 값 = {haru, 4, 13, w}, { inho, 5, 8, m}

     

     

    DB로 쓸 java class파일을 하나 생성해줍니다. 

     

     

    [MySQLiteOpenHelper.java]

    public class MySQLiteOpenHelper extends SQLiteOpenHelper {
        public static final String DATABASE_NAME = "data.db";
        public static final int DATABASE_VERSION = 1;
    
        public MySQLiteOpenHelper(Context context) {
            super(context, DATABASE_NAME, null, DATABASE_VERSION);
        }
    
        @Override
        public void onCreate(SQLiteDatabase db) {
            String sql = "create table animal" +
                    "(_id integer primary key autoincrement," +
                    "name text, age text, weight text, gender text);";
    
            db.execSQL(sql); // select를 제외한 모든 sql 명령어 실행
        }
    
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            String sql = "drop table if exists animal;";
            db.execSQL(sql);
            onCreate(db);
        }
    }

     

    DB, table, 칼럼 명 다 원하시는대로 바꿔서 사용하시면 됩니다

     

     

     

     

    MainActivity에 오셔서 상단부분에 DB 사용을 위해 필요한 코드를 입력해줍니다

     

     

     

    [MainActivity.java]

    public class MainActivity extends AppCompatActivity {
    
        //DB호출
        MySQLiteOpenHelper helper;
        SQLiteDatabase db;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            helper = new MySQLiteOpenHelper(this);
            db = helper.getWritableDatabase(); // insert 를 위해 필요한 권한
            db = helper.getReadableDatabase(); // select 를 위해 필요한 권한
    
    //        dbInsert();
    //        dbSelect();
    //        dbDelete();
    
        }
    
        private void dbInsert() {
    
            ContentValues dbvalue = new ContentValues();
            // 키, 값의 쌍으로 데이터 입력
            dbvalue.put("name", "haru");
            dbvalue.put("age", "4");
            dbvalue.put("weight", "13");
            dbvalue.put("gender", "w");
            db.insert("animal", null, dbvalue);
    
    //        db.execSQL("INSERT INTO animal VALUES(null, 'inho', '5', '8', 'm');");
            
        }
    
        private void dbSelect() {
    
            Cursor cursor;
            cursor = db.rawQuery("SELECT * FROM animal", null);
    
            if (cursor != null && cursor.getCount() != 0) {
                while (cursor.moveToNext()) {
                    Log.d("db_id", cursor.getString(0));
                    Log.d("db_name", cursor.getString(1));
                    Log.d("db_age", cursor.getString(2));
                    Log.d("db_weight", cursor.getString(3));
                    Log.d("db_gender", cursor.getString(4));
    
                }
            }
            cursor.close();
            db.close();
        }
    
        private void dbDelete() {
            helper = new MySQLiteOpenHelper(this);
            db = helper.getWritableDatabase();
            helper.onUpgrade(db, 1, 2);
            db.close();
            Toast.makeText(this, "DB가 초기화 되었습니다", Toast.LENGTH_SHORT).show();
            return;
        }
    
    }

     

     

    Insert

     

    insert 방법은 두가지가 있습니다. 한가지 방법은 ContentResolver 가 처리 할 수 있는 값 집합을 저장한 후 insert하는 방법입니다.

    ContentValues dbvalue = new ContentValues();
    // 키, 값의 쌍으로 데이터 입력
    dbvalue.put("name", "haru");
    dbvalue.put("age", "4");
    dbvalue.put("weight", "13");
    dbvalue.put("gender", "w");
    db.insert("animal", null, dbvalue);

     다른 방법은 execSQL을 이용하여 insert하는 방법입니다.

    db.execSQL("INSERT INTO animal VALUES(null, 'inho', '5', '8', 'm');");

    편하신대로 골라서 사용하시면 됩니다!

     

     

    Select, Delete

     

    select, delete부분은 위에 전체 코드를 보시면 이해하시기 어렵지 않으실 겁니다

     

    Log.d로 하단 Log로 db에 데이터가 들어간것을 조회할 수 있습니다.

     

     

     

     

    궁금한점 있으시면 편하게 질문주세요

     

     

    반응형