其實吧。java
這個東西已經寫好了,地址在:github.com/hjx60149632… 這系列文章算是我寫的過程的總結吧。(恩系列,說明我可能會寫很久,╮(╯▽╰)╭)mysql
如今有不少的現成的orm框架,爲何還要本身寫一個?git
框架這種東西我的認爲想要了解其中的原理,仍是要本身嘗試實現一個來的比較快。我是那種不愛看源碼的程序員,除非是有些地方實在沒有思路或者網上也找不到相關的文章,不然是不會去看源碼的。懶~~~程序員
寫這個的目的是什麼?github
如今流行的orm好比hibernate,mybatis等等,須要配置太多了,實在記不住。因此就本身寫一個本身用起來方便一點的,不須要什麼配置的,而後本身用就好咯~~~。本身寫一個框架感受最主要的仍是解決本身的問題,先讓本身用起來方便嘛~spring
我要實現什麼功能?sql
單表的增刪該查確定是須要的。現階段不須要支持連表查詢,由於我日常也不寫這種sql。主要的功能仍是能夠方便的單表增刪改查。其餘複雜的功能直接使用現有的流行框架就行了,這個東西寫的時候也沒有期望太多很複雜的功能。數據庫
爲何要寫成orm類型的呢?mybatis
用起來方便啊~ 不用寫sql啊,我最煩寫sql了。框架
能不能在生產上用呢?
看你本身咯,我是以demo形式來寫的,很差說裏面有沒有什麼大坑,恩~
不須要太多的配置,可能的狀況下只須要配置鏈接池就行了。
將class映射到數據庫表,增刪改查不須要寫sql。
可使用class屬性名稱做爲查詢條件。
不須要連表查詢。
class映射基於註解的形式,不要寫其餘的配置。
只支持mysql就行了。
須要反射相關的知識。
java中的自定義註解。
sql的基礎知識。
spring jdbc相關知識,就是jdbcTemplate。由於我不太想在寫一邊jdbc的東西。仍是懶~
在class中先使用註解的形式,將class和表作一個映射關係(屬性名稱和字段名稱的映射)。
在對數據庫操做的時候經過反射獲取class中的相關信息,而後根據操做類型,生成sql,最後執行sql就行了。