Riucc's Storage
RSS
태그
관리
쓰기
카테고리
  • IT (593)
    • 정리 (0)
    • C# (42)
    • ASP.NET MVC (16)
    • JQuery&Javascript (12)
    • CSS (11)
    • 데이터베이스 (32)
    • Windows Server (6)
    • Active Directory (3)
    • Exchange (9)
    • JAVA (2)
    • JSP (39)
    • JSP 게시판 만들기 (21)
    • JSP 개발 참고 (15)
    • JSP 안드로이드 (4)
    • Servlet (17)
    • Spring (42)
    • HTML (14)
    • NodeJS (46)
    • MongoDB (11)
    • 리눅스 (18)
    • 자료구조 (16)
    • 아이폰 (24)
    • 안드로이드 (68)
    • API 활용하기 (10)
    • 소켓네트워크 (28)
    • 라즈베리파이 (11)
    • AWS클라우드 (10)
    • 빅데이터Hadoop (22)
    • 커널모듈프로그래밍 (8)
    • 기타 (10)
    • 자격증 (26)
Riucc's Storage

[안드로이드] - SQLiteDatabase 를 이용한 DB 처리

안드로이드|2017. 5. 19. 21:38
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

| SQLiteDatabase 를 이용한 DB 처리


※ openOrCreateDatabase() 는 해당 DB가 있으면 열고 없으면 생성한다

※ db.execSQL(sql); 은 select문 빼고는 다 쓴다(delete, update, insert, create 등)

※ select문 사용으로 레코드 조회시 Cursor 클래스 형태로 사용한다


 ● 데이터베이스 생성


public class MainActivity extends AppCompatActivity {

    SQLiteDatabase db;

    String dbname = "myDB";   // 생성할 DB 이름을 정함


    @Override

    protected void onCreate(Bundle savedInstanceState) {

        db = openOrCreateDatabase(dbname, MODE_PRIVATE, null);  // 해당 DB가 있으면 열고 없으면 생성해라 ( DB이름, 개인모드, 에러핸들러 )

        System.out.println("db 생성 완료");

}



 ● 테이블 생성


public class MainActivity extends AppCompatActivity {

    SQLiteDatabase db;

    String dbname = "myDB";  

    String tablename = "customer";   // 생성할 테이블 이름을 정함

    String sql;


    @Override

    protected void onCreate(Bundle savedInstanceState) {

        db = openOrCreateDatabase(dbname, MODE_PRIVATE, null);   // 해당 DB가 있으면 열고 없으면 생성해라 ( DB이름, 개인모드, 에러핸들러 )

        sql = "create table if not exists "+tablename+" (name varchar(20), phone varchar(40), email varchar(40));";    // 테이블을 정의함

        db.execSQL(sql);   // db를 실행시키기 위해 사용 select 말고는 다 쓴다(delete, update, insert, create)

}



● 레코드 삽입


public class MainActivity extends AppCompatActivity {

    String dbname = "myDB";

    String tablename = "customer";

    EditText input1, input2, input3;

    String str_input1, str_input2, str_input3;

    String sql;

    SQLiteDatabase db;


    @Override

    protected void onCreate(Bundle savedInstanceState) {

        db = openOrCreateDatabase(dbname, MODE_PRIVATE, null);   // DB 생성은 아까 했으니 열기

        input3 = (EditText)findViewById(R.id.editText3);  // 객체를 생성해서 가져오기(이름, 전화, 이메일)

        input2 = (EditText)findViewById(R.id.editText2);   

        input1 = (EditText)findViewById(R.id.editText1);  

    }


    public void insertClick(View v){ // 클릭했을떄 데이터 삽입 DB연동

        try {   // DB 관련 코드는 항상 예외처리를 해준다!

            str_input1 = input1.getText().toString();   // EditText로 가져온 값은 문자열로 변경하여 저장

            str_input2 = input1.getText().toString();

            str_input3 = input1.getText().toString();


            sql = "insert into "+tablename+"(name, phone, email) values('"+str_input1+"', '"+str_input2+"', '"+str_input3+"');"; // 레코드 삽입

            db.execSQL(sql);   // 해당 SQL을 db에 실행

            textPrint.setText("insert ok ");

            System.out.println("insert ok");

        } catch (Exception e){

            e.printStackTrace();

            System.out.println("db error : " + e);

            textPrint.setText("db error : "  + e);

        }

    }

}



● 레코드 조회


public class SelectActivity extends AppCompatActivity {

    String dbname = "myDB";

    String tablename = "customer";

    String sql;

    SQLiteDatabase db;

    TextView textView;

    Cursor resultset; // 레코드 조회시(select) 시 Cursor 클래스 형태로 한다


    @Override

    protected void onCreate(Bundle savedInstanceState) {

        db = openOrCreateDatabase(dbname, MODE_PRIVATE, null);

        textView = (TextView)findViewById(R.id.textView);

    }


    public void selectClick(View v){

        try {

            sql = "select name, phone, email from "+ tablename;  // 레코드 조회

            resultset = db.rawQuery(sql, null); // select 사용시 사용(sql문, where조건 줬을 때 넣는 값)

            int count = resultset.getCount();


            for (int i = 0; i < count; i++) {

                resultset.moveToNext();   // 첫번째에서 다음 레코드가 없을때까지 읽음

                String str_name = resultset.getString(0);  // 1번째~3번째 컬럼 값들 읽어 저장

                String str_phone = resultset.getString(1); 

                String str_email = resultset.getString(2);

                textView.append(" " + count + " " + str_name + " " + str_phone + " " + str_email);

            }

            System.out.println("select ok");

        } catch (Exception e) {

            textView.append("select 에러 " + e);

        }

    }

}



● 레코드 수정


public class UpdateActivity extends AppCompatActivity {

