· 6 years ago · Sep 05, 2019, 08:20 PM
1package com.example.boostcoursepractice;
2
3import android.content.Context;
4import android.database.Cursor;
5import android.database.sqlite.SQLiteDatabase;
6import android.database.sqlite.SQLiteOpenHelper;
7import android.graphics.Bitmap;
8import android.graphics.BitmapFactory;
9import android.os.AsyncTask;
10import android.os.Bundle;
11
12import android.util.Log;
13import android.view.View;
14
15import androidx.appcompat.app.AppCompatActivity;
16
17import android.widget.Button;
18import android.widget.EditText;
19import android.widget.ImageView;
20import android.widget.TextView;
21
22import java.net.URL;
23import java.util.HashMap;
24
25public class MainActivity extends AppCompatActivity {
26
27 EditText editText;
28 EditText editText2;
29 EditText editText3;
30 EditText editText4;
31 EditText editText5;
32 TextView textView;
33 SQLiteDatabase database;
34
35 @Override
36 protected void onCreate(Bundle savedInstanceState) {
37 super.onCreate(savedInstanceState);
38 setContentView(R.layout.activity_main);
39
40 editText = (EditText) findViewById(R.id.editText);
41 editText2 = (EditText) findViewById(R.id.editText2);
42 editText3 = (EditText) findViewById(R.id.editText3);
43 editText4 = (EditText) findViewById(R.id.editText4);
44 editText5 = (EditText) findViewById(R.id.editText5);
45
46 textView = (TextView) findViewById(R.id.textView);
47
48 Button button = (Button) findViewById(R.id.button);
49
50 button.setOnClickListener(new View.OnClickListener() {
51 @Override
52 public void onClick(View view) {
53 String databaseName = editText.getText().toString();
54 openDatabase(databaseName);
55 }
56 });
57
58 Button button2 = (Button) findViewById(R.id.button2);
59
60 button2.setOnClickListener(new View.OnClickListener() {
61 @Override
62 public void onClick(View view) {
63 String tableName = editText2.getText().toString();
64 createTable(tableName);
65 }
66 });
67
68 Button button3 = (Button) findViewById(R.id.button3);
69
70 button3.setOnClickListener(new View.OnClickListener() {
71 @Override
72 public void onClick(View view) {
73 String name = editText3.getText().toString().trim();
74 String ageStr = editText4.getText().toString().trim();
75 String mobile = editText5.getText().toString().trim();
76
77 int age = -1;
78 try {
79 age = Integer.parseInt(ageStr);
80 } catch (Exception e) {
81 e.printStackTrace();
82 }
83
84 insertData(name, age, mobile);
85
86 }
87 });
88
89 Button button4 = (Button) findViewById(R.id.button4);
90 button4.setOnClickListener(new View.OnClickListener() {
91 @Override
92 public void onClick(View view) {
93 String tableName = editText2.getText().toString();
94 selectData(tableName);
95 }
96 });
97 }
98
99 public void openDatabase(String databaseName) {
100 println("openDatabase() 호출됨");
101
102 /*
103 database = openOrCreateDatabase(databaseName, MODE_PRIVATE, null);
104
105 if (database != null) {
106 println("데이터 베이스 오픈됨");
107 }
108 */
109
110 DatabaseHelper helper = new DatabaseHelper(this, databaseName, null, 4 );
111 database = helper.getWritableDatabase();
112
113 }
114
115 public void createTable(String tableName) {
116 println("crateTable() 호출됨");
117
118 if (database != null) {
119 String sql = "create table if not exists " + tableName + "(_id integer PRIMARY KEY autoincrement , name text, age integer, mobile text) ";
120 database.execSQL(sql);
121
122 println("테이블 생성됨.");
123 } else {
124 println("먼저 데이터베이스를 오픈하세요");
125 }
126 }
127
128 public void insertData(String name, int age, String mobile) {
129 println("insertData() 호출됨");
130
131 if (database != null) {
132 String sql = "insert into customer(name, age, mobile) values(?,?,?)";
133 Object[] params = {name, age, mobile};
134
135 database.execSQL(sql, params);
136 println("데이터 추가됨");
137 } else {
138 println("먼저 데이터베이스를 오픈하세요.");
139 }
140 }
141
142 public void selectData(String tableName) {
143 println("selectData() 호출됨");
144
145 if (database != null) {
146 String sql = "select name, age, mobile from " + tableName;
147 Cursor cursor = database.rawQuery(sql, null);
148 println("조회된 데이터 개수 : " + cursor.getCount());
149
150 for (int i = 0; i < cursor.getCount(); i++) {
151 cursor.moveToNext();
152 String name = cursor.getString(0);
153 int age = cursor.getInt(1);
154 String mobile = cursor.getString(2);
155
156 println("#" + i + "->" + name + ", " + age + ", " + mobile);
157 }
158
159 cursor.close();
160 } else {
161 println("먼저 데이터베이스를 오픈하세요.");
162 }
163 }
164
165
166 public void println(String s) {
167 textView.append(s + "\n");
168 }
169
170 class DatabaseHelper extends SQLiteOpenHelper {
171
172 public DatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
173 super(context, name, factory, version);
174 }
175
176 @Override
177 public void onCreate(SQLiteDatabase sqLiteDatabase) {
178 println("onCreate() 호출됨");
179
180 String tableName = "customer";
181
182 String sql = "create table if not exists " + tableName + "(_id integer PRIMARY KEY autoincrement , name text, age integer, mobile text) ";
183 sqLiteDatabase.execSQL(sql);
184
185 println("테이블 생성됨.");
186
187 }
188
189 @Override
190 public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
191 println("onUpgrade() 호출됨" + i + ", " + i1) ;
192
193 if(i1 > 1)
194 {
195 String tableName = "customer" ;
196 sqLiteDatabase.execSQL("drop table if exists " + tableName);
197 }
198 }
199
200 @Override
201 public void onOpen(SQLiteDatabase db) {
202 super.onOpen(db);
203
204 println("onOpen() 실행됨");
205 }
206
207
208 }
209
210
211}