336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
Android Database
@ SQLite
- My SQL이나 PstgreSQL와 같은 데이터베이스 관리 시스템이지만 서버가 아니라 응용 프로그램에 넣어 사용하는 비교적 가벼운 데이터베이스
- 에스큐얼라이트라고 읽는다
- 일반적인 RDBMS에 비해 대규모 작업에 적합하지 않지만 중소 규모라면 중소 규모라면 속도에 손색이 없다
- 시퀀스가 존재하지 않으므로 AUTOINCREMENT로 자동 증가 시킬 수 있다
Android Database 생성
우선 안드로이드의 새로운 프로젝트를 생성한다 그리고 나서 레이아웃에서 버튼을 하나 생성한다
그리고 나서 main 패키지에서 db라는 패키지를 생성을 해준다
그런 후 클래스에서 SQLiteOpenHelper를 상속해준다
그런 후 생성자와 구현할 메소드를 추가해준다
onCreate와 onUpgrade가 있다
두 가지 메소드의 역할은 위의 주석문의 내용이다
우선 onCreate를 이용해서 테이블이 없을 경우 테이블을 생성하는 구문을 작성한다
위와 같이 스트링 버퍼에 적어 테이블을 생성해줄 수 있다
이제 onupgrade에 Toast를 이용해서 테스트를 해본다
이제 메인에 가서 Dialog로 database의 이름을 입력 받아보자
AlertDialog를 선언하고 생성과 취소 버튼을 만들어준다
이제 DB 이름을 입력받기 위해 TextView를 하나 생성한다
그런 후 dialog에 view로써 추가를 해주면 된다
이제 생성 버튼을 누르면 확인해보기 위해서 Toast로 띄어본다
실행을 해본다
위와 같이 문제없이 실행되는 것을 볼 수 있다
이제 DBHelper에서 테이블이 생성이 잘 되었는지를 확인하기 위해서 Toast를 추가해준다
이제 생성 버튼을 눌렀을 때 생성하는 로직을 작성한다
DBHelper의 생성자를 이용해서 생성을 해준다 그런 후 DBHelper에 하나를 추가해준다
그런 후 다시 위의 생성 버튼으로 가서 testDB를 추가해준다
그런 후 실행을 해본다
Test라는 DB를 생성하기 위해서 이름을 입력하고 생성 버튼을 눌러본다
그럼 위와 같이 DB 생성 완료라는 Toast가 뜬 것을 통해서 DB가 문제없이 생성된 것을 볼 수 있다
Test라는 DB는 한번만 생성이 되므로 생성을 다시 해서 Test로 한다면 Toast가 뜨지 않을 것이다
* MainActivity - DB 생성
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
public class MainActivity extends AppCompatActivity {
private Button btnCreateDatabase;
private DBHelper dbHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnCreateDatabase = (Button) findViewById(R.id.btnCreateDatabase);
btnCreateDatabase.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final EditText etDBName = new EditText(MainActivity.this);
etDBName.setHint("DB명을 입력하세요");
// Dialog로 database의 이름을 입력 받음
AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);
dialog .setTitle("Database 이름 입력")
.setMessage("Database 이름 입력")
.setView(etDBName)
.setPositiveButton("생성", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if ( etDBName.getText().toString().length() > 0 ) {
dbHelper = new DBHelper(MainActivity.this ,
etDBName.getText().toString(),
null,
1);
dbHelper.testDB();
}
}
})
.setNeutralButton("취소", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
}).create().show();
}
});
}
}
|
cs |
* DBHelper - DB 생성
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
public class DBHelper extends SQLiteOpenHelper {
private Context context;
public DBHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
this.context = context;
}
/**
* DB가 존재하지 않을 때, 딱 한번 실행된다
* DB를 생성하는 역할
* @param db
*/
@Override
public void onCreate(SQLiteDatabase db) {
StringBuffer sb = new StringBuffer();
sb.append( " CREATE TABLE TEST_TABLE ( ");
sb.append( " _ID INTEGER PRIMARY KEY AUTOINCREMENT, ");
sb.append( " NAME TEXT, " );
sb.append( " AGE INTEGER, ");
sb.append( " PHONE TEXT); ");
// SQL 실행
db.execSQL(sb.toString());
Toast.makeText(context, "DB 생성 완료", Toast.LENGTH_SHORT).show();
}
/**
* Application의 버전이 올라가 Table 구조가 변경되었을 때 실행
* @param db
* @param oldVersion
* @param newVersion
*/
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Toast.makeText(context, "Version 올라감", Toast.LENGTH_SHORT).show();
}
public void testDB() {
SQLiteDatabase db = getReadableDatabase();
}
}
|
cs |
'[ Developer ] > Android' 카테고리의 다른 글
[Android] 안드로이드 SQLite 데이터 조회 (0) | 2016.07.27 |
---|---|
[Android] 안드로이드 DB SQLite 데이터 입력 (0) | 2016.07.26 |
[Android] 안드로이드 APK 파일 생성하기 (0) | 2016.07.24 |
[Android] 안드로이드 View Pager 활용 뷰 페이저 (0) | 2016.07.23 |
[Android] 안드로이드 Fragment & View Pager 프래그먼트, 뷰 페이저 (0) | 2016.07.22 |