    String dbname = "myDB";

    String tablename = "customer";

    TextView textPrint;

    EditText input1, input2, input3;

    String str_input1, str_input2, str_input3;

    String sql;

    SQLiteDatabase db;


    @Override

    protected void onCreate(Bundle savedInstanceState) {

        input2 = (EditText)findViewById(R.id.editText2);   // 객체를 생성해서 가져오기(이름, 전화)

        input1 = (EditText)findViewById(R.id.editText1);   

        textPrint = (TextView)findViewById(R.id.textPrint);  

        db = openOrCreateDatabase(dbname, MODE_PRIVATE, null);

    }


    public void updateClick(View v){

        try {

            str_input1 = input1.getText().toString();

            str_input2 = input2.getText().toString();


            sql = "update "+tablename+" set phone = '"+str_input2+"' where name = '"+str_input1+"';";   // 레코드 수정

            db.execSQL(sql);  // 해당 sql을 db에 실행

            textPrint.setText("update ok ");

            System.out.println("update ok");

        } catch (Exception e){

            e.printStackTrace();

            System.out.println("db error : " + e);

            textPrint.setText("db error : "  + e);

        }

    }

}



● 레코드 삭제


public class DeleteActivity extends AppCompatActivity {

    String dbname = "myDB";

    String tablename = "customer";

    TextView textPrint;

    EditText input1;

    String str_input1;

    String sql;

    SQLiteDatabase db;


    @Override

    protected void onCreate(Bundle savedInstanceState) {

        input1 = (EditText)findViewById(R.id.editText1);   // 객체를 생성하여 가져오기(이름)

        textPrint = (TextView)findViewById(R.id.textPrint);   

        db = openOrCreateDatabase(dbname, MODE_PRIVATE, null);

    }


    public void deleteClick(View v) {

        try {

            str_input1 = input1.getText().toString();


            sql = "delete from " + tablename + " where name = '" + str_input1 + "';";   // 레코드 삭제

            db.execSQL(sql);  // 해당 sql문을 db에 실행

            textPrint.setText("delete ok ");

            System.out.println("delete ok");

        } catch (Exception e) {

            e.printStackTrace();

            System.out.println("db error : " + e);

            textPrint.setText("db error : " + e);

        }

    }

}


'안드로이드' 카테고리의 다른 글

[안드로이드] - SQLiteOpenHelper 를 이용한 DB 처리  (0) 2017.05.22
[안드로이드] - SQLite select문 ListView로 출력하기  (0) 2017.05.22
[안드로이드] - setOnItemClickListener 이용한 ListView 이벤트 처리  (0) 2017.05.08
[안드로이드] - setOnItemSelectedListener 이용한 Spinner 이벤트 처리  (0) 2017.05.08
[안드로이드] - VideoView + MediaController 이용한 동영상 재생  (0) 2017.05.01

댓글()
카테고리
  • IT (593)
    • 정리 (0)
    • C# (42)
    • ASP.NET MVC (16)
    • JQuery&Javascript (12)
    • CSS (11)
    • 데이터베이스 (32)
    • Windows Server (6)
    • Active Directory (3)
    • Exchange (9)
    • JAVA (2)
    • JSP (39)
    • JSP 게시판 만들기 (21)
    • JSP 개발 참고 (15)
    • JSP 안드로이드 (4)
    • Servlet (17)
    • Spring (42)
    • HTML (14)
    • NodeJS (46)
    • MongoDB (11)
    • 리눅스 (18)
    • 자료구조 (16)
    • 아이폰 (24)
    • 안드로이드 (68)
    • API 활용하기 (10)
    • 소켓네트워크 (28)
    • 라즈베리파이 (11)
    • AWS클라우드 (10)
    • 빅데이터Hadoop (22)
    • 커널모듈프로그래밍 (8)
    • 기타 (10)
    • 자격증 (26)
최근 등록 현황
최근 글
최근 월별 글
최근 댓글
최근 글
최근 월별 글
최근 댓글
최근 글
최근 월별 글
최근 댓글
달력
지난달
2025.12
다음달
일월화수목금토
123456
78910111213
14151617181920
21222324252627
28293031
태그 구름
  • 안드로이드 카카오 로그인
  • 정규화
  • 정보처리산업기사 총정리
  • 안드로이드
  • 소켓 프로그래밍
  • 정보처리산업기사 정리
  • 정보처리산업기사 15년 필기
  • 안드로이드 카카오 로그인 연동
  • 정보처리산업기사 필기 정리
  • 소켓
  • 커널 모듈 프로그래밍
  • 정보처리산업기사 필기
  • 정보처리산업기사 16년
  • nodejs express
  • 카카오 로그인 연동
  • 리눅스
  • 정규형
  • 카카오 로그인
  • 정보처리산업기사 15년
  • nodejs MySQL 연동하기(Connection Pool)
  • 정보처리산업기사 16년 필기
  • jsp
  • 정보처리기사 실기 정리
  • 정보처리산업기사 요약
  • 자료구조
  • 이클립스 mysql 연동
  • 이클립스 디비 연동
  • 안드로이드 intent
  • 데이터베이스
  • HTML
카운터
전체 방문자
오늘
어제
Skin by M1REACT. Designed by M1STORY.TISTORY.COM. Valid XHTML 1.0 and CSS 3. Copyright ⓒ Riucc's Storage. All rights reserved.

티스토리툴바