Java 创建数据库时的SQLiteException-SQLiteException靠近;安卓;
我有一个服务(如下所列)正在尝试创建数据库表。当执行PlayerTable中onCreate()中的sql时,我遇到了一个我不理解的异常。下面列出了所有代码。基本上,服务会启动,获取一个SQLiteDatabase对象,该对象反过来在ClueBuddyOpenHelper上调用onCreate(),然后在PlayerTable中调用onCreate()。执行sql时会发生异常。任何帮助都将不胜感激Java 创建数据库时的SQLiteException-SQLiteException靠近;安卓;,java,android,sqlite,Java,Android,Sqlite,我有一个服务(如下所列)正在尝试创建数据库表。当执行PlayerTable中onCreate()中的sql时,我遇到了一个我不理解的异常。下面列出了所有代码。基本上,服务会启动,获取一个SQLiteDatabase对象,该对象反过来在ClueBuddyOpenHelper上调用onCreate(),然后在PlayerTable中调用onCreate()。执行sql时会发生异常。任何帮助都将不胜感激 06-03 00:47:43.043: E/AndroidRuntime(4347): FATAL
06-03 00:47:43.043: E/AndroidRuntime(4347): FATAL EXCEPTION: IntentService[NewGameService]
06-03 00:47:43.043: E/AndroidRuntime(4347): android.database.sqlite.SQLiteException: near "android": syntax error
06-03 00:47:43.043: E/AndroidRuntime(4347): at android.database.sqlite.SQLiteStatement.native_executeSql(Native Method)
06-03 00:47:43.043: E/AndroidRuntime(4347): at android.database.sqlite.SQLiteStatement.executeUpdateDelete(SQLiteStatement.java:90)
06-03 00:47:43.043: E/AndroidRuntime(4347): at android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1899)
06-03 00:47:43.043: E/AndroidRuntime(4347): at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1839)
06-03 00:47:43.043: E/AndroidRuntime(4347): at ws.hamacher.cluebuddy.db.PlayerTable.onCreate(PlayerTable.java:32)
06-03 00:47:43.043: E/AndroidRuntime(4347): at ws.hamacher.cluebuddy.db.ClueBuddyOpenHelper.onCreate(ClueBuddyOpenHelper.java:30)
06-03 00:47:43.043: E/AndroidRuntime(4347): at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:165)
06-03 00:47:43.043: E/AndroidRuntime(4347): at ws.hamacher.cluebuddy.service.NewGameService.onHandleIntent(NewGameService.java:18)
06-03 00:47:43.043: E/AndroidRuntime(4347): at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
06-03 00:47:43.043: E/AndroidRuntime(4347): at android.os.Handler.dispatchMessage(Handler.java:99)
06-03 00:47:43.043: E/AndroidRuntime(4347): at android.os.Looper.loop(Looper.java:137)
06-03 00:47:43.043: E/AndroidRuntime(4347): at android.os.HandlerThread.run(HandlerThread.java:60)
代码:
正如guido所指出的,您需要进行更改
db.execSQL(db.toString());
致:
它将db对象的字符串解释作为SQL语句发送。正如guido所指出的,您需要进行更改
db.execSQL(db.toString());
致:
它将db对象的字符串解释作为SQL语句发送。
db.execSQL(db.toString())代码>onCreate()中的最后一行:是打字错误吗?它应该是db.execSQL(sb.toString())代码>!在这种情况下,请使用更好的变量名。理想情况下,所有数据库操作都必须是扩展SQLiteOnlineHelper的一个类中的一个。为什么需要一个单独的类来创建数据库中的每个表。我不知道这是否有问题。我现在正在学习SQLite
,但是我认为数据库版本应该是一个整数。所以'R.string.db_version'可能是错误的。尝试将其解析为整数
,然后将其传递给超类的构造函数
。db.execSQL(db.toString())代码>onCreate()中的最后一行:是打字错误吗?它应该是db.execSQL(sb.toString())代码>!在这种情况下,请使用更好的变量名。理想情况下,所有数据库操作都必须是扩展SQLiteOnlineHelper的一个类中的一个。为什么需要一个单独的类来创建数据库中的每个表。我不知道这是否有问题。我现在正在学习SQLite
,但是我认为数据库版本应该是一个整数。所以'R.string.db_version'可能是错误的。尝试将其解析为一个整数
,然后将其传递给超类的构造函数
。
db.execSQL(sb.toString());