2012-04-24 19 views
8

Tôi đang sử dụng ORMLite trên Android và có 7 bảng mà tôi cần tạo/cập nhật nhiều mục nhập.ORMLite - CallBatchTasks() riêng lẻ hoặc một lần cho tất cả các bản cập nhật?

Tôi đang sử dụng phương pháp callBatchTasks() trên mỗi dao của riêng mình để thực hiện việc này, nhưng tôi tự hỏi nếu có thể/có lợi khi chỉ sử dụng một dao của callBatchTasks() để xử lý tất cả các bản cập nhật?

Điều này có làm tăng tốc quá trình không?

Trả lời

8

Câu hỏi thú vị. Với ORMLite trong Android, tất cả các DAO đang sử dụng cùng một kết nối đến cùng một cơ sở dữ liệu. Vì vậy, mặc dù đó là một chút nhìn tổng thể, bạn chắc chắn có thể sử dụng một cuộc gọi fooDao.callBatchTasks() duy nhất để cập nhật Foo, BarBaz bảng. Điều đó vô hiệu hóa tự động cam kết trên kết nối, áp dụng bất kỳ tạo/cập nhật các cuộc gọi bạn muốn bao giờ bảng, và sau đó cam kết tất cả các thay đổi ở cuối.

+1

Cảm ơn sự giúp đỡ của bạn! Một chút thử nghiệm đã cho thấy không có sự khác biệt trong hiệu suất bằng cách làm điều này, vì vậy tôi sẽ dính vào mã mà không nhìn tổng! :) –

+1

@Gray: Sẽ hữu ích khi thêm thông tin này vào tài liệu. Đã cho họ được xếp hàng riêng biệt trong một thời gian ngắn. Và btw: Cảm ơn bạn đã cho chúng tôi ormlite ;-) –

+0

Cập nhật các hàng trên nhiều daos với một thực thi 'callBatchTasks' cho tôi một SQLException: Bắt cơ sở dữ liệu ghi từ helper không thành công –

Các vấn đề liên quan