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

버튼을 클릭하면 꺼지네요... 문제좀 알려주세요

0 추천
 
DBHelper.java
package com.example.finalproject;

import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.database.DatabaseUtils;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

import java.util.ArrayList;

public class DBHelper extends SQLiteOpenHelper {
    public static final String DATABASE_NAME="MovieList.db";
    public static final String TABLE_NAME="movies";
    public static final String TABLE_ID="id";
    public static final String MOVIE_NAME="name";
    public static final String DIRECTOR_NAME="director";
    public static final String MOVIE_RATING="rating";


    public DBHelper(Context context){
        super(context, DATABASE_NAME,null,1);
    }
    public void onCreate(SQLiteDatabase db){
        db.execSQL("create table moives"+"(id integer primary key,name text,director text,rating text)");
    }

    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){
        db.execSQL("DROP TABLE IF EXISTS moives");
        onCreate(db);
    }

    public boolean insertMovie(String name, String director, String rating){
        SQLiteDatabase db=this.getWritableDatabase();
        ContentValues contentValues = new ContentValues();

        contentValues.put("name",name);
        contentValues.put("director",director);
        contentValues.put("rating",rating);

        db.insert("moives",null,contentValues);
        return true;
    }

    public Cursor getData(int id){
        SQLiteDatabase db = this.getReadableDatabase();
        Cursor res = db.rawQuery("selcet * from moievs where id="+id+"",null);
        return res;
    }

    public int numerOfRows(){
        SQLiteDatabase db=this.getReadableDatabase();
        int numRows=(int) DatabaseUtils
                .queryNumEntries(db,TABLE_NAME);
        return numRows;
    }

    public Integer deleteMovie(Integer id){
        SQLiteDatabase db = this.getWritableDatabase();
        return db.delete("movies","id=?",new String[]{Integer.toString(id)});
    }
    public ArrayList getAllMovies(){
        ArrayList arrayList= new ArrayList();
        SQLiteDatabase db =this.getReadableDatabase();
        Cursor res = db.rawQuery("select * from movies", null);
        res.moveToFirst();
        while(res.isAfterLast() == false){
            arrayList.add(res.getString(res.getColumnIndex(MOVIE_NAME)));
            res.moveToNext();
        }
        return arrayList;
    }


}
 
=====================Logcat 부분 =================================
 Caused by: android.database.sqlite.SQLiteException: no such table: id (code 1 SQLITE_ERROR): , while compiling: select * from id
        at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
        at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:1045)
        at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:652)
        at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:590)
        at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:61)
        at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:37)
        at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:46)
        at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1545)
        at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1484)
        at com.example.finalproject.DBHelper.getAllMovies(DBHelper.java:66)
        at com.example.finalproject.StroageActivity.onCreate(StroageActivity.java:26)
        at android.app.Activity.performCreate(Activity.java:8000)
        at android.app.Activity.performCreate(Activity.java:7984)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3422)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601) 
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85) 
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066) 
        at android.os.Handler.dispatchMessage(Handler.java:106) 
        at android.os.Looper.loop(Looper.java:223) 
        at android.app.ActivityThread.main(ActivityThread.java:7656) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) 
2021-06-20 16:23:39.198 11991-11991/com.example.finalproject I/Process: Sending signal. PID: 11991 SIG: 9

도대체왜 (120 포인트) 님이 2021년 6월 20일 질문

1개의 답변

0 추천
Caused by: android.database.sqlite.SQLiteException: no such table: id 
알려드림
익명사용자 님이 2021년 6월 24일 답변
...