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);
-
(•́ ✖ •̀)
알 수 없는 사용자
댓글 입력