Sponsored By
















아래 개발자 페이지로 들어가서 순서에 맞게 진행하시면 됩니다.

 

https://play.google.com/apps/publish/

 

 

 

 

cf) Copyright문제로 인해 계정이 제제당해서 다시 만들었는데 개발자등록비용이 올랐습니다.ㅠ 법적인 문제를 잘 따르셔서 저와같이 다시 등록하는 일이 없도록 하시기 바랍니다. 등록비가 오른대신에 한글로 명시되어있고 등록과정이 간편화 되었습니다만 뭔가 억울하면서 아쉬우면서 아깝고 그러네요.허헣ㅎㅎㅠ

무튼, 개발자님들 오늘도 화이팅 입니다. :-)

 

 

 

 

 

헬퍼클래스(HelperClass) (=업데이트 등의 디비관리) 사용방법임.

 

 

 

※ 이전코드는 역시 아래 주소 참고. :

https://asterisco.tistory.com/70

 

 

 

 

 

 

 

 

 

00. 아래와같이 가장 아래쪽에 헬퍼클래스를 만들고 적절하게 코드를 수정하자. (정상작동확인을 위해 토스트추가.)

package com.example.joey.mydbdb;

import android.content.Context;

import android.database.Cursor;

import android.database.sqlite.SQLiteDatabase;

import android.database.sqlite.SQLiteOpenHelper;

import android.os.Bundle;

import android.support.v7.app.AppCompatActivity;

import android.view.View;

import android.widget.EditText;

import android.widget.TextView;

import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    EditText editText;

    EditText editText2;

    TextView textView;

    String databaseName;

    SQLiteDatabase database;

    String tableName;

    CustomerDatabaseHelper databaseHelper;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        editText = (EditText) findViewById(R.id.editText);

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

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

    }

 

    public void button01(View v) {

        databaseName = editText.getText().toString();

        try {

//            database = openOrCreateDatabase(databaseName, Context.MODE_PRIVATE, null);

 

            databaseHelper = new CustomerDatabaseHelper(getApplicationContext(), databaseName, null, 1 /*버전넘버*/);

            database = databaseHelper.getWritableDatabase();

            println("데이터베이스를 열었습니다. :" + databaseName);

        } catch (Exception e) {

            e.printStackTrace();

        }

    }

 

    public void button02(View v) {

//        createTable();

    }

 

    public void createTable(SQLiteDatabase db) {

        tableName = editText2.getText().toString();

 

        try {

            if (db != null) {  //database가 null 값이면 수행

                db.execSQL("CREATE TABLE if not exists " + tableName + "(" // 존재하지 않을때 생성하라

                        + "_id integer PRIMARY KEY autoincrement,"

                        + "name text, "

                        + "age integer, "

                        + "mobile text "

                        + ")");

                println("테이블을 만들었습니다. : " + tableName);

            } else {

                println("데이터베이스를 먼저 열어야 합니다.");

            }

        } catch (Exception e) {

            e.printStackTrace();

        }

    }

 

    public void changeTable(SQLiteDatabase db) { //데이터가 있는경우에

        try {

            if (db != null) {  //database가 null 값이면 수행

                db.execSQL("CREATE TABLE if not exists " + "PRODUCT" + "(" // 존재하지 않을때 생성하라

                        + "_id integer PRIMARY KEY autoincrement,"

                        + "name text, "

                        + "price integer "

                        + ")");

                println("테이블을 추가로 만들었습니다. : " + "PRODUCT");

            } else {

                println("데이터베이스를 먼저 열어야 합니다.");

            }

        } catch (Exception e) {

            e.printStackTrace();

        }

    }

    public void button03(View v) {

        try {

            if (tableName == null) {  //tableName이 null 값이면 수행

                tableName = editText2.getText().toString();

            }

            if (database != null) {

                database.execSQL("INSERT INTO " + tableName + "(name, age, mobile) VALUES"

                        + "('김사과', 20, '010-1234-5678')");

                println("데이터를 추가했습니다. ");

            } else {

                println("데이터베이스를 먼저 열어야 합니다.");

            }

 

 

        } catch (Exception e) {

            e.printStackTrace();

        }

    }

 

    public void button04(View v) {

        try {

            if (tableName == null) {  //tableName이 null 값이면 수행

                tableName = editText2.getText().toString();

            }

            if (database != null) {

                Cursor cursor = database.rawQuery("SELECT name, age, mobile FROM " + tableName, null);

                int count = cursor.getCount();

                println("결과 레코드의 수 : " + count);

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

                    cursor.moveToNext();

                    String name = cursor.getString(0);

                    int age = cursor.getInt(1);

                    String mobile = cursor.getString(2);

                    println("레코드 #" + i + " : " + name + ", " + age + ", " + mobile);

                }

                cursor.close();

                println("데이터를 조회했습니다.");

            } else {

                println("데이터베이스를 먼저 열어야 합니다.");

            }

        } catch (Exception e) {

            e.printStackTrace();

        }

    }

    private void println(String data) {

        textView.append(data + "\n");

    }

 

    class CustomerDatabaseHelper extends SQLiteOpenHelper {

 

        public CustomerDatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {

            super(context, name, factory, version);

        }

 

        @Override

        public void onOpen(SQLiteDatabase db) {

            super.onOpen(db);

            Toast.makeText(getApplicationContext(), "Helper onOpen() 호출됨.", Toast.LENGTH_SHORT).show();

        }

 

        @Override

        public void onCreate(SQLiteDatabase db) {

            createTable(db);

            Toast.makeText(getApplicationContext(), "Helper onCreate() 호출됨.", Toast.LENGTH_SHORT).show();

        }

 

        @Override

        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

            changeTable(db);

            Toast.makeText(getApplicationContext(), "Helper onUpgrade() 호출됨. : " + oldVersion + "-> " + newVersion, Toast.LENGTH_SHORT).show();

        }

    }

}// main 종료







