B
Bastczuak
Neues Mitglied
- 0
Hey Leute,
ich benötige etwas Hilfe bei der Programmierung meiner SQL Datenbank! Im folgenden Code seht ihr mein jetzigen Stand der Datenbank, die Eigenschaften eines Sterns speichert.
Nun zu meinem Problem, bzw. ist das das erste Mal, dass ich mit SQL arbeite. Ich möchte jetzt eine zweite Tabelle anlegen, welche Sternenbilder speichert.
Wenn ich jetzt z.B. aus einer ListView ein Sternbild auswähle möchte ich, dass mir SQL alle Sterne, die zu diesem Sternbild gehören mit deren Inhalt, ausgibt.
Soviel weiß ich, dass ich Foreign Key verwenden muss, mehr aber nicht. Ihr würdet mir helfen mit einem kleinen Code-Schnippsel, die meine Funktion realisiert werden kann, schon helfen. Ich komm gerade nicht vorwärts.
MFG Basti
ich benötige etwas Hilfe bei der Programmierung meiner SQL Datenbank! Im folgenden Code seht ihr mein jetzigen Stand der Datenbank, die Eigenschaften eines Sterns speichert.
Code:
public class SQLiteAdapter {
public static final String MYDATABASE_NAME = "sternenkoordianten.db";
public static final String MYDATABASE_TABLE = "MY_TABLE";
public static final int MYDATABASE_VERSION = 1;
public static final String KEY_ID = "_id";
public static final String KEY_NAME = "Name";
public static final String KEY_AZIMUTH = "Azimuth";
public static final String KEY_ALTITUDE = "Altitude";
public static final String KEY_BRIGHTNESS = "Brightness";
public static final String KEY_RADIUS = "Radius";
private static final String SCRIPT_CREATE_DATABASE =
"create table " + MYDATABASE_TABLE + " ("
+ KEY_ID + " integer primary key, "
+ KEY_NAME + " text not null, "
+ KEY_AZIMUTH + " text not null, "
+ KEY_ALTITUDE + " text not null, "
+ KEY_BRIGHTNESS + " text not null, "
+ KEY_RADIUS + " text not null);";
private SQLiteHelper sqLiteHelper;
private SQLiteDatabase sqLiteDatabase;
private Context context;
public SQLiteAdapter(Context c){
context = c;
}
public SQLiteAdapter openToRead() throws SQLException {
sqLiteHelper = new SQLiteHelper(context, MYDATABASE_NAME, null, MYDATABASE_VERSION);
sqLiteDatabase = sqLiteHelper.getReadableDatabase();
return this;
}
public SQLiteAdapter openToWrite() throws SQLException {
sqLiteHelper = new SQLiteHelper(context, MYDATABASE_NAME, null, MYDATABASE_VERSION);
sqLiteDatabase = sqLiteHelper.getWritableDatabase();
return this;
}
public void close(){
sqLiteHelper.close();
}
public long insert(String name, String azimuth, String altitude, String brightness, String radius){
ContentValues contentValues = new ContentValues();
contentValues.put(KEY_NAME, name);
contentValues.put(KEY_AZIMUTH, azimuth);
contentValues.put(KEY_ALTITUDE, altitude);
contentValues.put(KEY_BRIGHTNESS, brightness);
contentValues.put(KEY_RADIUS, radius);
return sqLiteDatabase.insert(MYDATABASE_TABLE, null, contentValues);
}
public int deleteAll(){
return sqLiteDatabase.delete(MYDATABASE_TABLE, null, null);
}
public Cursor queueAll(){
String[] columns = new String[]{KEY_ID, KEY_NAME, KEY_AZIMUTH, KEY_ALTITUDE, KEY_BRIGHTNESS, KEY_RADIUS};
Cursor cursor = sqLiteDatabase.query(MYDATABASE_TABLE, columns,
null, null, null, null, null);
return cursor;
}
public class SQLiteHelper extends SQLiteOpenHelper{
public SQLiteHelper(Context context, String name,
CursorFactory factory, int version) {
super(context, name, factory, version);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL(SCRIPT_CREATE_DATABASE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
}
Nun zu meinem Problem, bzw. ist das das erste Mal, dass ich mit SQL arbeite. Ich möchte jetzt eine zweite Tabelle anlegen, welche Sternenbilder speichert.
Wenn ich jetzt z.B. aus einer ListView ein Sternbild auswähle möchte ich, dass mir SQL alle Sterne, die zu diesem Sternbild gehören mit deren Inhalt, ausgibt.
Soviel weiß ich, dass ich Foreign Key verwenden muss, mehr aber nicht. Ihr würdet mir helfen mit einem kleinen Code-Schnippsel, die meine Funktion realisiert werden kann, schon helfen. Ich komm gerade nicht vorwärts.
MFG Basti