M
Mort
Stammgast
- 269
Wenn garantiert immer ein Datensatz kommt, braucht man's nicht, stimmt.
Aber wenn mal keiner zurück kommt hat man sonst 'ne Exception...
Aber wenn mal keiner zurück kommt hat man sonst 'ne Exception...
Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion erfordert derzeit den Zugriff auf die Seite über den integrierten Safari-Browser.
public class DatabaseAdapter {
DatabaseHelper databaseHelper;
public DatabaseAdapter(Context context){
databaseHelper=new DatabaseHelper(context);
}
public long insertData(String name, String pw){
SQLiteDatabase db = databaseHelper.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(DatabaseHelper.NAME, name);
contentValues.put(DatabaseHelper.PASSWORD, pw);
long id=db.insert(DatabaseHelper.TABLE_NAME, null, contentValues);
return id;
}
static class DatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "MyDatabase";
private static final int DATABASE_VERSION = 1;
private static final String TABLE_NAME = "TestTable";
private static final String UID = "_id";
private static final String NAME = "Name";
private static final String PASSWORD = "Password";
private static final String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME
+ " (" + UID + " INTEGER PRIMARY KEY AUTOINCREMENTED, " + NAME
+ " VARCHAR(255), " + PASSWORD + " VARCHAR(255));";
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
try {
db.execSQL(CREATE_TABLE);
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
DatabaseAdapter databaseAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
databaseAdapter = new DatabaseAdapter(this);
long id = databaseAdapter.insertData("user", "1234");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME + ";");
onCreate(db);
}
10-07 09:37:14.587: D/dalvikvm(23637): GC_FOR_ALLOC freed 53K, 5% free 2890K/3024K, paused 56ms, total 59ms
10-07 09:37:14.597: I/dalvikvm-heap(23637): Grow heap (frag case) to 4.873MB for 2073616-byte allocation
10-07 09:37:14.647: D/dalvikvm(23637): GC_FOR_ALLOC freed 2K, 3% free 4912K/5052K, paused 47ms, total 47ms
10-07 09:37:15.957: D/gralloc_goldfish(23637): Emulator without GPU emulation detected.
10-07 09:37:21.217: D/dalvikvm(23637): GC_FOR_ALLOC freed 12K, 2% free 5054K/5144K, paused 1051ms, total 1094ms
10-07 09:37:23.397: I/Choreographer(23637): Skipped 238 frames! The application may be doing too much work on its main thread.
10-07 09:37:24.407: I/Choreographer(23637): Skipped 34 frames! The application may be doing too much work on its main thread.
10-07 09:37:26.817: I/Choreographer(23637): Skipped 69 frames! The application may be doing too much work on its main thread.
10-07 09:37:27.877: D/dalvikvm(23637): GC_FOR_ALLOC freed 37K, 2% free 5778K/5892K, paused 219ms, total 228ms
10-07 09:37:28.987: E/SQLiteLog(23637): (1) near "AUTOINCREMENTED": syntax error
10-07 09:37:28.987: W/System.err(23637): android.database.sqlite.SQLiteException: near "AUTOINCREMENTED": syntax error (code 1): , while compiling: CREATE TABLE TestTable (_id INTEGER PRIMARY KEY AUTOINCREMENTED, Name VARCHAR(255), Password VARCHAR(255));
10-07 09:37:29.037: W/System.err(23637): at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
10-07 09:37:29.037: W/System.err(23637): at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889)
10-07 09:37:29.047: W/System.err(23637): at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500)
10-07 09:37:29.047: W/System.err(23637): at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
10-07 09:37:29.047: W/System.err(23637): at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
10-07 09:37:29.047: W/System.err(23637): at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
10-07 09:37:29.047: W/System.err(23637): at android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1672)
10-07 09:37:29.047: W/System.err(23637): at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1603)
10-07 09:37:29.047: W/System.err(23637): at de.example.test.DatabaseAdapter$DatabaseHelper.onCreate(DatabaseAdapter.java:49)
10-07 09:37:29.057: W/System.err(23637): at de.example.test.DatabaseAdapter$DatabaseHelper.onUpgrade(DatabaseAdapter.java:61)
10-07 09:37:29.057: W/System.err(23637): at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:257)
10-07 09:37:29.057: W/System.err(23637): at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:164)
10-07 09:37:29.057: W/System.err(23637): at de.example.test.DatabaseAdapter.insertData(DatabaseAdapter.java:17)
10-07 09:37:29.057: W/System.err(23637): at de.example.test.MainActivity.onCreate(MainActivity.java:22)
10-07 09:37:29.057: W/System.err(23637): at android.app.Activity.performCreate(Activity.java:5231)
10-07 09:37:29.057: W/System.err(23637): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
10-07 09:37:29.057: W/System.err(23637): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
10-07 09:37:29.057: W/System.err(23637): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
10-07 09:37:29.057: W/System.err(23637): at android.app.ActivityThread.access$800(ActivityThread.java:135)
10-07 09:37:29.057: W/System.err(23637): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
10-07 09:37:29.057: W/System.err(23637): at android.os.Handler.dispatchMessage(Handler.java:102)
10-07 09:37:29.057: W/System.err(23637): at android.os.Looper.loop(Looper.java:136)
10-07 09:37:29.057: W/System.err(23637): at android.app.ActivityThread.main(ActivityThread.java:5017)
10-07 09:37:29.057: W/System.err(23637): at java.lang.reflect.Method.invokeNative(Native Method)
10-07 09:37:29.057: W/System.err(23637): at java.lang.reflect.Method.invoke(Method.java:515)
10-07 09:37:29.057: W/System.err(23637): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
10-07 09:37:29.057: W/System.err(23637): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
10-07 09:37:29.057: W/System.err(23637): at dalvik.system.NativeStart.main(Native Method)
10-07 09:37:29.257: E/SQLiteLog(23637): (1) no such table: TestTable
10-07 09:37:29.327: E/SQLiteDatabase(23637): Error inserting Name=user Password=1234
10-07 09:37:29.327: E/SQLiteDatabase(23637): android.database.sqlite.SQLiteException: no such table: TestTable (code 1): , while compiling: INSERT INTO TestTable(Name,Password) VALUES (?,?)
10-07 09:37:29.327: E/SQLiteDatabase(23637): at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
10-07 09:37:29.327: E/SQLiteDatabase(23637): at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889)
10-07 09:37:29.327: E/SQLiteDatabase(23637): at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500)
10-07 09:37:29.327: E/SQLiteDatabase(23637): at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
10-07 09:37:29.327: E/SQLiteDatabase(23637): at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
10-07 09:37:29.327: E/SQLiteDatabase(23637): at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
10-07 09:37:29.327: E/SQLiteDatabase(23637): at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1467)
10-07 09:37:29.327: E/SQLiteDatabase(23637): at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1339)
10-07 09:37:29.327: E/SQLiteDatabase(23637): at de.example.test.DatabaseAdapter.insertData(DatabaseAdapter.java:21)
10-07 09:37:29.327: E/SQLiteDatabase(23637): at de.example.test.MainActivity.onCreate(MainActivity.java:22)
10-07 09:37:29.327: E/SQLiteDatabase(23637): at android.app.Activity.performCreate(Activity.java:5231)
10-07 09:37:29.327: E/SQLiteDatabase(23637): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
10-07 09:37:29.327: E/SQLiteDatabase(23637): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
10-07 09:37:29.327: E/SQLiteDatabase(23637): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
10-07 09:37:29.327: E/SQLiteDatabase(23637): at android.app.ActivityThread.access$800(ActivityThread.java:135)
10-07 09:37:29.327: E/SQLiteDatabase(23637): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
10-07 09:37:29.327: E/SQLiteDatabase(23637): at android.os.Handler.dispatchMessage(Handler.java:102)
10-07 09:37:29.327: E/SQLiteDatabase(23637): at android.os.Looper.loop(Looper.java:136)
10-07 09:37:29.327: E/SQLiteDatabase(23637): at android.app.ActivityThread.main(ActivityThread.java:5017)
10-07 09:37:29.327: E/SQLiteDatabase(23637): at java.lang.reflect.Method.invokeNative(Native Method)
10-07 09:37:29.327: E/SQLiteDatabase(23637): at java.lang.reflect.Method.invoke(Method.java:515)
10-07 09:37:29.327: E/SQLiteDatabase(23637): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
10-07 09:37:29.327: E/SQLiteDatabase(23637): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
10-07 09:37:29.327: E/SQLiteDatabase(23637): at dalvik.system.NativeStart.main(Native Method)