dbcon.java
package com.example.datainfo;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteConstraintException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class Dbcon {
public static final String KEY_NUM = "num";
public static final String KEY_NAME= "name";
public static final String KEY_HEIGHT = "height";
public static final String KEY_KG= "kg";
public static final String KEY_AGE = "age";
public static final String DATABASE_NAME = "db5";
public static final String TABLE_NAME = "member3";
private static final int DATABASE_VERSION = 2;
private SQLiteDatabase mDb;
private DatabaseHelper mDbHelper;
private static final String DATABASE_CREATE = "CREATE TABLE member3("
+ "num Integer primary key autoincrement,"
+ "name Text not null,"
+ "height text not null,"
+ "kg text not null,"
+ "age text not null)";//학생 데이터베이스 추가
private final Context context;
private ContentValues insertInitialValues;
//생성자
public Dbcon(Context context) {
this.context = context;
}
//DB 쓰기용 오픈
public Dbcon openWritable() throws SQLException {
mDbHelper = new DatabaseHelper(context);
mDb = mDbHelper.getWritableDatabase();
return this;
}
//DB 읽기용 오픈
public Dbcon openReadable() throws SQLException {
mDbHelper = new DatabaseHelper(context);
mDb = mDbHelper.getReadableDatabase();
return this;
}
//DB 닫기
public void close() {
mDbHelper.close();
}
//INSERT 문
public long insertTitle(String name,String height, String kg, String age) throws SQLiteConstraintException {
insertInitialValues = new ContentValues();
insertInitialValues.put(KEY_NAME, name);
insertInitialValues.put(KEY_HEIGHT, height);
insertInitialValues.put(KEY_KG, kg);
insertInitialValues.put(KEY_AGE, age);
return mDb.insertOrThrow(TABLE_NAME, null, insertInitialValues);
}
//SELECT 문
public Cursor fetchData() {
return mDb.query(
TABLE_NAME,
new String[] {KEY_NUM,KEY_NAME,KEY_HEIGHT,KEY_KG,KEY_AGE},
null,
null,
null,
null,
null);
}
//delete문
public void delTitle(){
mDb.delete(TABLE_NAME, null, null);
}
//테이블을 관리하는 클래스
private static class DatabaseHelper extends SQLiteOpenHelper {
//생성자
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
// TODO Auto-generated constructor stub
}
//테이블 생성
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL(DATABASE_CREATE);//사용자디비
}
//테이블 업그레이드
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
}
}
--------------------------------------------------------
MainActivity.java
package com.example.datainfo;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity {
AlertDialog.Builder ad;
EditText name, height, kg, age;
Button save;
Dbcon dbcon;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dbcon = new Dbcon(this);
ad = new AlertDialog.Builder(this);
name = (EditText)findViewById(R.id.editText1);
height = (EditText)findViewById(R.id.editText2);
kg = (EditText)findViewById(R.id.editText3);
age = (EditText)findViewById(R.id.editText4);
save = (Button)this.findViewById(R.id.button1);
save.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v) {
Intent intent= new Intent(MainActivity.this,ResultActivity.class);
startActivity(intent);
}
});
}
}
------------------------
ResultActivity.java
결과 화면
package com.example.datainfo;
import android.database.Cursor;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;
public class ResultActivity extends MainActivity {
TextView text;
String message = new String();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_result);
text = (TextView)this.findViewById(R.id.textView11);
// TODO Auto-generated method stub
try{
dbcon.openWritable();
dbcon.insertTitle(name.getText().toString(), height.getText().toString(),kg.getText().toString(), age.getText().toString());
ad.setMessage("입력 성공");
ad.show();
}catch(Exception ex){
Toast t = Toast.makeText(ResultActivity.this, ex.toString(), Toast.LENGTH_LONG);
t.show();
}
Cursor cursor = dbcon.fetchData();
while(!cursor.isLast()){
cursor.moveToNext();
message = message.concat("번호 : " + cursor.getString(0) + "\n"
+ "이름 : " + cursor.getString(1) + "\n"
+ "키: " + cursor.getString(2) + "\n"
+ "몸무게 : " + cursor.getString(3) + "\n"
+ "나이 : " + cursor.getString(4)+
"------------------\n");
}
cursor.close();
dbcon.close();
text.setText(message);
//입력박스 초기화
/*
message="";
name.setText("");
height.setText("");
kg.setText("");
age.setText("");
*/
}
}
자동으로 증가되느 번호만 나오고 다른
입력정보는 하나도 안나와요...
왜그러는걸까요 ..