SQLiteDatabase 질문합니다..ㅠㅠ 궁금한점과 오류가 생기는 원인이 궁금해요.. 4일째 반복중 고수님들 도와주세요!!!

조회수 895회

목표 : 제가 데이터베이스의 이름을 정하고 테이블은 동적으로 만들이서 테이블을 조회하려고 합니다.

밑에 코드에서 databasename 과 tablename 을 autocomplettextview 와 edittext 에서 gettext로 받았을때도 오류가 떴습니다. 이 자바에 해당하는 액티비티로 이동하면 바로 팅깁니다.

책에 있는것을 따라해서 저에게 맞게 수정했습니다. 구글에 검색해보면 다들 자바클래스를 새로 만들고 openhelper를 상속받던데 제가 한방법과 뭐가 다른지 궁금하네요.

<자바 코드> public class songlist extends AppCompatActivity {

노래목록 songlistt = new 노래목록();
AutoCompleteTextView autoCompleteTextView;
EditText editText;
ListView listView;
List<String> list;
ArrayAdapter<String> adapter;

SQLiteDatabase db;
String databasename = "ani";
String tablename = "myani";



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_songlist);

    opendatabase(databasename);
    createtable(tablename);

    intidata();
    intidadapter();
    intiautotextview();

    Button btn1 = findViewById(R.id.btn1);
    btn1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

        }
    });

    Button btn = findViewById(R.id.btn);
    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String tablename = autoCompleteTextView.getText().toString();
        }
    });

}

private void createtable(String tablename) {
    db.execSQL("create table " + tablename + "(_id integer PRIMARY KEY increment, myani text)");
}

private void opendatabase(String databasename) {
    db = openOrCreateDatabase(databasename, MODE_PRIVATE, null);
}


private void intiautotextview() {
    autoCompleteTextView = findViewById(R.id.autocomplete);
    autoCompleteTextView.setAdapter(adapter);
}

private void intidadapter() {
    adapter = new ArrayAdapter<>(getApplicationContext(), R.layout.at, list);
}

private void intidata() {
    list = new ArrayList<>();
    for(int i = 0 ; i < songlistt.list.length; i++){
        list.add(songlistt.list[i]);
    }
}

}

<실행했을때 오류 메세지> E/MotionRecognitionManager: mSContextService = android.hardware.scontext.ISContextService$Stub$Proxy@2ca4814 E/MotionRecognitionManager: motionService = com.samsung.android.motion.IMotionRecognitionService$Stub$Proxy@58ef8bd motionService = com.samsung.android.motion.IMotionRecognitionService$Stub$Proxy@58ef8bd E/SQLiteLog: (1) near "increment": syntax error D/AndroidRuntime: Shutting down VM E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.chamw.myaniapplication, PID: 25291 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.chamw.myaniapplication/com.example.chamw.myaniapplication.songlist}: android.database.sqlite.SQLiteException: near "increment": syntax error (code 1): , while compiling: create table myani(_id integer PRIMARY KEY increment, myani text) ################################################################# Error Code : 1 (SQLITE_ERROR) Caused By : SQL(query) error or missing database. (near "increment": syntax error (code 1): , while compiling: create table myani(_id integer PRIMARY KEY increment, myani text)) ################################################################# at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3319) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3415) at android.app.ActivityThread.access$1100(ActivityThread.java:229) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1821) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:7325) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) Caused by: android.database.sqlite.SQLiteException: near "increment": syntax error (code 1): , while compiling: create table myani(_id integer PRIMARY KEY increment, myani text) ################################################################# Error Code : 1 (SQLITE_ERROR) Caused By : SQL(query) error or missing database. (near "increment": syntax error (code 1): , while compiling: create table myani(_id integer PRIMARY KEY increment, myani text)) ################################################################# at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method) at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:1058) at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:623) at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588) at android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:59) at android.database.sqlite.SQLiteStatement.(SQLiteStatement.java:31) at android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1829) at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1760) at com.example.chamw.myaniapplication.songlist.createtable(songlist.java:62) at com.example.chamw.myaniapplication.songlist.onCreate(songlist.java:37) at android.app.Activity.performCreate(Activity.java:6904) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1136) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3266) ... 9 more I/Process: Sending signal. PID: 25291 SIG: 9 Application terminated.

<오류가 나는 줄> db.execSQL("create table " + tablename + "(_id integer PRIMARY KEY increment, myani text)"); createtable(tablename);

  • (•́ ✖ •̀)
    알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)