01. 실행시켜본다.







02. 데이터베이스열기를 눌러본다.

 

 

 

 

 

03. 헬퍼클래스로 작동 된것을 확인 할 수 있다.

 

 

 

 

 

04. 다시 메인Script로 돌아와서 버전정보를 2로 올려보자.








05. 다시한번 실행시켜보자.







06. 데이터베이스열기 버튼을 눌러보자.

 

 

 

 

 

07. 버전이 바뀌면서 안에 들어가있는 스키마도 같이 바뀌는 것을 확인 할 수 있다.

 

 

 

 

 

 

 

 

 

데이터를 조회 하는 방법임.

 

 

 

 

 

 

※앞선 코드는 아래 주소 참조 :

https://asterisco.tistory.com/68

 

 

 

 

 

 

 

 

 

00. main xml에서 버튼하나를 더 만든다.

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:paddingBottom="@dimen/activity_vertical_margin"

    android:paddingLeft="@dimen/activity_horizontal_margin"

    android:paddingRight="@dimen/activity_horizontal_margin"

    android:paddingTop="@dimen/activity_vertical_margin"

    tools:context="com.example.joey.mydbdb.MainActivity">

    <EditText

        android:id="@+id/editText"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_alignParentLeft="true"

        android:layout_alignParentStart="true"

        android:layout_toLeftOf="@+id/button01"

        android:text="customer.db" />

    <Button

        android:id="@+id/button01"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_alignBottom="@+id/editText"

        android:layout_alignParentEnd="true"

        android:layout_alignParentRight="true"

        android:onClick="button01"

        android:text="데이터베이스열기" />

    <EditText

        android:id="@+id/editText02"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:layout_alignBottom="@+id/button02"

        android:layout_alignParentLeft="true"

        android:layout_alignParentStart="true"

        android:layout_toLeftOf="@+id/button02"

        android:text="customer" />

    <Button

        android:id="@+id/button02"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_alignParentEnd="true"

        android:layout_alignParentRight="true"

        android:layout_below="@+id/button01"

        android:onClick="button02"

        android:text="테이블만들기" />

    <Button

        android:id="@+id/button03"

        android:layout_below="@+id/button02"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:onClick="button03"

        android:text="데이터추가하기" />

 

    <Button

        android:id="@+id/button04"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:onClick="button04"

        android:text="데이터조회하기"

        android:layout_below="@+id/button03"

        android:layout_alignParentLeft="true"

        android:layout_alignParentStart="true" />

 

    <ScrollView

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:layout_alignParentBottom="true"

        android:id="@+id/scrollView"

        android:layout_below="@+id/button04">

        <TextView

            android:id="@+id/textView"

            android:layout_width="match_parent"

            android:layout_height="match_parent"

            android:background="#ffaaffee"

            android:layout_alignTop="@+id/scrollView"

            android:layout_alignParentLeft="true"

            android:layout_alignParentStart="true" />

    </ScrollView>

</RelativeLayout>







01. 이런 식의 배치임을 확인을 하고 main script로 넘어가자.







02. 코드를 입력한다. 추가된부분(버튼4)만 입력하자.

