2011-01-21 67 views
1

我試圖將某種C++結構的持久性存儲實現到SQLite數據庫中。它在開始時看起來不錯,但隨着所有這些SQL請求,數據綁定和手動獲取字段值一個接一個地變得複雜。將SQL錶行映射到C++結構

理想情況下,我想要從SQLite的錶行到C++結構進行映射,並且可以在其上運行SQL請求。另一方面,我仍然想保持足夠的通用性,以便能夠運行更復雜的請求連接等。

我甚至認爲一個外部實用程序會自動生成相應的C++/SQL膠水代碼可能會有所幫助。

什麼是正確的方式來做這種映射?我聽說有人建議boost :: serialization或Google的協議緩衝區,這會是一個更好的選擇嗎?或者還有其他一些不錯的選擇?

回答

3

聽起來像你想要一個對象關係映射器(ORM)。嘗試通過這個堆棧溢出線程讀取:https://stackoverflow.com/questions/74141/good-orm-for-c-solutions

那裏選擇的答案談論Database Template Library;我也會去那裏看看。

+0

這確實非常相關,謝謝!雖然,似乎這些ORM系統傾向於完全控制數據庫,但我仍然希望能夠運行自定義SQL請求,而不僅限於庫所基於的那些請求。 – 2011-01-21 22:33:55

1

Soci是一個好的開始。如果它不能滿足你的所有需求,它將幫助你找出你想去的地方。

我用了一段時間與sqlite,發現它比我能找到的其他人更好。我最終寫了我自己的,雖然...