mybatis實際上是一個更多關註sql語句的框架,他的出現是想讓開發者更簡單的去操作資料庫。 與hibernate相比較,hibernate更多的是去sql化,雖然hibernate也可以本地sql執行,hibernate更多的是關註與hql的編寫和對象映射的配置, 只要配置完了,hibernat ...
mybatis實際上是一個更多關註sql語句的框架,他的出現是想讓開發者更簡單的去操作資料庫。
與hibernate相比較,hibernate更多的是去sql化,雖然hibernate也可以本地sql執行,hibernate更多的是關註與hql的編寫和對象映射的配置,
只要配置完了,hibernate有封裝好的函數可以幫你執行操作資料庫,當然hibernate也是靠生產sql語句去實現操作資料庫的,值得註意的是
hibernate可以很容易的去適應不同類別的資料庫,只要配置更改一下就可以針對不同的資料庫生產不一樣的sql語句,hibernate的難點可能集中
於單雙邊和幾對幾po對象的配置問題。所以說一定程度上來說hibernate掌握的門檻可能比mybatis要高一些。
回過頭來,mybatis相對Hibernate“O/R”而言,mybatis是一種“Sql Mapping”的ORM實現。
你只需要再mybatis的對象映射文件xml中寫好自己的sql語句,並同時配置好入參和返回值類型,那麼mybatis就可以幫你po對象存到資料庫或者
將資料庫的數據映射到對象來,那麼在使用mybatis的時候其實主要工作就是寫sql了,然後就是一些配置規則的細枝末節。
今天我們要搭建mybatis,並順便整合到我們spring項目中,spring項目就是我之前的博客中《springMvc+hibernate的web application的構建》所構建成功的項目。
1mybatis當然少不了響應的jar包,3.2.7是我下載的jar包,當然不是最新的,最新我找了很久,有的是因為jar下載的鏈接卡住了,有的是因為csdn上下載的積分和c幣用光了。
下圖是我下載的jar包。
因為咱們這個spring項目是web項目,直接丟到webContent下的lib裡面就好,既可以在application中的main函數執行,也可以再web伺服器中運行,就很舒服。
然後在項目的src下放入我們的配置文件,配置文件如下:
配置文件的位置如下:
可以看到分為兩部分,一部分是關於連接資料庫的,另一部分是關於po配置的xml文件。
當然mybatis也需要jdbc.driver的,然後po的xml會稍後展示。
現在我們需要做的是建立好資料庫的表,以及po類的建立,以及po對應下xml配置問題。
我們一個個來看下:
那麼,現在大家就可以看見了,通過參數類型的定義,返回值類型的定義,我們在其他地方調用這個sql語句的時候就
可以實現我們的資料庫操作了。
不過在執行這個操作的時候,我們應該先初始化好mybatis的配置文件,以便載入mybatis。
這個時候我們的下麵代碼就可以做到了:
當我們初始化好後,就可以做我們想要的操作了。
那新的問題又來了,我們如何將這個mybatis融入到我們的項目中呢?
其實方法有兩種,
1因為我們這個是spring項目,所以可以再spring的配置文件中加入這個MybatisOfSpringUtil類,之後需要的時候就可以通過
spring的上下文對象getBean方法獲得了。
2也就是我使用的方式,從上面的這個方法可以看到sqlSessionFactory這個變數是靜態的,且實現了單例模式的。直接在要使用的
地方調用MybatisOfSpringUtil.getSessionFactory()就好。不需要將這個類註入到spring中。
其實兩種方法都是可以的,一個是靠註入spring項目的時候初始化mybatis的配置文件,一個是靠第一次調用MybatisOfSpringUtil.getSessionFactory()
的時候去初始化mybatis配置文件。
當我們初始化好後,就可以在需要的時候調用了,也就意味在自己的項目中加好了mybatis框架。
我的調用是方式是:
當然這款代碼是dao層的代碼。有了這塊代碼,其他層就可以調用了,從service層到MVC的controller層。
現在我們看看是否能運行成功。
現在我先再資料庫加一條記錄,而我們的sql語句是根據主鍵來獲取對象。
所以參數為1的時候能查到資料庫數據,其他的時候就不能查詢到資料庫數據。
controller層我判斷查詢的對象是否為null,來分別返回不同的頁面。
controller層代碼是:
那麼id參數為1的時候coffe對象就不為null,其他的時候就為null。
我們再觀察頁面就知道mybatis是否起作用了。
我們先訪問: http://localhost:8080/springMvcOrm/anonymous.mvc?method=mybatisMethodTest&id=1
然後再訪問:http://localhost:8080/springMvcOrm/anonymous.mvc?method=mybatisMethodTest&id=6
ok,沒問題。說明mybatis就搭建成功了。
有什麼不明白的可以留言,我有空的時候會回來回覆,也歡迎大家批評指正。
see you lala。。。