Tôi đang phát triển ứng dụng linh sam cho Android ngay bây giờ, tôi đang sử dụng nhiều bảng để lấy và chèn dữ liệu. trong quá trình phát triển và thấy mình tìm nạp dữ liệu từ bảng chỉ có hai cột STATS(_id, stat_name)
. Vấn đề của tôi là gì? Tôi có hoạt động với 10 nút và mỗi nút tương ứng với một nút stat_name
. Khi người dùng nhấn một trong các ứng dụng nút là "đi" đến STATS
bảng để có được chính xác _id
và sau đó nhập số _id
này vào một bảng khác GAME_STATS(_id, PlayerId (fk), GameId(fk), StatsId(fk)(andmore))
trên STATS._id = GAME_STATS.StatsId
và tôi cơ bản phải thực hiện thao tác tương tự cho PlayerId
.Tìm nạp giá trị duy nhất từ SQLite trong android
Ngay bây giờ, tôi đang làm nó theo cách này:
public String getStatId(String statName){
String statId = "Error";
Cursor c = mDb.query(STAT_TABLE, new String[] {AbstractDbAdapter.STAT_ID, AbstractDbAdapter.STAT_NAME}, AbstractDbAdapter.STAT_NAME+ " = " +statName, null, null, null, null);
int count = c.getCount();
if(count == 1){
c.moveToFirst();
statId = c.getString(c.getColumnIndex(AbstractDbAdapter.STAT_ID));
}
c.close();
mDb.close();
Log.d("FootballApp","StatId =" +statId);
return statId;
}
vấn đề của tôi là gì, mà tôi biết rằng có NÊN chỉ có một giá trị trả về, và tôi vẫn phải sử dụng con trỏ, làm như vậy . Ngoài ra, theo ý kiến của tôi, nó trông có vẻ phức tạp và mất thời gian để viết tất cả mã đó chỉ để lấy một id từ một bảng. Tôi có 9 bảng trong ứng dụng của tôi, và tôi sẽ phải viết phương pháp tương tự mỗi khi tôi cần _id từ bảng khác nhau khi tôi có, ví dụ, chỉ có tên.
Ai đó có thể cho tôi biết nếu có cách nào dễ dàng hơn để làm tất cả những điều đó? Xin vui lòng :) cảm ơn! :)
Để mã an toàn hơn thay thế 'selectBy +" = "+ selectName, null' với ' selectBy + "=?", New String [] {selectName} ' – Afilu