package com.example.joey.mydbdb;

import android.content.Context;

import android.database.Cursor;

import android.database.sqlite.SQLiteDatabase;

import android.os.Bundle;

import android.support.v7.app.AppCompatActivity;

import android.view.View;

import android.widget.EditText;

import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

 

    EditText editText;

    EditText editText2;

    TextView textView;

    String databaseName;

    SQLiteDatabase database;

    String tableName;

 

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

 

        editText = (EditText) findViewById(R.id.editText);

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

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

    }

    public void button01(View v) {

        databaseName = editText.getText().toString();

        try {

            database = openOrCreateDatabase(databaseName, Context.MODE_PRIVATE, null);

            println("데이터베이스를 열었습니다. :" + databaseName);

        } catch (Exception e) {

            e.printStackTrace();

        }

    }

    public void button02(View v) {

        tableName = editText2.getText().toString();

        try {

            if (database != null) {  //database가 null 값이면 수행

                database.execSQL("CREATE TABLE if not exists " + tableName + "(" // 존재하지 않을때 생성하라

                        + "_id integer PRIMARY KEY autoincrement,"

                        + "name text, "

                        + "age integer, "

                        + "mobile text "

                        + ")");

                println("테이블을 만들었습니다. : " + tableName);

            } else {

                println("데이터베이스를 먼저 열어야 합니다.");

            }

        } catch (Exception e) {

            e.printStackTrace();

        }

    }

    public void button03(View v) {

        try {

            if (tableName == null) {  //tableName이 null 값이면 수행

                tableName = editText2.getText().toString();

            }

            if (database != null) {

                database.execSQL("INSERT INTO " + tableName + "(name, age, mobile) VALUES"

                        + "('김사과', 20, '010-1234-5678')");

                println("데이터를 추가했습니다. ");

            } else {

                println("데이터베이스를 먼저 열어야 합니다.");

            }

        } catch (Exception e) {

            e.printStackTrace();

        }

    }

    public void button04(View v) {

        try {

            if (tableName == null) {  //tableName이 null 값이면 수행

                tableName = editText2.getText().toString();

            }

            if (database != null) {

                Cursor cursor = database.rawQuery("SELECT name, age, mobile FROM "+tableName, null);

 

                int count = cursor.getCount();

                println("결과 레코드의 수 : " + count);

 

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

                    cursor.moveToNext();

                    String name = cursor.getString(0);

                    int age = cursor.getInt(1);

                    String mobile = cursor.getString(2);

 

                    println("레코드 #" + i + " : " + name + ", " + age + ", " + mobile);

 

                }

 

                cursor.close();

 

                println("데이터를 조회했습니다.");

 

            } else {

                println("데이터베이스를 먼저 열어야 합니다.");

            }

 

        } catch (Exception e) {

            e.printStackTrace();

        }

    }

    private void println(String data) {

        textView.append(data + "\n");

    }

}







03. 실행시켜본다.







04. 테이블만들기 버튼을 먼저 눌러본다.







05. 데이터베이스를 열어야한다는 문구를 확인하고 데이터베이스열기 버튼을 클릭한다.







06. 데이터가 열린것을 확인 하고 어떤 데이터가 있는지 데이터조회하기를 클릭한다.







07. 6건의 데이터의 존재를 볼수 있다. 데이터 추가하기를 눌러서 추가해보자.







08. 데이터가 추가된것을 확인한후 조회하기를 다시 눌러보자.







09. 7개의 데이터가 존재함을 확인 할 수 있다. 

 

 

 

 

 

 

 

Jsoup을 다운받아 안드로이드스튜디오(AndroidStudio)에 적용 하는 방법임

 

 

 

 

 

 

 

00. 첨부파일이나 아래 출처로 들어가서 JSOUP을 다운받는다.

※ 첨부파일 출처: http://jsoup.org/download

 

 

 

 

 

 

 

0. Gradle Script 내에 build gradle(Module, app) 에 들어가서 

dependencies {

    compile 'org.jsoup:jsoup:1.8.3'

} //를 추가해준다.

 

 

 

 

03. 마지막으로 Manifest에 가서 internet 허용하는것을 잊지말자.!!!

 

 

 

 

 

 

 

 

 

 

 

 

데이터베이스를 만들고 테이블을 만들어서 데이터를 DB에 추가 하는 방법이다.

 

 

 

 

 

이어지는 코드는 링크 참조:

 

 

 

 

 

 

 

 

 

00. 아래와 같이 만든다. 아래 Text탭을 눌러서 코드를 확인해보자.







