2012-08-24 29 views
24

tôi cần phải xoá một bản ghi từ cơ sở dữ liệu ORMLite tôi có thể xóa một kỷ lục bởi id sử dụng như saucách xóa bản ghi khỏi ORMLITE?

@Override 
public void Delete(int id) throws SQLException { 
    this.dao.deleteById(id); 
} 

nhưng những gì nếu tôi phải xóa một bản ghi từ cùng một bảng không phải bởi id nhưng theo tên hoặc bất kỳ lĩnh vực khác tôi muốn một cái gì đó giống như

public void Deletefromcanteen(String name,MealType mealtype) { 
    this.dao.deletebyName(name); 
} 

gì truy vấn nên tôi viết bằng querybuilder để xóa một kỷ lục nơi tên = tên và mealtype = nói (ăn trưa)

tôi đã cố gắng một cái gì đó như thế này trong databaseh của tôi elper class

public void deletefromcanteen(int id, String mealtype) { 
    try { 
     Dao<CanteenLog, Integer> canteenDao = getCanteen(); 
     DeleteBuilder<CanteenLog, Integer> deleteBuilder = canteenDao 
       .deleteBuilder(); 
     deleteBuilder.where().eq("user_id", id).and().eq("meal", mealtype); 
     canteenDao.delete(deleteBuilder.prepare()); 
    } catch (Exception e) { 
     ... 
    } 
} 

Trả lời

67
deleteBuilder.where().eq("FIELD_NAME", arg); 
deleteBuilder.delete(); 

Cập nhật:

Ví dụ:

//Get helper 
DatabaseHelper helper = OpenHelperManager.getHelper(App.getContext(), DatabaseHelper.class); 

//get dao 
Dao dao = helper.getDao(YOUR_CLASS.class); 

//delete elements from table in field by arg 
DeleteBuilder<CanteenLog, Integer> deleteBuilder = dao.deleteBuilder(); 
deleteBuilder.where().eq("FIELD_NAME", arg); 
deleteBuilder.delete(); 

Chúc may mắn!

+0

@llya Demidove bạn có thể vui lòng xây dựng sự giải thích cách nó phải là –

+0

là nó rõ ràng cho bạn?) –

0

Để lưu truy vấn, bạn có thể chọn tìm ID, sau đó thực hiện xóa theo ID. Thsi sẽ đơn giản nếu bạn đã thiết lập truy vấn chọn cho bảng này.

+0

Tôi không có truy vấn chọn cho bảng này lần nữa trước tiên tôi sẽ phải tạo truy vấn chọn không phải là nó –

0

Nó có thể được thực hiện cũng như thế

DatabaseHelper.getInstance().getDao(YourObject.class).delete(yourObjectInstance); 
0

Nếu bạn đang sử dụng Kotlin, bạn sẽ cần phải làm một cái gì đó như thế này thay vì những suy luận kiểu hiện không được làm việc một cách chính xác cho cú pháp thông thạo:

val deleteBuilder = dao.deleteBuilder() 
      val where = deleteBuilder.where().eq("address", address) 
      deleteBuilder.setWhere(where) 
      deleteBuilder.delete() 
Các vấn đề liên quan