티스토리 뷰
UserDBStructure.java
package com.jwsoft.javaproject;
import android.provider.BaseColumns;
public class UserDBStructure implements BaseColumns {
public static final String TABLE_NAME = "user";
public static final String COLUMN_NAME = "name";
public static final String COLUMN_PHONE = "phone";
public static final String COLUMN_AGE = "age";
public static final String COLUMN_GENDER = "gender";
public static final String CREATE_TABLE_USER = "CREATE TABLE IF NOT EXISTS " +
TABLE_NAME + "(" +
BaseColumns._ID + " INTEGER PRIMARY KEY NOT NULL, " +
COLUMN_NAME + " TEXT NOT NULL, " +
COLUMN_PHONE + " TEXT NOT NULL, " +
COLUMN_AGE + " TEXT NOT NULL, " +
COLUMN_GENDER + " TEXT NOT NULL)";
public static final String DROP_TABLE_USER = "DROP TABLE IF EXISTS " + TABLE_NAME;
}
UserDBManager.java
package com.jwsoft.javaproject;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import androidx.annotation.Nullable;
public class UserDBManager {
public static final int DATABASE_VERSION = 1;
DBHelper dbHelper;
public UserDBManager(Context context, String fileName) {
dbHelper = new DBHelper(context, fileName, null, DATABASE_VERSION);
}
public long insert(ContentValues values) {
SQLiteDatabase db = dbHelper.getWritableDatabase();
return db.insert(UserDBStructure.TABLE_NAME, null, values);
}
public Cursor query(String[] columns,
String selection,
String[] selectionArgs,
String orderBy) {
SQLiteDatabase db = dbHelper.getReadableDatabase();
return db.query(UserDBStructure.TABLE_NAME,
columns,
selection,
selectionArgs,
null,
null,
orderBy
);
}
public int delete(String whereClause, String[] whereArgs) {
SQLiteDatabase db = dbHelper.getReadableDatabase();
return db.delete(UserDBStructure.TABLE_NAME, whereClause, whereArgs);
}
public int update(ContentValues values, String whereClause, String[] whereArgs) {
SQLiteDatabase db = dbHelper.getReadableDatabase();
return db.update(UserDBStructure.TABLE_NAME, values, whereClause, whereArgs);
}
class DBHelper extends SQLiteOpenHelper {
public DBHelper(@Nullable Context context,
@Nullable String name,
@Nullable SQLiteDatabase.CursorFactory factory,
int version) {
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(UserDBStructure.CREATE_TABLE_USER);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL(UserDBStructure.DROP_TABLE_USER);
onCreate(db);
}
@Override
public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) {
onUpgrade(db, oldVersion, newVersion);
}
}
}
MainActivity.java
package com.jwsoft.javaproject;
import androidx.appcompat.app.AppCompatActivity;
import android.content.ContentValues;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.BaseColumns;
import android.util.Log;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
UserDBManager userDBManager = new UserDBManager(getApplicationContext(), "MyDB.db");
// insert
ContentValues values = new ContentValues();
values.put(UserDBStructure.COLUMN_NAME, "James Kim");
values.put(UserDBStructure.COLUMN_PHONE, "010-1234-5678");
values.put(UserDBStructure.COLUMN_AGE, "30");
values.put(UserDBStructure.COLUMN_GENDER, "male");
Long resultInsert = userDBManager.insert(values);
Log.e("insert : ", resultInsert.toString());
// query
String[] columns = {
BaseColumns._ID,
UserDBStructure.COLUMN_NAME,
UserDBStructure.COLUMN_PHONE,
UserDBStructure.COLUMN_AGE,
UserDBStructure.COLUMN_GENDER
};
String selection = UserDBStructure.COLUMN_AGE + " = ?";
String[] selectionArgs = {"30"};
String orderBy = BaseColumns._ID + " ASC";
Cursor cursor = userDBManager.query(columns, selection, selectionArgs, orderBy);
while (cursor.moveToNext()) {
int id = cursor.getInt(cursor.getColumnIndex(BaseColumns._ID));
String name = cursor.getString(cursor.getColumnIndex(UserDBStructure.COLUMN_NAME));
String phone = cursor.getString(cursor.getColumnIndex(UserDBStructure.COLUMN_PHONE));
String age = cursor.getString(cursor.getColumnIndex(UserDBStructure.COLUMN_AGE));
String gender = cursor.getString(cursor.getColumnIndex(UserDBStructure.COLUMN_GENDER));
Log.e("query : ", id + " " + name + " " + phone + " " + age + " " + gender);
}
// delete
String whereClause = UserDBStructure.COLUMN_NAME + " = ? AND " + BaseColumns._ID + " = ?";
String[] whereArgs = {"James Kim", "5"};
int resultDelete = userDBManager.delete(whereClause, whereArgs);
Log.e("delete : ", Integer.toString(resultDelete));
// update
values = new ContentValues();
values.put(UserDBStructure.COLUMN_NAME, "Jason Park");
String whereClauseUpdate = BaseColumns._ID + " = ? OR " + BaseColumns._ID + " = ?";
String[] whereArgsUpdate = {"2", "3"};
int resultUpdate = userDBManager.update(values, whereClauseUpdate, whereArgsUpdate);
Log.e("update : ", Integer.toString(resultUpdate));
}
}
MainActivity.java
package com.jwsoft.javaproject;
import androidx.appcompat.app.AppCompatActivity;
import android.content.ContentValues;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.BaseColumns;
import android.util.Log;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
UserDBManager userDBManager = new UserDBManager(getApplicationContext(), "MyDB.db");
// insert
ContentValues values = new ContentValues();
values.put(UserDBStructure.COLUMN_NAME, "James Kim");
values.put(UserDBStructure.COLUMN_PHONE, "010-1234-5678");
values.put(UserDBStructure.COLUMN_AGE, "30");
values.put(UserDBStructure.COLUMN_GENDER, "male");
Long resultInsert = userDBManager.insert(values);
Log.e("insert : ", resultInsert.toString());
// query
String[] columns = {
BaseColumns._ID,
UserDBStructure.COLUMN_NAME,
UserDBStructure.COLUMN_PHONE,
UserDBStructure.COLUMN_AGE,
UserDBStructure.COLUMN_GENDER
};
String selection = UserDBStructure.COLUMN_AGE + " = ?";
String[] selectionArgs = {"30"};
String orderBy = BaseColumns._ID + " ASC";
Cursor cursor = userDBManager.query(columns, selection, selectionArgs, orderBy);
while (cursor.moveToNext()) {
int id = cursor.getInt(cursor.getColumnIndex(BaseColumns._ID));
String name = cursor.getString(cursor.getColumnIndex(UserDBStructure.COLUMN_NAME));
String phone = cursor.getString(cursor.getColumnIndex(UserDBStructure.COLUMN_PHONE));
String age = cursor.getString(cursor.getColumnIndex(UserDBStructure.COLUMN_AGE));
String gender = cursor.getString(cursor.getColumnIndex(UserDBStructure.COLUMN_GENDER));
Log.e("query : ", id + " " + name + " " + phone + " " + age + " " + gender);
}
// delete
String whereClause = UserDBStructure.COLUMN_NAME + " = ? AND " + BaseColumns._ID + " = ?";
String[] whereArgs = {"James Kim", "5"};
int resultDelete = userDBManager.delete(null, null);
Log.e("delete : ", Integer.toString(resultDelete));
// update
values = new ContentValues();
values.put(UserDBStructure.COLUMN_NAME, "Jason Park");
String whereClauseUpdate = BaseColumns._ID + " = ? OR " + BaseColumns._ID + " = ?";
String[] whereArgsUpdate = {"2", "3"};
int resultUpdate = userDBManager.update(values, whereClauseUpdate, whereArgsUpdate);
Log.e("update : ", Integer.toString(resultUpdate));
}
}
int resultDelete = userDBManager.delete(whereClause, whereArgs); 에서
int resultDelete = userDBManager.delete(null, null); 로 수정
'Android > Java' 카테고리의 다른 글
[Java] Intent (0) | 2020.07.18 |
---|---|
[Java] CardView (0) | 2020.07.11 |
[Java] ViewModel (0) | 2020.07.10 |
[Java] DataBinding + LiveData + BindingAdapter (0) | 2020.07.09 |
[Java] DataBinding + LiveData (0) | 2020.07.09 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- View
- JSONArray
- recyclerview
- MVVM
- fragment
- Intent
- Vue.js #Vue.js + javascript
- JSONObject
- James Kim
- Kotlin
- Design Pattern
- XML
- Architecture Pattern
- activity
- Livedata
- ViewPager2
- handler
- 안드로이드
- 자바
- 혀가 길지 않은 개발자
- ArrayList
- 코틀린
- CoordinatorLayout
- ViewModel
- DataBinding
- coroutine
- java
- Android
- TabLayout
- 안드로이드 #코틀린 #Android #Kotlin
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함