01. 코드는 아래와같다.

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:paddingBottom="@dimen/activity_vertical_margin"

    android:paddingLeft="@dimen/activity_horizontal_margin"

    android:paddingRight="@dimen/activity_horizontal_margin"

    android:paddingTop="@dimen/activity_vertical_margin"

    tools:context="com.example.joey.mydbdb.MainActivity">

    <EditText

        android:id="@+id/editText"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_alignParentLeft="true"

        android:layout_alignParentStart="true"

        android:layout_toLeftOf="@+id/button01"

        android:text="customer.db" />

    <Button

        android:id="@+id/button01"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_alignBottom="@+id/editText"

        android:layout_alignParentEnd="true"

        android:layout_alignParentRight="true"

        android:onClick="button01"

        android:text="데이터베이스열기" />

    <EditText

        android:id="@+id/editText02"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:layout_alignBottom="@+id/button02"

        android:layout_alignParentLeft="true"

        android:layout_alignParentStart="true"

        android:layout_toLeftOf="@+id/button02"

        android:text="customer" />

    <Button

        android:id="@+id/button02"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_alignParentEnd="true"

        android:layout_alignParentRight="true"

        android:layout_below="@+id/button01"

        android:onClick="button02"

        android:text="테이블만들기" />

    <Button

        android:id="@+id/button03"

        android:layout_below="@+id/button02"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:onClick="button03"

        android:text="데이터추가하기" />

    <ScrollView

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:layout_alignParentBottom="true"

        android:layout_below="@+id/button03"

        android:id="@+id/scrollView">

        <TextView

            android:id="@+id/textView"

            android:layout_width="match_parent"

            android:layout_height="match_parent"

            android:background="#ffaaffee"

            android:layout_alignTop="@+id/scrollView"

            android:layout_alignParentLeft="true"

            android:layout_alignParentStart="true" />

    </ScrollView>

</RelativeLayout>







02. 메인자바Script로 이동해서 코드를 추가하자.

package com.example.joey.mydbdb;

import android.content.Context;

import android.database.sqlite.SQLiteDatabase;

import android.os.Bundle;

import android.support.v7.app.AppCompatActivity;

import android.view.View;

import android.widget.EditText;

import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    EditText editText;

    EditText editText2;

    TextView textView;

    String databaseName;

    SQLiteDatabase database;

    String tableName;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        editText = (EditText) findViewById(R.id.editText);

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

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

    }

    public void button01(View v) {

        databaseName = editText.getText().toString();

        try {

            database = openOrCreateDatabase(databaseName, Context.MODE_PRIVATE, null);

            println("데이터베이스를 열었습니다. :" + databaseName);

        } catch (Exception e) {

            e.printStackTrace();

        }

    }

    public void button02(View v) {

        tableName = editText2.getText().toString();

        try {

            if (database != null) {  //database가 null 값이면 수행

                database.execSQL("CREATE TABLE if not exists " + tableName + "(" // 존재하지 않을때 생성하라

                        + "_id integer PRIMARY KEY autoincrement,"

                        + "name text, "

                        + "age integer, "

                        + "mobile text "

                        + ")");

                println("테이블을 만들었습니다. : " + tableName);

            } else {

                println("데이터베이스를 먼저 열어야 합니다.");

            }

        } catch (Exception e) {

            e.printStackTrace();

        }

    }

    public void button03(View v) {

        try {

            if (tableName == null) {  //tableName이 null 값이면 수행

                tableName = editText2.getText().toString();

            }

            if (database != null) {

                database.execSQL("INSERT INTO " + tableName + "(name, age, mobile) VALUES"

                        + "('김사과', 20, '010-1234-5678')");

                println("데이터를 추가했습니다. ");

            } else {

                println("데이터베이스를 먼저 열어야 합니다.");

            }

        } catch (Exception e) {

            e.printStackTrace();

        }

    }

    private void println(String data) {

        textView.append(data + "\n");

    }

}







03. 실행시켜본다.







04. 테이블만들기 버튼을 먼저 눌러본다.







05. 텍스트가 뜨는것을 확인하고 데이터베이스열기 버튼을 누른다.







06. 텍스트가 뜨는것을 확인하고(DB를 열고) 테이블만들기를 눌른다.







07. 테이블이 만들어짐을 확인하고 데이터추가하기 버튼을 클릭해서 DB에 데이터를 추가하자.







08. 정상작동됨을 확인 할 수 있다.

 



Sponsored By















+ Recent posts