본문 바로가기
[ Developer ]/Android

[Android] 안드로이드 DB SQLite 데이터 입력

by 김현섭. 2016. 7. 26.
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
Android Database 레코드 생성
이전에 생성한 Android Database에서 데이터를 넣기 위해 실습을 진행해본다
activity_main에서 버튼을 하나 추가해준다


그리고 나서 Main에서 버튼을 추가해준다


이전에 한 것과 같이 데이터 생성도 AlertDialog를 이용해서 입력을 받는다
데이터를 입력받기 위해서 3개의 EditText를 생성하고 그것들을 묶어줄 LinearLayout도 선언한다


데이터 입력 창들에 Hint를 주고 layout에 넣었다
위와 같이 입력하고 Data 생성 버튼을 누르면 다음과 같이 결과가 나오게 된다


이제 등록 버튼을 눌렀을 시 데이터들을 처리하기 위해서 EditText에 각각 final 처리를 해준 후 로직을 작성한다


우선은 등록 버튼 눌렀을 때 각각의 EditText에 있는 값들을 가져오고 Toast를 생성해준다



위와 같이 입력한 값들이 들어오는 것을 볼 수 있다

@ DAO 생성
이제는 DB에 넣어주는 DAO를 생성해본다
DBHelper에서 메소드를 생성한다

우선 그 전에 vo 패키지를 생성해서 Person이라는 클래스를 생성한다


위와 같이 멤버변수들을 선언하고 ALt + Insert 키를 통해서 Getter와 Setter를 설정한다
이제는 DAO를 생성해본다


로직은 위와 같이 2가지로 실행되며 간단하다


* DB Insert Method
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    public void addPerson(Person person) {
        // 사용 가능한 DB 객체 가져오기
        SQLiteDatabase db = getWritableDatabase();
 
        // Person Data를 Insert
        StringBuffer sb = new StringBuffer();
        sb.append(" INSERT INTO TEST_TABLE ( ");
        sb.append(" NAME, AGE, PHONE) ");
        sb.append(" VALUES ( #NAME#, #AGE#, #PHONE# )");
 
        String query = sb.toString();
        query = query.replace("#NAME#""'" + person.getName() + "'");
        query = query.replace("#AGE#", person.getAge());
        query = query.replace("#PHONE#""'" + person.getPhone() + "'");
 
        db.execSQL(query);
 
        Toast.makeText(context, "Insert 완료", Toast.LENGTH_SHORT).show();
    }
cs

위의 로직을 보면 AGE는 Integer이기 때문에 홑 따옴표가 안붙을 것을 볼 수 있다
또한 query에서 데이터를 넣어주는 ?가 안되기 때문에
#NAME#과 같이 입력을 해놓고 replace 시키는 과정으로 대체를 했다

이제 실행 뒤에 Toast를 띄워서 결과를 본다


이제는 Main에서 등록 버튼을 눌렀을 시 로직을 처리해주면 된다


이제 데이터를 입력해본다



DB 생성 완료 되었다는 Toast가 정상적으로 뜬 것을 볼 수 있다
위의 쿼리에 데이터를 넣을 때 ? 물음표를 이용해서 넣는 방식을 추가적으로 배워본다