如何設計一個ORM

ORM就是將數據庫中的表映射成一個對象實體A,對A進行操作,就相當於對數據庫直接進行操作,完成這個過程,其實只要你好好想想你是怎麼操作數據庫的,然後將類似的行爲換成對象即可。

要設計一個ORM,首先我們需要以下幾步:

  • step1: 先準備好一個對象A和數據庫中某張表對應T(A->T)
  • step2: 我們知道當你創建一個表時,一般使用create命令如下:
CREATE TABLE database_name.table_name( 
column1 datatype PRIMARY KEY(one or more columns), 
column2 datatype, 
column3 datatype, 
….. 
columnN datatype, 
);

從上面看就對應着表名,表字段名,字段類型,是否是主鍵等,此時我就要想着如何根據A中成員變量,而知道T的這些內容?如果你能根據A能夠轉化成T,那此時你就已經將A映射到了T了

  • step3: 映射過程完成後,接下來就是要具備表的四種操作:增/刪/改/查,回憶下四種命令寫sql語句是怎麼寫的?現在我們以查來說:
SELECT * FROM T WHERE field1 >= ? OR field2 >= ?;

其實說白了,就是構建where語句的過程,我們可以根據一些條件,構建where語句,然後映射到成一個sql語句,根據sql語句我們就可以查詢到一組符合條件的數據(cursor),然後就是將cursor數據轉化成A

現在總結下step3兩個過程:condition ->sql語句;cursor reslut->A,完成這三部,基本上就完成了一個ORM的設計,如果後面需要對性能,細節進行優化,就可以慢慢來。畢竟主功能已具備。

注意:如果想線程安全進行數據庫操作可以考慮  db.enableWriteAheadLogging();

總結下:

  • a)  根據A得到T,
  • b)  根據condition構建where,拼接成sql;
  • c)根據sql從T中查出cursors;
  • d)cursor轉化成A
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章