안드로이드 스튜디오 sqlite 관련
조회수 945회
안드로이드 스튜디오(2.3.3)로 어플 공부하고 있습니다. sqlite로 디비 구축해서 서비스 이름, 아이디, 비밀번호를 저장하려 하는데 입력이나 수정버튼만 누르면 애플리케이션이 종료됩니다.
public class MainActivity extends AppCompatActivity {
EditText edtName, edtNumber, edtNameResult, edtNumberResult, edtSerName, edtSerNameResult;
Button btnInit, btnInsert, btnUpdate, btnDelete, btnSelect, internet;
SQLiteDatabase db;
DBHelper dbHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setTitle("비밀번호 관리 DB (수정)");
dbHelper = new DBHelper(getApplicationContext());
db = dbHelper.getWritableDatabase();
btnInit.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
db = dbHelper.getWritableDatabase();
dbHelper.onUpgrade(db, 1, 2 );
db.close();
}
});
//여기가 입력버튼
btnInsert.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
db = dbHelper.getWritableDatabase();
db.execSQL("INSERT INTO groupTBL VALUES ( '"
+ edtSerName.getText().toString() + "' , "
+ edtName.getText().toString() + "' , "
+ edtNumber.getText().toString() + ");");
db.close();
Toast.makeText(getApplicationContext(), "입력됨",
Toast.LENGTH_SHORT).show();
btnSelect.callOnClick();
}
});
//여기가 수정버튼
btnUpdate.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
db = dbHelper.getWritableDatabase();
if (edtName.getText().toString() != "") {
db.execSQL("UPDATE groupTBL SET gNumber ="
+ edtNumber.getText() + " WHERE gName = '"
+ edtName.getText().toString() +
" WHERE gSerName = '"
+ edtSerName.getText().toString() +"';");
}
db.close();
Toast.makeText(getApplicationContext(), "수정됨",
Toast.LENGTH_SHORT).show();
btnSelect.callOnClick();
}
});
btnDelete.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
db = dbHelper.getWritableDatabase();
if (edtSerName.getText().toString() != "") {
db.execSQL("DELETE FROM groupTBL WHERE gSerName = '"
+ edtSerName.getText().toString() + "';");
}
db.close();
Toast.makeText(getApplicationContext(), "삭제됨",
Toast.LENGTH_SHORT).show();
btnSelect.callOnClick();
}
});
btnSelect.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
db = dbHelper.getReadableDatabase();
Cursor cursor;
cursor = db.rawQuery("SELECT * FROM groupTBL;", null);
String strSerNames = "서비스이름" + "\r\n" + "--------" + "\r\n";
String strNames = "아이디" + "\r\n" + "--------" + "\r\n";
String strNumbers = "비밀번호" + "\r\n" + "--------" + "\r\n";
while (cursor.moveToNext()) {
strSerNames += cursor.getString(0) + "\r\n";
strNames += cursor.getString(1) + "\r\n";
strNumbers += cursor.getString(2) + "\r\n";
}
edtNameResult.setText(strNames);
edtNumberResult.setText(strNumbers);
edtSerNameResult.setText(strSerNames);
cursor.close();
db.close();
}
});
}
이게 메인액티비티구요 public class DBHelper extends SQLiteOpenHelper {
public DBHelper(Context context) {
super(context, "groupDB", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
try {
db.execSQL("CREATE TABLE groupTBL ( gSerName CHAR(20) PRIMARY KEY, gName TEXT, gNumber INTEGER);");
}catch(Exception ex){
ex.printStackTrace();
}
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS groupTBL");
onCreate(db);
}
}
이게 디비 클래스입니다....!
댓글 입력