Soru & Cevap

database'den veri çekme (SQLite veritabanı)

02.01.2015 - 08:13

DATABASEHELPER.JAVA KODLAMASI

[code]

public class DatabaseHandler extends SQLiteOpenHelper {

    private static final int DATABASE_VERSION = 1;
    private static final String DATABASE_NAME = "turku.sqlite";
    private static final String DATABASE_TABLE = "turkuinfo";


    private static final String KEY_ID = "id";
    private static final String KEY_BASLIK = "baslik";
    private static final String KEY_ICERIK = "icerik";

    public DatabaseHandler(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        String CREATE_TURKU_TABLE = "CREATE TABLE " + DATABASE_TABLE + "("
                + KEY_ID + " INTEGER PRIMARY KEY," + KEY_BASLIK + " TEXT,"
                + KEY_ICERIK + ")";
        db.execSQL(CREATE_TURKU_TABLE);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("DROP TABLE IF EXIST " + DATABASE_TABLE);
    }

    public void addUserInfo(Turku info) {

        SQLiteDatabase db = this.getWritableDatabase();

        ContentValues values = new ContentValues();

        values.put(KEY_BASLIK, info.getBaslik());
        values.put(KEY_ICERIK, info.getIcerik());

        db.insert(DATABASE_TABLE, null, values);
        db.close();
    }

    public Turku getUserInfo(int id) {

        SQLiteDatabase db = this.getReadableDatabase();

         Cursor cursor = db.query(DATABASE_TABLE, new String[] { KEY_ID,
                KEY_BASLIK, KEY_ICERIK }, KEY_ID + "=?",
                new String[] { String.valueOf(id) }, null, null, null, null);

      
        if (cursor != null)
            cursor.moveToFirst();

        Turku info = new Turku(cursor.getInt(0), cursor.getString(1),
                cursor.getString(2));
       return info;    }
}
[/code]

DİĞER KODLAMA

[code]

public class Bildirimler extends Fragment implements OnClickListener {

    TextView bildirim, icerik;
    Button icerikGetir;
    private Veritabani db;
    private DatabaseHandler handler;
    private Turku turku;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.bildirimler_fragment, container,
                false);

        bildirim = (TextView) view.findViewById(R.id.tvBildirim);
        icerik = (TextView) view.findViewById(R.id.tvIcerik);
        icerikGetir = (Button) view.findViewById(R.id.bIcerikGetir);
        icerikGetir.setOnClickListener(this);

        return view;
    }

    @Override
    public void onClick(View v) {
        if (v.getId() == R.id.bIcerikGetir) {
            handler = new DatabaseHandler(getActivity());
            turku = new Turku(1, "Başlık", "Bu bir denemedir.");
            handler.addUserInfo(turku);
            Log.d("TAG", handler.getUserInfo(1).getBaslik());
            icerik.setText(handler.getUserInfo(1).getIcerik());
        }

    }
}

[/code]

burada veri tabanım oluşuyor. butona her tıkladığımda ise  "Bu bir denemedir." isimli veri ekleniyor. ben bu veriyi eklemek istemiyorum. Hazır veri tabanımı oluşturup bu oluşturduğum veri tabanımın sadece belirli id ye sahip sütun içeriğini ekrana yazdırmak istiyorum. Bu içerikler genelde türkü sözü şiir gibi veriler olacak ya da uzun pararaflar.

 

Nasıl yapabilirim?

180 Görüntülenme

2 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

picture-8572-1421266577.png
mmnbsl
05.01.2015 - 03:21

CREATE_TURKU_TABLE bölümünde id'yi otomatik olarak arttır. "INTEGER PRIMARY KEY AUTOINCREMENT".

veri ekledikçe id kendi kendine artar. Sonra çekmek istedğin verinin id'sini 


handler.getUserInfo("id").getIcerik() "id" kısmına yazıp çekersin
 

picture-8649-1419588592.jpg
denizkoc
04.01.2015 - 04:18

cevap bulabilecek birisi yok mu yani?