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

SQL을 이용한 로그인 구현 질문입니다.

0 추천
login.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        String id = edtName.getText().toString();
        String pw = edtPW.getText().toString();
        Cursor cursor;

        if(id.length() == 0 || pw.length() == 0) {
            Toast toast = Toast.makeText(Login.this," ID와 PW를 입력하세요 ", Toast.LENGTH_SHORT);
            toast.show();
            return;
        }

        cursor = mysqlDB.rawQuery("SELECT gName FROM contacts WHERE gName = '" + id + "';", null);

        if(cursor.getCount() != 1){
            //아이디가 틀렸습니다.
            Toast toast = Toast.makeText(Login.this, "존재하지 않는 아이디입니다.", Toast.LENGTH_SHORT);
            toast.show();
            return;
        }

        cursor = mysqlDB.rawQuery("SELECT gPw FROM contacts WHERE gPw = '" + pw + "';", null);
        cursor.moveToNext();
        if(!pw.equals(cursor.getString(0))){
            Toast toast = Toast.makeText(Login.this, "비밀번호가 틀렸습니다.", Toast.LENGTH_SHORT);
            toast.show();
        }else{
            Toast toast = Toast.makeText(Login.this, "로그인성공", Toast.LENGTH_SHORT);
            toast.show();
            Intent intent = new Intent(Login.this, Start.class);
            startActivity(intent);
            finish();
        }
        cursor.close();

    }
});
DB이용해서 회원가입하고 내역조회하고 초기화까지 구현했는데 로그인장면에서 무엇때문이지 자꾸 다운되네요 .. 쿼리문을 잘못 입력한것인지.. 무엇인지 잘 모르겠습니다. EditText id쪽 확인을 해봐야하나요 
익명사용자 님이 2019년 11월 27일 질문

1개의 답변

0 추천
DB를 읽을 수 있는 권한을 줘야합니다.

SQLiteDatabase 로 예를 들면

SQLiteDatabase db;

DBHelper helper = new DBHelper(~~~~~~~

db = helper.getWritableDatabase();

하고 나서

Cursor cursor =  db.rawQuery("SELECLECLEL!~~!~!~");

이렇게 해줘야해요..

db.close();
꿀개 (2,440 포인트) 님이 2019년 11월 27일 답변
제가 한 걸로 드리자면,
DBHelper dbHelper = new DBHelper(this, "text", null, 1);
SQLiteDatabase db;
db = dbHelper.getWritableDatabase();
        if (dbHelper.getCount() !=0) {
            Intent intent = new Intent(LoadingActivity.this, MyService.class);
            startService(intent);
        }
        db.close();
...