1. DatabaseHelper 클래스를 만듭니다.
2. DatabaseHelper 클래스 코딩하기
package com.example.sqlite_sample; 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 DatabaseHelper extends SQLiteOpenHelper { public static final String DATABASE_NAME = "Student.db"; // 1. 데이터베이스 네임 public static final String TABLE_NAME = "students"; //2. 테이블 네임 // 3. 테이블 항목 네임 public static final String COL_1 = "ID"; public static final String COL_2 = "Name"; public static final String COL_3 = "Surname"; public static final String COL_4 = "Marks"; public DatabaseHelper(@Nullable Context context) { super(context, DATABASE_NAME, null, 1); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("create table "+ TABLE_NAME + " (ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT, SURNAME TEXT, MARKS TEXT)"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS "+TABLE_NAME); onCreate(db); } // 데이터 추가하기 public boolean insertData(String name, String surname, String marks){ SQLiteDatabase db = this.getWritableDatabase(); ContentValues contentValues = new ContentValues(); contentValues.put(COL_2,name); contentValues.put(COL_3,surname); contentValues.put(COL_4,marks); long result = db.insert(TABLE_NAME, null,contentValues); if(result == -1) return false; else return true; } // 데이터 보여주기(읽어오기) public Cursor getAllData() { SQLiteDatabase db = this.getWritableDatabase(); Cursor res = db.rawQuery("select * from "+TABLE_NAME, null); return res; } //데이터 수정하기(업데이트) public boolean updateDatat(String id, String name, String surname, String marks){ SQLiteDatabase db = this.getWritableDatabase(); ContentValues contentValues = new ContentValues(); contentValues.put(COL_1,id); contentValues.put(COL_2,name); contentValues.put(COL_3,surname); contentValues.put(COL_4,marks); db.update(TABLE_NAME,contentValues,"ID = ?",new String[] { id }); return true; } // 데이터 삭제하기 public Integer deleteData(String id){ SQLiteDatabase db = this.getWritableDatabase(); return db.delete(TABLE_NAME,"ID = ?",new String[] {id}); } }2. 레이아웃 XML
3. MainActivity.java 코딩하기
package com.example.sqlite_sample; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; import android.database.Cursor; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends AppCompatActivity { DatabaseHelper myDb; EditText editName, editSurname, editMarks, editID; Button btnAddData, btnviewall, btnUpdate, btnDelete; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myDb = new DatabaseHelper(this); editName = findViewById(R.id.editText_name); editSurname = findViewById(R.id.editText_surname); editMarks = findViewById(R.id.editText_marks); editID = findViewById(R.id.editText_id); btnAddData = findViewById(R.id.button_add); btnviewall = findViewById(R.id.button_viewall); btnUpdate= findViewById(R.id.button_update); btnDelete = findViewById(R.id.button_delete); AddData(); // 데이터 추가하기 viewAll(); // 데이터 보여주기 UpdateData(); // 데이터 업데이트(수정) DeleteData(); // 데이터 삭제하기 } // 데이터베이스에 추가하기 public void AddData() { btnAddData.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { boolean isInserted = myDb.insertData(editName.getText().toString(), editSurname.getText().toString(), editMarks.getText().toString() ); if(isInserted == true) Toast.makeText(MainActivity.this,"Data Inserted",Toast.LENGTH_LONG).show(); else Toast.makeText(MainActivity.this,"Data not Inserted",Toast.LENGTH_LONG).show(); } }); } //데이터베이스 보여주기 public void viewAll() { btnviewall.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Cursor res = myDb.getAllData(); if(res.getCount() == 0) { //show message showMessage("에러","데이터를 찾을수 없다."); return; } StringBuffer buffer = new StringBuffer(); while(res.moveToNext()){ buffer.append("id : "+ res.getString(0) + "\n"); buffer.append("name : "+ res.getString(1) + "\n"); buffer.append("surname : "+ res.getString(2) + "\n"); buffer.append("marks : "+ res.getString(3) + "\n\n"); } // Show all data showMessage("데이터",buffer.toString()); } }); } public void UpdateData(){ btnUpdate.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { boolean isUpdated = myDb.updateDatat(editID.getText().toString(),editName.getText().toString(),editSurname.getText().toString(),editMarks.getText().toString()); if(isUpdated == true) Toast.makeText(MainActivity.this,"Data Updated",Toast.LENGTH_LONG).show(); else Toast.makeText(MainActivity.this,"Data not Updated",Toast.LENGTH_LONG).show(); } }); } public void DeleteData(){ btnDelete.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Integer deleteRows = myDb.deleteData(editID.getText().toString()); if(deleteRows > 0 ) Toast.makeText(MainActivity.this,"Data Deleted",Toast.LENGTH_LONG).show(); else Toast.makeText(MainActivity.this,"Data not Deleted",Toast.LENGTH_LONG).show(); } }); } public void showMessage(String title, String Message){ AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setCancelable(true); builder.setTitle(title); builder.setMessage(Message); builder.show(); } }2021.04.08 - [프로그래밍/안드로이드 앱프로그래밍] - 안드로이드 sqlite 추가하기 insert 소스코드
2021.04.08 - [프로그래밍/안드로이드 앱프로그래밍] - 안드로이드 sqlite 추가하고 보여주기
2021.04.08 - [프로그래밍/안드로이드 앱프로그래밍] - 안드로이드 SQLite 업데이트(수정하기)