Ik ben voor de hobby bezig met een App voor android.
Het lukt mij echter niet om database resultaten in de database te schrijven en er weer uit te halen.
Waar het precies misgaat durf ik niet te zeggen.
Als ik via ADB Shell database commando's uitvoer doet hij het wel. De table is ook aangemaakt.
Main activity
DatabaseAdapter
DatabaseHelper
Waar zou het aan kunnen liggen?
Graag een duwtje in de goeie richting. (Ben noob met java)
Het lukt mij echter niet om database resultaten in de database te schrijven en er weer uit te halen.
Waar het precies misgaat durf ik niet te zeggen.
Als ik via ADB Shell database commando's uitvoer doet hij het wel. De table is ook aangemaakt.
Main activity
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
| package com.equinox.wrinklecleaner; import com.equinox.wrinkle.database.WrinkleDatabaseAdapter; import android.app.Activity; import android.database.Cursor; import android.os.Bundle; import android.widget.Toast; public class MyApp extends Activity { private WrinkleDatabaseAdapter dbHelper; private Cursor cursor; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); dbHelper = new WrinkleDatabaseAdapter(this); dbHelper.open(); dbHelper.createUser("test", "Passtest"); String result = dbHelper.fetchUser(); dbHelper.close(); Toast toast = Toast.makeText(getApplicationContext(),result,Toast.LENGTH_LONG); toast.show(); } } |
DatabaseAdapter
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
| package com.equinox.wrinkle.database; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.util.Log; public class WrinkleDatabaseHelper extends SQLiteOpenHelper { //DB info private static final String DATABASE_NAME = "WrinkleData"; private static final int DATABASE_VERSION = 1; //DB Creation sql statement private static final String DATABASE_CREATE = "create table wrinkle_user (id_user integer primary key autoincrement, username text not null, password text not null);"; public WrinkleDatabaseHelper(Context context){ //CREATE DB super(context, DATABASE_NAME, null, DATABASE_VERSION); } // Method is called during creation of the database @Override public void onCreate(SQLiteDatabase database) { database.execSQL(DATABASE_CREATE); } // Method is called during an upgrade of the database, e.g. if you increase // the database version @Override public void onUpgrade(SQLiteDatabase database, int oldVersion, int newVersion) { Log.w(WrinkleDatabaseHelper.class.getName(), "Upgrading database from version " + oldVersion + " to " + newVersion + ", which will destroy all old data"); database.execSQL("DROP TABLE IF EXISTS WrinkleData"); onCreate(database); } } |
DatabaseHelper
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
| package com.equinox.wrinkle.database; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.SQLException; import android.database.sqlite.SQLiteDatabase; public class WrinkleDatabaseAdapter { // Database fields public static final String KEY_ROWID = "id_user"; public static final String KEY_USER = "username"; public static final String KEY_PASSWORD = "password"; private static final String DATABASE_TABLE = "wrinkle_user"; private Context context; private SQLiteDatabase database; private WrinkleDatabaseHelper dbHelper; public WrinkleDatabaseAdapter(Context context) { this.context = context; } public WrinkleDatabaseAdapter open() throws SQLException{ dbHelper = new WrinkleDatabaseHelper(context); database = dbHelper.getWritableDatabase(); return this; } public void close() { dbHelper.close(); } public long createUser(String user, String password) throws SQLException{ ContentValues initialValues = createContentValues(user,password); long c = database.insert(DATABASE_TABLE, null, initialValues); //database.insert(DATABASE_TABLE, null, initialValues); return c; } public String fetchUser() { // Cursor c = database.query(DATABASE_TABLE, new String[] { KEY_ROWID, // KEY_USER, KEY_PASSWORD}, null, null, null, // null, null); Cursor c = database.query(DATABASE_TABLE, new String[] {"id_user", "username", "password"}, null,null, null, null, null); String result = ""; int iRow = c.getColumnIndex(KEY_ROWID); int iName = c.getColumnIndex(KEY_USER); int iPassword = c.getColumnIndex(KEY_PASSWORD); for(c.moveToFirst(); c.isAfterLast(); c.moveToNext()) { result = result + c.getString(iRow) + " " + c.getString(iName) + " " + c.getString(iPassword) + "\n"; } return result; } private ContentValues createContentValues(String user, String password) { ContentValues values = new ContentValues(); values.put(KEY_USER, "'"+user+"'"); values.put(KEY_PASSWORD, "'"+password+"'"); return values; } } |
Waar zou het aan kunnen liggen?
Graag een duwtje in de goeie richting. (Ben noob met java)