Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
Tags
- 안드로이드 아이콘 만들기 #안드로이드 vector asset #android vector asset custom #안드로이드 vector background color change #android pathdata editor #vector drawables edit #vector drawable background color #drawable background color #an
- mariadb #mysql
- 안드로이드 앱 아이콘 변경 #안드로이드 앱 아이콘 사이즈 #안드로이드 앱 아이콘 가이드
- android #tip #timer #handler #sendmessagedelayed
- react #리액트 #프로젝트 초기세팅 #초기구현 #클린코드 #cleancode #node #react-node #vite #react 설치 #react 세팅 #쇼핑몰 #eslint 설정 #vite eslint #TailWindCSS란? #테일윈드적용 #TailWindCSS 적용
- my.ini위치 확인
- 크롤링 #텍스트 크롤링 #파이썬 #구름IDE
- nodejs #express #게시판 기능 구현
- 안드로이드 로그인 회원가입 기능 #안드로이드 php 로그인 #userValidate.php #android php 중복체그 #안드로이드 회원가입 id 중복체크 기능 #android login id check
- android hedisql #안드로이드 mariaDB #안드로이드 로그인 권한 #안드로이드 로그인
- 부트스트랩 #bootstrap install #
- procedure does not exist
- 부트스트랩 추가시 오류 #
- 회원가입 구현 #java
- Module not found: Error: Can't resolve '@popperjs/core'
- MySQL(MariaDB)접속 #MariaDB원격 접속 #콘솔에서mysql접속 #원격지에서MySQL #php안드로이드 연동
- php #안드로이드 #로그인&회원가입
- XAMPP #PHP #mysql #Android #연동
- 리눅스 #우분투 포트포워딩 #리눅스 포트포워딩 #우분투22.04 php apache db #mariadb #mysql
- Apache #PHP #마리아DB #아파치
- hedisql #mariadb #mysql #마리아db #암호화 복호화 #aes512 #aes_encrypt #aes_decrypt #hedisql 펑션 생성 #hedisql 프로시저 생성 #hedisql 매개변수 #db 펑션 매개변수 #db 프로시저 #db 함수 #db return
- hedisql limit 1000
- 안드로이드 타이머 #타이머 #handler timer #android handler timer #countdowntimer
- MySQL #안드로이드 로그인기능 #안드로이드 php 오류 #안드로이드 db #
- 터미널 #terminal #aws 인스턴스 접속
- db 프로시저 권한 부여 #db procedure 권한 부여 #
- react #react 프로젝트 생성 #초보 #쉽게 #react 세팅 #react frontend #리액트 기본구조
- mysql #dataloongforcolumn #ER_DATA_TOO_LONG #mariaDB #my.ini찾기 #숨김my.ini찾기 #strict mode 해제 #strict mode
- Android #bottom navigation View #Bottom tab #FRAGMENT #JAVA #Material Design #안드로이드 프래그먼트 바텀 네비게이션 뷰 커스텀 #안드로이드 메뉴 아이콘 커스텀 #안드로이드 메뉴 #프래그먼트 메뉴 #fragment menu i
- 안드로이드 #앱 아이콘 #앱 아이콘 커스텀하기 #앱 로고 만들기 #앱 아이콘 만들기 #android logo custom #android icon custom #android logo 만들기 #image asset #
Archives
- Today
- Total
맨땅에 코딩
[안드로이드] DB insert, select, delete 문 사용법 (간단한 예제 공유) 본문
목차
반응형
1. 안드로이드 내부 DB에 반려동물의 이름, 나이, 몸무게, 성별을 저장(insert)
2. DB 데이터를 읽어와서 표출 (select)
3. DB 데이터 초기화 (delete)
[아래 코드를 보실때 이해를 돕기위해 따로 적어놨습니다]
DATABASE_NAME = "data.db";
TABLE_NAME = "animal"
칼럼들 = {_id, name, age, weight, gender}
넣은 데이터 값 = {haru, 4, 13, w}, { inho, 5, 8, m}
DB로 쓸 java class파일을 하나 생성해줍니다.
[MySQLiteOpenHelper.java]
public class MySQLiteOpenHelper extends SQLiteOpenHelper {
public static final String DATABASE_NAME = "data.db";
public static final int DATABASE_VERSION = 1;
public MySQLiteOpenHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "create table animal" +
"(_id integer primary key autoincrement," +
"name text, age text, weight text, gender text);";
db.execSQL(sql); // select를 제외한 모든 sql 명령어 실행
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
String sql = "drop table if exists animal;";
db.execSQL(sql);
onCreate(db);
}
}
DB, table, 칼럼 명 다 원하시는대로 바꿔서 사용하시면 됩니다
MainActivity에 오셔서 상단부분에 DB 사용을 위해 필요한 코드를 입력해줍니다
[MainActivity.java]
public class MainActivity extends AppCompatActivity {
//DB호출
MySQLiteOpenHelper helper;
SQLiteDatabase db;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
helper = new MySQLiteOpenHelper(this);
db = helper.getWritableDatabase(); // insert 를 위해 필요한 권한
db = helper.getReadableDatabase(); // select 를 위해 필요한 권한
// dbInsert();
// dbSelect();
// dbDelete();
}
private void dbInsert() {
ContentValues dbvalue = new ContentValues();
// 키, 값의 쌍으로 데이터 입력
dbvalue.put("name", "haru");
dbvalue.put("age", "4");
dbvalue.put("weight", "13");
dbvalue.put("gender", "w");
db.insert("animal", null, dbvalue);
// db.execSQL("INSERT INTO animal VALUES(null, 'inho', '5', '8', 'm');");
}
private void dbSelect() {
Cursor cursor;
cursor = db.rawQuery("SELECT * FROM animal", null);
if (cursor != null && cursor.getCount() != 0) {
while (cursor.moveToNext()) {
Log.d("db_id", cursor.getString(0));
Log.d("db_name", cursor.getString(1));
Log.d("db_age", cursor.getString(2));
Log.d("db_weight", cursor.getString(3));
Log.d("db_gender", cursor.getString(4));
}
}
cursor.close();
db.close();
}
private void dbDelete() {
helper = new MySQLiteOpenHelper(this);
db = helper.getWritableDatabase();
helper.onUpgrade(db, 1, 2);
db.close();
Toast.makeText(this, "DB가 초기화 되었습니다", Toast.LENGTH_SHORT).show();
return;
}
}
Insert
insert 방법은 두가지가 있습니다. 한가지 방법은 ContentResolver 가 처리 할 수 있는 값 집합을 저장한 후 insert하는 방법입니다.
ContentValues dbvalue = new ContentValues();
// 키, 값의 쌍으로 데이터 입력
dbvalue.put("name", "haru");
dbvalue.put("age", "4");
dbvalue.put("weight", "13");
dbvalue.put("gender", "w");
db.insert("animal", null, dbvalue);
다른 방법은 execSQL을 이용하여 insert하는 방법입니다.
db.execSQL("INSERT INTO animal VALUES(null, 'inho', '5', '8', 'm');");
편하신대로 골라서 사용하시면 됩니다!
Select, Delete
select, delete부분은 위에 전체 코드를 보시면 이해하시기 어렵지 않으실 겁니다
Log.d로 하단 Log로 db에 데이터가 들어간것을 조회할 수 있습니다.
궁금한점 있으시면 편하게 질문주세요
반응형
'앱 개발 > Java' 카테고리의 다른 글
[안드로이드] 웹 서버에 데이터 요청 (Open API 활용) (0) | 2022.03.30 |
---|---|
[안드로이드] 서버에 데이터 요청 및 응답 (소켓 통신) (0) | 2022.03.29 |
[안드로이드] 요일별 toggle button 만들기 - fragment + 해당 요일 가져오기 (0) | 2022.03.17 |
[안드로이드] CircleProgressBar 그리기 (github 라이브러리 사용) (0) | 2022.03.02 |
[Android] DB데이터 차트 표출 - MPAndroidChart (0) | 2022.02.24 |