Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

dữ liệu đồng bộ nhanh chóng của dữ liệu cốt lõi một cơ sở dữ liệu mysql

Không có cách nào nhanh nhất nhưng tôi chắc chắn có thể đề xuất một cái gì đó phù hợp với tôi. Tốt nhất hay không - do bạn quyết định.

Ngoài ra, câu hỏi của bạn cũng rất chung chung - vì nó bao gồm toàn bộ cơ sở hạ tầng phụ trợ của một ứng dụng di động. Tôi sẽ cố gắng nói cụ thể nhất có thể -

1) Thực hiện yêu cầu đăng http lên tệp php, tệp này sẽ chọn tất cả dữ liệu của cơ sở dữ liệu mysql và trả lại kết quả cho ứng dụng -

Sau khi nhận được kết quả, bạn có thể phân tích cú pháp trong Dữ liệu cốt lõi như ví dụ bên dưới -

    func writeDataToSqliteStore() throws {

                // Configure the Network Call here with NSURL & NSData returning an array that you can write to the Core Data SQLITE backend.
            do {
                jsonResponse = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions()) as? NSArray
            } catch {
                print(error)
            }
                let localEntity = self.insertNewEntity("EntityName") as? CoreDataEntityClass

                for singleObject in jsonResponse {

                    localEntity.name = singleObject.valueForKey("name")
                    localEntity.address = singleObject.valueForKey("address")
            }
  }

2) Kiểm tra dữ liệu nào tồn tại trong dữ liệu lõi => không phải làm gì và dữ liệu nào là mới => lưu dữ liệu mới vào dữ liệu lõi -

Bạn có thể thực hiện tốt cuộc gọi đầu bằng Dấu thời gian và kiểm tra xem dữ liệu đã được cập nhật chưa. Điều luôn làm việc với tôi là xóa phần phụ trợ SQLITE trên thiết bị và chạy lại phương thức ghi dữ liệu. Bạn có thể sử dụng ví dụ bên dưới -

func removeSQLITEFiles() {
    let fileManager = NSFileManager.defaultManager()
        let URL1 = self.applicationDocumentsDirectory.URLByAppendingPathComponent("File.sqlite")
        let URL2 = self.applicationDocumentsDirectory.URLByAppendingPathComponent("File.sqlite-wal")
        let URL3 = self.applicationDocumentsDirectory.URLByAppendingPathComponent("File.sqlite-shm")

        if fileManager.fileExistsAtPath(URL1.path!) {
            do {
             try fileManager.removeItemAtURL(URL1)
            }
            catch {error}
        }

        if fileManager.fileExistsAtPath(URL2.path!) {
            do {
                try fileManager.removeItemAtURL(URL2)
            }
            catch {error}
        }

        if fileManager.fileExistsAtPath(URL3.path!) {
            do {
                try fileManager.removeItemAtURL(URL3)
            }
            catch {error}
        }

    }

Sau đó, bạn có thể chạy writeDataToSqlieStore() một lần nữa.

Hy vọng điều đó sẽ hữu ích.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. WordPress Editor không cập nhật tệp:Không thể liên lạc lại với trang web để kiểm tra các lỗi nghiêm trọng

  2. Mysql Không thể thực hiện kết nối vì máy mục tiêu đã chủ động từ chối nó

  3. Tạo bảng và sự cố với khóa chính trong Rails

  4. MySQL tự động truyền / chuyển đổi một chuỗi thành một số?

  5. PHP và Mysql cực kỳ cơ bản