안드로이드에서 SQLite를 활용해서 db생성, insert문, delete문, update문, select문을 사용하는 방법을 정리했습니다.
1. DB 생성
DBHelper.java 파일을 하나 생성하고 아래의 코드를 복붙합니다.
public class DBHelper extends SQLiteOpenHelper {
public DBHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "CREATE TABLE if not exists mytable ("
+ "_id integer primary key autoincrement,"
+ "txt text);";
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
String sql = "DROP TABLE if exists mytable";
db.execSQL(sql);
onCreate(db);
}
}
db안에 mytable이라는 table을 생성하고, txt라는 text타입의 column을 생성했습니다.
여기서 _id integer은 SQLite를 사용하기 위해서는 무조건 필수인 column입니다.
없으면 "column '_id' does not exist"라는 에러가 뜨기 때문에 조심하세요.
그리고 나서 MainActivity.java에 다음을 처럼 코드를 추가합니다.
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
DBHelper helper;
SQLiteDatabase db;
helper = new DBHelper(MainActivity.this, "newdb.db", null, 1);
db = helper.getWritableDatabase();
helper.onCreate(db);
}
}
newdb라는 database에 mytable이라는 table을 생성하고, 수정가능하게 db를 불러옵니다.
이렇게 하면 db 생성은 끝입니다.
2. INSERT문 사용법
insert문은 간단합니다. 첫번째로는 ContentValues를 만들어서 column이름과 data를 넣고 db.insert()함수를 사용하면 됩니다.
ContentValues values = new ContentValues();
values.put("txt","HelloLlama");
db.insert("mytable",null,values);
execSQL를 사용한 방법도 있습니다.
String sql = "INSERT INTO mytable('txt') values('Bulgogi');";
db.execSQL(sql);
3. DELETE문 사용법
db.delete() 함수를 사용해서 구현할 수 있습니다.
db.delete("mytable","txt=?",new String[]{"Gogi"});
만약 where clauses가 1개 이상이라면 아래와 같이 AND문으로 구현 가능합니다.
db.delete("mytable","txt=? AND num=?",new String[]{"Gogi","1"});
sql문을 변경해서 execSQL함수를 사용해 DELETE를 구현할 수도있습니다.
String sql3 = "DELETE FROM mytable WHERE txt='Bulgogi';";
db.execSQL(sql3);
4. UPDATE문 사용법
db.update() 함수를 사용해서 구현할 수 있습니다.
ContentValues values = new ContentValues();
values.put("txt","Chicken");
db.update("mytable",values,"txt=?", new String[]{"HelloLlama"});
execSQL함수를 사용해서 구현할 수도 있습니다. 내용은 생략하겠습니다.
5. SELECT문 사용법
db.query() 함수를 사용해서 구현할 수 있습니다.
Cursor c = db.query("mytable",null,null,null,null,null,null,null);
while(c.moveToNext()){
System.out.println("txt : "+c.getString(c.getColumnIndex("txt")));
}
SELECT문이 잘 실행되는것을 확인할 수 있습니다.
rawQuery() 함수를 사용해서 sql문으로 구현도 가능합니다.
String sql = "select * from mytable;";
Cursor c = db.rawQuery(sql, null);
while(c.moveToNext()){
System.out.println("txt : "+c.getString(c.getColumnIndex("txt")));
}
기본적인 SQLite 사용법을 정리했습니다.
글이 너무 길어져서 여기서 마무리했습니다.
다음 포스팅에서 SELECT문으로 가져온 데이터를 listview에 넣는 방법을 정리하겠습니다.
잘못된 내용이 있다면 언제든지 댓글이나 메일로 알려주시면 감사하겠습니다.
이 포스팅이 도움이 되었다면 공감 부탁드립니다.
궁금한 점은 언제든지 댓글 남겨주시면 답변해드리겠습니다:D
'major > Android' 카테고리의 다른 글
[Android] 애드몹(Admob) 배너 광고 달기 - 테스트 광고 (2) | 2020.03.17 |
---|---|
[Android] SQLite 값 listview로 보여주기 - SimpleCursorAdapter 사용법 (6) | 2020.03.16 |
[Android] Postman으로 FCM Push 알림 보내기 (2) | 2020.03.15 |
[Android] FCM Push 알림 기능 구현하기 (6) | 2020.03.15 |
[Android] 차트 그리기 MPAndroidChart - LineChart (9) | 2020.03.07 |