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