마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

sqlite DB 만드는 방법 질문요ㅠ(구글링 다 따라했는데 안되요..)

0 추천

이클립스로 sqlite DB만들려고 하는데 여러 개발 책 및 구글링해도 잘 되지 않네요

 

src.폴더에 DBManager.java 만들었고요. 코드는 아래처럼 작성했는데,

DDMS > data > data > 클래스명 > database 에서 DB 만들어졌나 확인하려고 하는데 database 폴더 자체가 없어요

만들려고 하는 건 DB정보를 미리 만들어 놓고(여러 개) 앱에서 목록으로 해당 DB 정보를 불러오려고 하거든요.

 

근데 가장 처음인 DB생성부터 계속 고생하고 있어서요. 어디가 문제인지 확인 부탁드립니다. !

(이제 막 개발 배우는 사람이어서 자세하게 설명 부탁드려요ㅠ)

 

DBManager.java 코드

package com.example.zlaproject;

import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DBManager extends SQLiteOpenHelper {

	//전역변수
	SQLiteDatabase db;
	SQLiteOpenHelper helper;

	//데이터베이스 생성
	public DBManager(Context context) {
		super(context, "myDB", null, 1);	//myDB: 데이터베이스 이름
	}

	//테이블 생성
	@Override
	public void onCreate(SQLiteDatabase db) {
		db.execSQL("create table bbb (_id integer primary key autoincrement, "
				+ "brand text, type text,"
				+ "year int, name text, color text, size text, price int");");
	}
	
	//존재하는 DB버전이 다른 경우 실행
	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {		

	}
	
	//데이터베이스 테이블에 데이터 삽입
	public void insert(String name, int brand) {
		
		db = helper.getWritableDatabase();
		
		ContentValues values = new ContentValues();
		values.put("brand","브랜드");
		values.put("type","타입");
		values.put("year",2015);
		values.put("name","이름");
		values.put("color","검정");
		values.put("size","500-600");
		values.put("price",500000);
		
		db.insert("bbb", null, values);
	}
}

 

MainActivity.java 코드

package com.example.zlaproject;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		// Handle action bar item clicks here. The action bar will
		// automatically handle clicks on the Home/Up button, so long
		// as you specify a parent activity in AndroidManifest.xml.
		int id = item.getItemId();
		if (id == R.id.action_settings) {
			return true;
		}
		return super.onOptionsItemSelected(item);
	}
}

 

 

+ 추가 질문 드리면, DB에 레코드를 여러 개 추가하려면 insert문에서 

ContentValues values = new ContentValues();

~~~~

values.put("price",500000);
		
		db.insert("bbb", null, values);

까지 코드 계속 반복해서 넣으면 되는 건가요? values값은 values2, values3으로 변경하고요.

뿌요뿌요 (1,350 포인트) 님이 2015년 1월 21일 질문

1개의 답변

0 추천
 
채택된 답변
MainActivity에서 아무것도 안하셨으니 DB가 만들어질리가 없습니다.

onCreate에다가 다음 코드를 추가하고서 다시 db가 만들어졌는지 확인해보시기 바랍니다.

DBManager dbMgr = new DBManager(getApplicationContext());

 

그리고 질문하신대로 value를 put 한다음 insert까지 해야 하나의 row가 생성되는 겁니다.
Gradler (109,780 포인트) 님이 2015년 1월 22일 답변
뿌요뿌요님이 2015년 1월 28일 채택됨
아하 ㅎㅎㅎ 정말 기초적인 것이었는데 잘 몰랐네요 ^^
감사합니다 잘 해결됐어요 ㅎㅎ
...